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