1 #define TRUE_VAL (!0) 2 #define FALSE_VAL 0 3 #define ARR_SIZE(arr) (sizeof(arr)/sizeof(arr[0])) 4 5 typedef unsigned long long int uint64_t; 6 typedef long long int int64_t; 7 8 /* ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~- */ 9 struct harness_int64_pred { 10 const char *fmt_string; 11 int64_t *lhs; 12 int64_t *rhs; 13 int64_t *select_a; 14 int64_t *select_b; 15 int expected; 16 int64_t *select_expected; 17 }; 18 19 struct harness_uint64_pred { 20 const char *fmt_string; 21 uint64_t *lhs; 22 uint64_t *rhs; 23 uint64_t *select_a; 24 uint64_t *select_b; 25 int expected; 26 uint64_t *select_expected; 27 }; 28 29 struct int64_pred_s { 30 const char *name; 31 int (*predfunc) (int64_t, int64_t); 32 int64_t (*selfunc) (int64_t, int64_t, int64_t, int64_t); 33 struct harness_int64_pred *tests; 34 int n_tests; 35 }; 36 37 struct uint64_pred_s { 38 const char *name; 39 int (*predfunc) (uint64_t, uint64_t); 40 uint64_t (*selfunc) (uint64_t, uint64_t, uint64_t, uint64_t); 41 struct harness_uint64_pred *tests; 42 int n_tests; 43 }; 44