enum ndr_err_code ndr_err);
#define torture_suite_add_ndr_pull_test(suite,name,data,check_fn) \
+ do { \
+ bool (*check_fn_typed) (struct torture_context *, struct name *) = \
+ check_fn; \
+ bool (*check_fn_anon) (struct torture_context *, void *) = \
+ (bool (*) (struct torture_context *, void *)) check_fn_typed; \
_torture_suite_add_ndr_pullpush_test(suite, #name, \
(ndr_pull_flags_fn_t)ndr_pull_ ## name, \
NULL, \
data_blob_const(data, sizeof(data)), \
sizeof(struct name), \
NDR_SCALARS|NDR_BUFFERS, 0, \
- (bool (*) (struct torture_context *, void *)) check_fn);
+ check_fn_anon); \
+ } while(0)
#define torture_suite_add_ndr_pull_invalid_data_test(suite,name,data,ndr_err) \
_torture_suite_add_ndr_pull_invalid_data_test( \
ndr_err);
#define torture_suite_add_ndr_pull_fn_test(suite,name,data,flags,check_fn) \
+ do { \
+ bool (*check_fn_typed) (struct torture_context *, struct name *) = \
+ check_fn; \
+ bool (*check_fn_anon) (struct torture_context *, void *) = \
+ (bool (*) (struct torture_context *, void *)) check_fn_typed; \
_torture_suite_add_ndr_pullpush_test(suite, #name "_" #flags, \
(ndr_pull_flags_fn_t)ndr_pull_ ## name, \
NULL, \
data_blob_const(data, sizeof(data)), \
sizeof(struct name), \
flags, 0, \
- (bool (*) (struct torture_context *, void *)) check_fn);
+ check_fn_anon); \
+ } while(0)
#define torture_suite_add_ndr_pull_fn_test_flags(suite,name,data,flags,flags2,check_fn) \
+ do { \
+ bool (*check_fn_typed) (struct torture_context *, struct name *) = \
+ check_fn; \
+ bool (*check_fn_anon) (struct torture_context *, void *) = \
+ (bool (*) (struct torture_context *, void *)) check_fn_typed; \
_torture_suite_add_ndr_pullpush_test(suite, #name "_" #flags "_" #flags2, \
(ndr_pull_flags_fn_t)ndr_pull_ ## name, \
NULL, \
data_blob_const(data, sizeof(data)), \
sizeof(struct name), \
flags, flags2, \
- (bool (*) (struct torture_context *, void *)) check_fn);
+ check_fn_anon); \
+ } while(0)
#define torture_suite_add_ndr_pull_validate_test(suite,name,data,check_fn) \
+ do { \
+ bool (*check_fn_typed) (struct torture_context *, struct name *) = \
+ check_fn; \
+ bool (*check_fn_anon) (struct torture_context *, void *) = \
+ (bool (*) (struct torture_context *, void *)) check_fn_typed; \
_torture_suite_add_ndr_pullpush_test(suite, #name "_VALIDATE", \
(ndr_pull_flags_fn_t)ndr_pull_ ## name, \
(ndr_push_flags_fn_t)ndr_push_ ## name, \
data_blob_const(data, sizeof(data)), \
sizeof(struct name), \
NDR_SCALARS|NDR_BUFFERS, 0, \
- (bool (*) (struct torture_context *, void *)) check_fn);
+ check_fn_anon); \
+ } while(0)
#define torture_suite_add_ndr_pull_validate_test_blob(suite,name,data_blob,check_fn) \
+ do { \
+ bool (*check_fn_typed) (struct torture_context *, struct name *) = \
+ check_fn; \
+ bool (*check_fn_anon) (struct torture_context *, void *) = \
+ (bool (*) (struct torture_context *, void *)) check_fn_typed; \
_torture_suite_add_ndr_pullpush_test(suite, #name "_VALIDATE", \
(ndr_pull_flags_fn_t)ndr_pull_ ## name, \
(ndr_push_flags_fn_t)ndr_push_ ## name, \
data_blob, \
sizeof(struct name), \
NDR_SCALARS|NDR_BUFFERS, 0, \
- (bool (*) (struct torture_context *, void *)) check_fn);
+ check_fn_anon); \
+ } while(0)
#define torture_suite_add_ndr_pull_validate_test_b64(suite,name,tname,b64,check_fn) \
+ do { \
+ bool (*check_fn_typed) (struct torture_context *, struct name *) = \
+ check_fn; \
+ bool (*check_fn_anon) (struct torture_context *, void *) = \
+ (bool (*) (struct torture_context *, void *)) check_fn_typed; \
_torture_suite_add_ndr_pullpush_test(suite, #name "_" tname, \
(ndr_pull_flags_fn_t)ndr_pull_ ## name, \
(ndr_push_flags_fn_t)ndr_push_ ## name, \
base64_decode_data_blob_talloc(suite, b64), \
sizeof(struct name), \
NDR_SCALARS|NDR_BUFFERS, 0, \
- (bool (*) (struct torture_context *, void *)) check_fn);
+ check_fn_anon); \
+ } while(0)
#define torture_suite_add_ndr_pullpush_fn_test_flags(suite,name,data,flags,flags2,check_fn) \
+ do { \
+ bool (*check_fn_typed) (struct torture_context *, struct name *) = \
+ check_fn; \
+ bool (*check_fn_anon) (struct torture_context *, void *) = \
+ (bool (*) (struct torture_context *, void *)) check_fn_typed; \
_torture_suite_add_ndr_pullpush_test(suite, #name, \
(ndr_pull_flags_fn_t)ndr_pull_ ## name, \
(ndr_push_flags_fn_t)ndr_push_ ## name, \
data_blob_const(data, sizeof(data)), \
sizeof(struct name), \
flags, flags2, \
- (bool (*) (struct torture_context *, void *)) check_fn);
+ check_fn_anon); \
+ } while(0)
#define torture_suite_add_ndr_pull_io_test(suite,name,data_in,data_out,check_fn_out) \
+ do { \
+ bool (*check_fn_typed) (struct torture_context *, struct name *) = \
+ check_fn_out; \
+ bool (*check_fn_anon) (struct torture_context *, void *) = \
+ (bool (*) (struct torture_context *, void *)) check_fn_typed; \
_torture_suite_add_ndr_pull_inout_test(suite, #name "_INOUT", \
(ndr_pull_flags_fn_t)ndr_pull_ ## name, \
(ndr_print_function_t)ndr_print_ ## name, \
data_blob_const(data_out, sizeof(data_out)), \
sizeof(struct name), \
0, \
- (bool (*) (struct torture_context *, void *)) check_fn_out);
+ check_fn_anon); \
+ } while(0)
#define torture_suite_add_ndr_pull_io_test_flags(suite,name,data_in,data_out,flags,check_fn_out) \
+ do { \
+ bool (*check_fn_typed) (struct torture_context *, struct name *) = \
+ check_fn_out; \
+ bool (*check_fn_anon) (struct torture_context *, void *) = \
+ (bool (*) (struct torture_context *, void *)) check_fn_typed; \
_torture_suite_add_ndr_pull_inout_test(suite, #name "_INOUT_" #flags, \
(ndr_pull_flags_fn_t)ndr_pull_ ## name, \
(ndr_print_function_t)ndr_print_ ## name, \
data_blob_const(data_out, sizeof(data_out)), \
sizeof(struct name), \
flags, \
- (bool (*) (struct torture_context *, void *)) check_fn_out);
+ check_fn_anon); \
+ } while(0)
+
#endif /* __TORTURE_NDR_H__ */