Mercurial > pub > dyncall > dyncall
comparison test/callback_suite/globals.h @ 509:f3d44195dbdf
callback_suite:
- further, big refactoring to make the test data setup be a lot more in line with call_suite and call_suite_aggrs
- added support to test void return values (was missing in prev version)
author | Tassilo Philipp |
---|---|
date | Sat, 09 Apr 2022 23:00:24 +0200 |
parents | 049e04af13c8 |
children |
comparison
equal
deleted
inserted
replaced
508:1aa2af848e8a | 509:f3d44195dbdf |
---|---|
21 ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | 21 ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
22 OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | 22 OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
23 | 23 |
24 */ | 24 */ |
25 | 25 |
26 #include "dyncall_value.h" | 26 |
27 #include "dyncall_types.h" | |
27 | 28 |
28 | 29 |
29 #define DEF_NON_VOID_TYPES \ | 30 #define DEF_TYPES \ |
30 X(B,DCbool) \ | 31 X(B,DCbool) \ |
31 X(c,DCchar) X(C,DCuchar) X(s,DCshort) X(S,DCushort) \ | 32 X(c,DCchar) X(C,DCuchar) X(s,DCshort) X(S,DCushort) \ |
32 X(i,DCint) X(I,DCuint) X(j,DClong) X(J,DCulong) \ | 33 X(i,DCint) X(I,DCuint) X(j,DClong) X(J,DCulong) \ |
33 X(l,DClonglong) X(L,DCulonglong) \ | 34 X(l,DClonglong) X(L,DCulonglong) \ |
34 X(f,DCfloat) X(d,DCdouble) \ | 35 X(f,DCfloat) X(d,DCdouble) \ |
35 X(p,DCpointer) X(Z,DCpointer) | 36 X(p,DCpointer) X(Z,DCpointer) |
36 | 37 |
37 #define DEF_TYPES \ | 38 #define X(CH,T) extern T *K_##CH; extern T *V_##CH; |
38 X(v,DCvoid) \ | 39 DEF_TYPES |
39 DEF_NON_VOID_TYPES | |
40 | |
41 | |
42 typedef struct DCValueSet_ | |
43 { | |
44 #define X(CH,T) T CH; | |
45 DEF_NON_VOID_TYPES | |
46 #undef X | 40 #undef X |
47 } DCValueSet; | |
48 extern DCValueSet* ValueMatrix; | |
49 | |
50 /* arguments filled-in by callback handlers, and return value */ | |
51 extern DCValue* Args; | |
52 extern DCValue Result; | |
53 | |
54 | 41 |
55 typedef void (*funptr)(void*); | 42 typedef void (*funptr)(void*); |
56 | 43 |
57 extern funptr G_funtab[]; | 44 extern funptr G_funtab[]; |
58 extern const char * G_sigtab[]; | 45 extern const char * G_sigtab[]; |
59 extern int G_ncases; | 46 extern int G_ncases; |
60 extern int G_maxargs; | 47 extern int G_maxargs; |
61 | 48 |
62 void init_test_data(); | 49 void init_test_data(); |
63 void deinit_test_data(); | 50 void deinit_test_data(); |
51 void clear_V(); | |
64 | 52 |
65 /* function of type and position */ | |
66 void get_reference_arg(DCValue* output, char type, int argpos); | |
67 /* function of type (position = -1) */ | |
68 void get_reference_result(DCValue* output, char type); | |
69 | |
70 |