diff options
author | Stefan Metzmacher <metze@samba.org> | 2007-05-13 12:52:13 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 14:52:20 -0500 |
commit | 4bb31605556fcaf49e8f864c59994b8c0604f99b (patch) | |
tree | 1f78255e0f0d643af4d0a71672b745ef3a3b3741 /source4/torture/smb2/smb2.c | |
parent | 5c0963acc38e5883674c1e08ae04dd116815ab08 (diff) | |
download | samba-4bb31605556fcaf49e8f864c59994b8c0604f99b.tar.gz samba-4bb31605556fcaf49e8f864c59994b8c0604f99b.tar.bz2 samba-4bb31605556fcaf49e8f864c59994b8c0604f99b.zip |
r22824: - add a simple test which shows how a lock rejects
a write on a different file handle.
SMB2-LOCK-BLOCK-WRITE
- make it possible to run each SMB2-LOCK-* test on its own
metze
(This used to be commit 9c02f690bc07ebf99cb272e255a24d7061d8e730)
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); |