summaryrefslogtreecommitdiff
path: root/lib/tdb2/test/tap-interface.h
diff options
context:
space:
mode:
authorRusty Russell <rusty@rustcorp.com.au>2012-02-22 15:03:37 +1030
committerAmitay Isaacs <amitay@gmail.com>2012-03-07 13:16:16 +1100
commit9d897b0951e73a4717ae133d5b6b2493334fbf22 (patch)
treec3fcbe7b449f1384da2d132110ebfbfedce8fd3b /lib/tdb2/test/tap-interface.h
parent361f3ea9ee577c5a3e2fed687a0b417b257c31de (diff)
downloadsamba-9d897b0951e73a4717ae133d5b6b2493334fbf22.tar.gz
samba-9d897b0951e73a4717ae133d5b6b2493334fbf22.tar.bz2
samba-9d897b0951e73a4717ae133d5b6b2493334fbf22.zip
lib/tdb2: adapt unit tests to SAMBA environment.
This means changing headers, implementing a simple tap-like wrapper, and also splitting out the helpers into those which are linked with the api* tests (which can't use non-public tdb2 functions) and those linked with the run* tests (which can). Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Diffstat (limited to 'lib/tdb2/test/tap-interface.h')
-rw-r--r--lib/tdb2/test/tap-interface.h41
1 files changed, 41 insertions, 0 deletions
diff --git a/lib/tdb2/test/tap-interface.h b/lib/tdb2/test/tap-interface.h
new file mode 100644
index 0000000000..9ee84aaaba
--- /dev/null
+++ b/lib/tdb2/test/tap-interface.h
@@ -0,0 +1,41 @@
+/*
+ Unix SMB/CIFS implementation.
+ Simplistic implementation of tap interface.
+
+ Copyright (C) Rusty Russell 2012
+
+ ** NOTE! The following LGPL license applies to the talloc
+ ** library. This does NOT imply that all of Samba is released
+ ** under the LGPL
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 3 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, see <http://www.gnu.org/licenses/>.
+*/
+#include <stdio.h>
+#include <err.h>
+
+#ifndef __location__
+#define __TAP_STRING_LINE1__(s) #s
+#define __TAP_STRING_LINE2__(s) __TAP_STRING_LINE1__(s)
+#define __TAP_STRING_LINE3__ __TAP_STRING_LINE2__(__LINE__)
+#define __location__ __FILE__ ":" __TAP_STRING_LINE3__
+#endif
+
+extern unsigned tap_ok_count, tap_ok_target;
+#define plan_tests(num) do { tap_ok_target = (num); } while(0)
+#define ok(e, ...) ((e) ? (printf("."), tap_ok_count++, true) : (warnx(__VA_ARGS__), false))
+#define ok1(e) ok((e), "%s:%s", __location__, #e)
+#define pass(...) (printf("."), tap_ok_count++)
+#define fail(...) warnx(__VA_ARGS__)
+#define diag printf
+#define exit_status() (tap_ok_count == tap_ok_target ? 0 : 1)