9df64a16cb569b0be3905d618f2386ca5d8beb13
[ddiss/samba.git] / lib / ntdb / test / tap-interface.h
1 /*
2    Unix SMB/CIFS implementation.
3    Simplistic implementation of tap interface.
4
5    Copyright (C) Rusty Russell 2012
6
7      ** NOTE! The following LGPL license applies to the talloc
8      ** library. This does NOT imply that all of Samba is released
9      ** under the LGPL
10
11    This library is free software; you can redistribute it and/or
12    modify it under the terms of the GNU Lesser General Public
13    License as published by the Free Software Foundation; either
14    version 3 of the License, or (at your option) any later version.
15
16    This library is distributed in the hope that it will be useful,
17    but WITHOUT ANY WARRANTY; without even the implied warranty of
18    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
19    Lesser General Public License for more details.
20
21    You should have received a copy of the GNU Lesser General Public
22    License along with this library; if not, see <http://www.gnu.org/licenses/>.
23 */
24 #include <stdio.h>
25 #include <ccan/err/err.h>
26
27 #ifndef __location__
28 #define __TAP_STRING_LINE1__(s)    #s
29 #define __TAP_STRING_LINE2__(s)   __TAP_STRING_LINE1__(s)
30 #define __TAP_STRING_LINE3__  __TAP_STRING_LINE2__(__LINE__)
31 #define __location__ __FILE__ ":" __TAP_STRING_LINE3__
32 #endif
33
34 extern unsigned tap_ok_count, tap_ok_target;
35 #define plan_tests(num) do { tap_ok_target = (num); } while(0)
36 #define ok(e, ...) ((e) ? (printf("."), tap_ok_count++, true) : (warnx(__VA_ARGS__), false))
37 #define ok1(e) ok((e), "%s:%s", __location__, #e)
38 #define pass(...) (printf("."), tap_ok_count++)
39 #define fail(...) warnx(__VA_ARGS__)
40 #define diag(...) do { printf(__VA_ARGS__); printf("\n"); } while(0)
41 #define exit_status() (tap_ok_count == tap_ok_target ? 0 : 1)