diff options
Diffstat (limited to 'source4/torture/smb2/smb2.c')
-rw-r--r-- | source4/torture/smb2/smb2.c | 54 |
1 files changed, 48 insertions, 6 deletions
diff --git a/source4/torture/smb2/smb2.c b/source4/torture/smb2/smb2.c index 9399010afe..2b0cc351b8 100644 --- a/source4/torture/smb2/smb2.c +++ b/source4/torture/smb2/smb2.c @@ -24,12 +24,55 @@ #include "torture/torture.h" #include "torture/smb2/proto.h" +#include "lib/util/dlinklist.h" + +static bool wrap_simple_1smb2_test(struct torture_context *torture_ctx, + struct torture_tcase *tcase, + struct torture_test *test) +{ + bool (*fn) (struct torture_context *, struct smb2_tree *); + bool ret; + + struct smb2_tree *tree1; + + if (!torture_smb2_connection(torture_ctx, &tree1)) + return false; + + fn = test->fn; + + ret = fn(torture_ctx, tree1); + + talloc_free(tree1); + + return ret; +} + +_PUBLIC_ struct torture_test *torture_suite_add_1smb2_test(struct torture_suite *suite, + const char *name, + bool (*run) (struct torture_context *, + struct smb2_tree *)) +{ + struct torture_test *test; + struct torture_tcase *tcase; + + tcase = torture_suite_add_tcase(suite, name); + + test = talloc(tcase, struct torture_test); + + test->name = talloc_strdup(test, name); + test->description = NULL; + test->run = wrap_simple_1smb2_test; + test->fn = run; + test->dangerous = false; + + DLIST_ADD_END(tcase->tests, test, struct torture_test *); + + return test; +} NTSTATUS torture_smb2_init(void) { - struct torture_suite *suite = torture_suite_create( - talloc_autofree_context(), - "SMB2"); + struct torture_suite *suite = torture_suite_create(talloc_autofree_context(), "SMB2"); torture_suite_add_simple_test(suite, "CONNECT", torture_smb2_connect); torture_suite_add_simple_test(suite, "SCAN", torture_smb2_scan); torture_suite_add_simple_test(suite, "SCANGETINFO", torture_smb2_getinfo_scan); @@ -38,11 +81,10 @@ NTSTATUS torture_smb2_init(void) torture_suite_add_simple_test(suite, "GETINFO", torture_smb2_getinfo); torture_suite_add_simple_test(suite, "SETINFO", torture_smb2_setinfo); torture_suite_add_simple_test(suite, "FIND", torture_smb2_find); - torture_suite_add_simple_test(suite, "LOCK", torture_smb2_lock); + torture_suite_add_suite(suite, torture_smb2_lock_init()); torture_suite_add_simple_test(suite, "NOTIFY", torture_smb2_notify); - suite->description = talloc_strdup(suite, - "SMB2-specific tests"); + suite->description = talloc_strdup(suite, "SMB2-specific tests"); torture_register_suite(suite); |