]> git.ozlabs.org Git - ccan/blobdiff - ccan/typesafe_cb/test/run.c
tdb2: rename the tools to tdb2torture, tdb2tool and mktdb2
[ccan] / ccan / typesafe_cb / test / run.c
index b04fae883c2e5c659496739dea75950da7e67b8f..79863db84128c85a3079f5faad769e9db039bbf3 100644 (file)
@@ -1,6 +1,7 @@
-#include "typesafe_cb/typesafe_cb.h"
+#include <ccan/typesafe_cb/typesafe_cb.h>
 #include <string.h>
-#include "tap/tap.h"
+#include <stdint.h>
+#include <ccan/tap/tap.h>
 
 static char dummy = 0;
 
@@ -11,7 +12,7 @@ static void _set_some_value(void *val)
 }
 
 #define set_some_value(expr)                                           \
-       _set_some_value(cast_if_type((expr), unsigned long, void *))
+       _set_some_value(typesafe_cb_cast(void *, unsigned long, (expr)))
 
 static void _callback_onearg(void (*fn)(void *arg), void *arg)
 {
@@ -29,29 +30,19 @@ static void _callback_postargs(void (*fn)(void *arg, int a, int b), void *arg)
 }
 
 #define callback_onearg(cb, arg)                                       \
-       _callback_onearg(typesafe_cb(void, (cb), (arg)), (arg))
+       _callback_onearg(typesafe_cb(void, void *, (cb), (arg)), (arg))
 
 #define callback_preargs(cb, arg)                                      \
-       _callback_preargs(typesafe_cb_preargs(void, (cb), (arg), int, int), (arg))
+       _callback_preargs(typesafe_cb_preargs(void, void *, (cb), (arg), int, int), (arg))
 
 #define callback_postargs(cb, arg)                                     \
-       _callback_postargs(typesafe_cb_postargs(void, (cb), (arg), int, int), (arg))
+       _callback_postargs(typesafe_cb_postargs(void, void *, (cb), (arg), int, int), (arg))
 
 static void my_callback_onearg(char *p)
 {
        ok1(strcmp(p, "hello world") == 0);
 }
 
-static void my_callback_onearg_const(const char *p)
-{
-       ok1(strcmp(p, "hello world") == 0);
-}
-
-static void my_callback_onearg_volatile(volatile char *p)
-{
-       ok1(strcmp((char *)p, "hello world") == 0);
-}
-
 static void my_callback_preargs(int a, int b, char *p)
 {
        ok1(a == 1);
@@ -59,20 +50,6 @@ static void my_callback_preargs(int a, int b, char *p)
        ok1(strcmp(p, "hello world") == 0);
 }
 
-static void my_callback_preargs_const(int a, int b, const char *p)
-{
-       ok1(a == 1);
-       ok1(b == 2);
-       ok1(strcmp(p, "hello world") == 0);
-}
-
-static void my_callback_preargs_volatile(int a, int b, volatile char *p)
-{
-       ok1(a == 1);
-       ok1(b == 2);
-       ok1(strcmp((char *)p, "hello world") == 0);
-}
-
 static void my_callback_postargs(char *p, int a, int b)
 {
        ok1(a == 1);
@@ -80,69 +57,53 @@ static void my_callback_postargs(char *p, int a, int b)
        ok1(strcmp(p, "hello world") == 0);
 }
 
-static void my_callback_postargs_const(const char *p, int a, int b)
-{
-       ok1(a == 1);
-       ok1(b == 2);
-       ok1(strcmp(p, "hello world") == 0);
-}
-
-static void my_callback_postargs_volatile(volatile char *p, int a, int b)
-{
-       ok1(a == 1);
-       ok1(b == 2);
-       ok1(strcmp((char *)p, "hello world") == 0);
-}
-
-/* This is simply a compile test; we promised cast_if_type can be in a
+/* This is simply a compile test; we promised typesafe_cb_cast can be in a
  * static initializer. */
 struct callback_onearg
 {
        void (*fn)(void *arg);
-       void *arg;
+       const void *arg;
 };
 
 struct callback_onearg cb_onearg
-= { typesafe_cb(void, my_callback_onearg, "hello world"), "hello world" };
+= { typesafe_cb(void, void *, my_callback_onearg, (char *)(intptr_t)"hello world"),
+    "hello world" };
 
 struct callback_preargs
 {
        void (*fn)(int a, int b, void *arg);
-       void *arg;
+       const void *arg;
 };
 
 struct callback_preargs cb_preargs
-= { typesafe_cb_preargs(void, my_callback_preargs, "hi", int, int), "hi" };
+= { typesafe_cb_preargs(void, void *, my_callback_preargs,
+                       (char *)(intptr_t)"hi", int, int), "hi" };
 
 struct callback_postargs
 {
        void (*fn)(void *arg, int a, int b);
-       void *arg;
+       const void *arg;
 };
 
 struct callback_postargs cb_postargs
-= { typesafe_cb_postargs(void, my_callback_postargs, "hi", int, int), "hi" };
+= { typesafe_cb_postargs(void, void *, my_callback_postargs, 
+                        (char *)(intptr_t)"hi", int, int), "hi" };
 
 int main(int argc, char *argv[])
 {
        void *p = &dummy;
        unsigned long l = (unsigned long)p;
+       char str[] = "hello world";
 
-       plan_tests(2 + 3 + 9 + 9);
+       plan_tests(2 + 1 + 3 + 3);
        set_some_value(p);
        set_some_value(l);
 
-       callback_onearg(my_callback_onearg, "hello world");
-       callback_onearg(my_callback_onearg_const, "hello world");
-       callback_onearg(my_callback_onearg_volatile, "hello world");
+       callback_onearg(my_callback_onearg, str);
 
-       callback_preargs(my_callback_preargs, "hello world");
-       callback_preargs(my_callback_preargs_const, "hello world");
-       callback_preargs(my_callback_preargs_volatile, "hello world");
+       callback_preargs(my_callback_preargs, str);
 
-       callback_postargs(my_callback_postargs, "hello world");
-       callback_postargs(my_callback_postargs_const, "hello world");
-       callback_postargs(my_callback_postargs_volatile, "hello world");
+       callback_postargs(my_callback_postargs, str);
 
        return exit_status();
 }