diff options
Diffstat (limited to 'source4')
-rw-r--r-- | source4/torture/config.mk | 2 | ||||
-rw-r--r-- | source4/torture/torture.c | 71 |
2 files changed, 72 insertions, 1 deletions
diff --git a/source4/torture/config.mk b/source4/torture/config.mk index 27d168f85c..4113cab064 100644 --- a/source4/torture/config.mk +++ b/source4/torture/config.mk @@ -241,7 +241,7 @@ PRIVATE_DEPENDENCIES = \ # End BINARY smbtorture ################################# -smbtorture_OBJ_FILES = torture/smbtorture.o +smbtorture_OBJ_FILES = torture/smbtorture.o torture/torture.o PUBLIC_HEADERS += torture/smbtorture.h MANPAGES += torture/man/smbtorture.1 diff --git a/source4/torture/torture.c b/source4/torture/torture.c new file mode 100644 index 0000000000..39d85e0572 --- /dev/null +++ b/source4/torture/torture.c @@ -0,0 +1,71 @@ +/* + Unix SMB/CIFS implementation. + SMB torture tester + Copyright (C) Andrew Tridgell 1997-2003 + Copyright (C) Jelmer Vernooij 2006 + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#include "includes.h" +#include "system/time.h" +#include "torture/torture.h" +#include "lib/util/dlinklist.h" +#include "param/param.h" +#include "lib/cmdline/popt_common.h" + +_PUBLIC_ int torture_numops=10; +_PUBLIC_ int torture_entries=1000; +_PUBLIC_ int torture_failures=1; +_PUBLIC_ int torture_seed=0; +_PUBLIC_ int torture_numasync=100; + +struct torture_suite *torture_root = NULL; + +bool torture_register_suite(struct torture_suite *suite) +{ + if (!suite) + return true; + + if (torture_root == NULL) + torture_root = talloc_zero(talloc_autofree_context(), struct torture_suite); + + return torture_suite_add_suite(torture_root, suite); +} + + +_PUBLIC_ int torture_init(void) +{ + extern NTSTATUS torture_base_init(void); + extern NTSTATUS torture_ldap_init(void); + extern NTSTATUS torture_local_init(void); + extern NTSTATUS torture_nbt_init(void); + extern NTSTATUS torture_nbench_init(void); + extern NTSTATUS torture_rap_init(void); + extern NTSTATUS torture_rpc_init(void); + extern NTSTATUS torture_smb2_init(void); + extern NTSTATUS torture_net_init(void); + extern NTSTATUS torture_raw_init(void); + extern NTSTATUS torture_unix_init(void); + extern NTSTATUS torture_winbind_init(void); + init_module_fn static_init[] = { STATIC_torture_MODULES }; + init_module_fn *shared_init = load_samba_modules(NULL, cmdline_lp_ctx, "torture"); + + run_init_functions(static_init); + run_init_functions(shared_init); + + talloc_free(shared_init); + + return 0; +} |