diff test/callback_suite/globals.h @ 505:049e04af13c8

test/callback_suite: - greatly simplified - refactored to look more like other test cases (especially call_suite{,_aggrs} for consistency/maintainablity/future code sharing
author Tassilo Philipp
date Sat, 09 Apr 2022 13:53:58 +0200
parents test/callback_suite/env.h@d8f0e6cecdab
children f3d44195dbdf
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/callback_suite/globals.h	Sat Apr 09 13:53:58 2022 +0200
@@ -0,0 +1,70 @@
+/*
+
+ Package: dyncall
+ Library: test
+ File: test/callback_suite/globals.h
+ Description: 
+ License:
+
+   Copyright (c) 2011-2022 Daniel Adler <dadler@uni-goettingen.de>,
+                           Tassilo Philipp <tphilipp@potion-studios.com>
+
+   Permission to use, copy, modify, and distribute this software for any
+   purpose with or without fee is hereby granted, provided that the above
+   copyright notice and this permission notice appear in all copies.
+
+   THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+   WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+   MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+   ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+   WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+   ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+   OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+*/
+
+#include "dyncall_value.h"
+
+
+#define DEF_NON_VOID_TYPES \
+  X(B,DCbool) \
+  X(c,DCchar) X(C,DCuchar) X(s,DCshort) X(S,DCushort) \
+  X(i,DCint) X(I,DCuint) X(j,DClong) X(J,DCulong) \
+  X(l,DClonglong) X(L,DCulonglong) \
+  X(f,DCfloat) X(d,DCdouble) \
+  X(p,DCpointer) X(Z,DCpointer)
+
+#define DEF_TYPES \
+  X(v,DCvoid) \
+  DEF_NON_VOID_TYPES
+
+
+typedef struct DCValueSet_
+{
+#define X(CH,T) T CH;
+DEF_NON_VOID_TYPES
+#undef X
+} DCValueSet;
+extern DCValueSet* ValueMatrix;
+
+/* arguments filled-in by callback handlers, and return value */
+extern DCValue* Args;
+extern DCValue Result;
+
+
+typedef void (*funptr)(void*);
+
+extern funptr       G_funtab[];
+extern const char * G_sigtab[];
+extern int          G_ncases;
+extern int          G_maxargs;
+
+void init_test_data();
+void deinit_test_data();
+
+/* function of type and position */
+void get_reference_arg(DCValue* output, char type, int argpos);
+/* function of type (position = -1) */
+void get_reference_result(DCValue* output, char type);
+
+