r16518: Split up torture_util.c in smb and non-smb specific parts.
authorJelmer Vernooij <jelmer@samba.org>
Mon, 26 Jun 2006 11:33:37 +0000 (11:33 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 19:09:31 +0000 (14:09 -0500)
Add torture_temp_dir() function, with test.

source/torture/config.mk
source/torture/local/config.mk
source/torture/local/local.c
source/torture/local/torture.c [new file with mode: 0644]
source/torture/util.c [new file with mode: 0644]
source/torture/util_smb.c [moved from source/torture/torture_util.c with 99% similarity]

index e87e5ae3a9f5bba23f1ee50c3d5f86f4e72628d8..07469ab25273f4bc143dd10621fd738fc533b8c8 100644 (file)
@@ -12,7 +12,7 @@ PUBLIC_DEPENDENCIES = \
                LIBSAMBA-UTIL
 
 [SUBSYSTEM::TORTURE_UTIL]
-OBJ_FILES = torture_util.o
+OBJ_FILES = util.o util_smb.o
 PUBLIC_PROTO_HEADER = util.h
 PUBLIC_DEPENDENCIES = POPT_CREDENTIALS
 
index 001ff559d58f27d3a684cd06a5eb71281d0e2f4f..d11dfd2c8d470f3ab2b876917768e45bf81803a6 100644 (file)
@@ -20,7 +20,8 @@ OBJ_FILES = \
                sddl.o \
                ndr.o \
                event.o \
-               local.o
+               local.o \
+               torture.o
 PUBLIC_DEPENDENCIES = \
                RPC_NDR_ECHO \
                LIBCLI_SMB \
index 8f95cec4d54cf0d60460752792660d32559dda50..cd1065325a160e42eca5af65c56d61431f87734e 100644 (file)
@@ -41,6 +41,7 @@
        torture_local_sddl,
        torture_local_ndr, 
        torture_local_event, 
+       torture_local_torture,
        NULL
 };
 
diff --git a/source/torture/local/torture.c b/source/torture/local/torture.c
new file mode 100644 (file)
index 0000000..ed601b6
--- /dev/null
@@ -0,0 +1,49 @@
+/* 
+   Unix SMB/CIFS implementation.
+
+   local testing of torture
+
+   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 2 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, write to the Free Software
+   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+*/
+
+#include "includes.h"
+#include "torture/torture.h"
+#include "torture/util.h"
+
+static BOOL test_tempdir(struct torture_context *torture, 
+                                                          const void *_data)
+{
+       char *location = NULL;
+       
+       torture_assert_ntstatus_ok(torture, torture_temp_dir(torture, &location), 
+                                                               "torture_temp_dir should return NT_STATUS_OK" );
+
+       torture_assert(torture, directory_exist(location), 
+                                  "created dir doesn't exist");
+
+       return True;
+}
+
+struct torture_suite *torture_local_torture(TALLOC_CTX *mem_ctx)
+{
+       struct torture_suite *suite = torture_suite_create(mem_ctx, 
+                                                                                                          "LOCAL-TORTURE");
+
+       torture_suite_add_simple_tcase(suite, "tempdir", test_tempdir, NULL);
+
+       return suite;
+}
diff --git a/source/torture/util.c b/source/torture/util.c
new file mode 100644 (file)
index 0000000..bd2bc49
--- /dev/null
@@ -0,0 +1,43 @@
+/* 
+   Unix SMB/CIFS implementation.
+   SMB torture tester utility functions
+   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 2 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, write to the Free Software
+   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+*/
+
+#include "includes.h"
+#include "system/filesys.h"
+#include "torture/torture.h"
+
+_PUBLIC_ NTSTATUS torture_temp_dir(TALLOC_CTX *mem_ctx, char **tempdir)
+{
+       *tempdir = talloc_strdup(mem_ctx, "torture-tmp.XXXXXX");
+
+       if (mkdtemp(*tempdir) == NULL)
+               return NT_STATUS_UNSUCCESSFUL;
+
+       return NT_STATUS_OK;
+}
+
+/**
+  check if 2 NTTIMEs are equal
+*/
+BOOL nt_time_equal(NTTIME *t1, NTTIME *t2)
+{
+       return *t1 == *t2;
+}
+
+
similarity index 99%
rename from source/torture/torture_util.c
rename to source/torture/util_smb.c
index c8ffc04f8018947b073cacb6ed4101279065ce31..818100aa5c6af1f7bd937a4ff9a647d9bc689832 100644 (file)
@@ -306,14 +306,6 @@ BOOL wire_bad_flags(struct smb_wire_string *str, int flags, struct smbcli_state
        return False;
 }
 
-/*
-  check if 2 NTTIMEs are equal
-*/
-BOOL nt_time_equal(NTTIME *t1, NTTIME *t2)
-{
-       return *t1 == *t2;
-}
-
 /*
   dump a all_info QFILEINFO structure
 */
@@ -707,8 +699,6 @@ double torture_create_procs(BOOL (*fn)(struct smbcli_state *, int), BOOL *result
        return timeval_elapsed(&tv);
 }
 
-
-
 static BOOL wrap_old_torture_multifn(struct torture_context *torture,
                                                                const void *_fn)
 {
@@ -734,3 +724,5 @@ _PUBLIC_ NTSTATUS register_torture_multi_op(const char *name,
 
        return NT_STATUS_OK;
 }
+
+