r12008: added a simple LOCAL-SDDL test suite. Only one example so far. Will be
authorAndrew Tridgell <tridge@samba.org>
Fri, 2 Dec 2005 03:19:23 +0000 (03:19 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 18:46:58 +0000 (13:46 -0500)
filled in with more examples as I expand the sddl parsing code.
(This used to be commit 8f80e483a3aa07bb5a16eeccde5af5cd7fb5a975)

source4/torture/config.mk
source4/torture/local/config.mk [new file with mode: 0644]
source4/torture/local/sddl.c [new file with mode: 0644]
source4/torture/torture.c

index 488ce0b98c482771a7623870a8094f55dbe25506..2c7e697b56e794ba11ba55d506d05dd71414ac2e 100644 (file)
@@ -141,27 +141,7 @@ REQUIRED_SUBSYSTEMS = \
 # End SUBSYSTEM TORTURE_AUTH
 #################################
 
-#################################
-# Start SUBSYSTEM TORTURE_LOCAL
-[SUBSYSTEM::TORTURE_LOCAL]
-ADD_OBJ_FILES = \
-               local/iconv.o \
-               ../lib/talloc/testsuite.o \
-               local/messaging.o \
-               local/binding_string.o \
-               local/idtree.o \
-               local/socket.o \
-               local/irpc.o \
-               local/registry.o \
-               local/resolve.o \
-               local/util_strlist.o \
-               local/util_file.o
-REQUIRED_SUBSYSTEMS = \
-               LIBSMB \
-               MESSAGING \
-               REGISTRY
-# End SUBSYSTEM TORTURE_LOCAL
-#################################
+include local/config.mk
 
 #################################
 # Start SUBSYSTEM TORTURE_NBENCH
diff --git a/source4/torture/local/config.mk b/source4/torture/local/config.mk
new file mode 100644 (file)
index 0000000..bbfce62
--- /dev/null
@@ -0,0 +1,23 @@
+#################################
+# Start SUBSYSTEM TORTURE_LOCAL
+[SUBSYSTEM::TORTURE_LOCAL]
+ADD_OBJ_FILES = \
+               iconv.o \
+               ../../lib/talloc/testsuite.o \
+               messaging.o \
+               binding_string.o \
+               idtree.o \
+               socket.o \
+               irpc.o \
+               registry.o \
+               resolve.o \
+               util_strlist.o \
+               util_file.o \
+               sddl.o
+REQUIRED_SUBSYSTEMS = \
+               LIBSMB \
+               MESSAGING \
+               REGISTRY
+# End SUBSYSTEM TORTURE_LOCAL
+#################################
+
diff --git a/source4/torture/local/sddl.c b/source4/torture/local/sddl.c
new file mode 100644 (file)
index 0000000..fa7d15f
--- /dev/null
@@ -0,0 +1,60 @@
+/* 
+   Unix SMB/CIFS implementation.
+
+   local testing of SDDL parsing
+
+   Copyright (C) Andrew Tridgell 2005
+   
+   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 "librpc/gen_ndr/ndr_security.h"
+
+
+/*
+  test one SDDL example
+*/
+static BOOL test_sddl(TALLOC_CTX *mem_ctx, const char *sddl)
+{
+       struct security_descriptor *sd;
+       sd = sddl_decode(mem_ctx, sddl);
+       if (sd == NULL) {
+               printf("Failed to decode '%s'\n", sddl);
+               return False;
+       }
+       NDR_PRINT_DEBUG(security_descriptor, sd);
+       talloc_free(sd);
+       return True;
+}
+
+static const char *examples[] = {
+"D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)"
+};
+
+/* test a set of example SDDL strings */
+BOOL torture_local_sddl(void) 
+{
+       int i;
+       BOOL ret = True;
+       TALLOC_CTX *mem_ctx = talloc_new(NULL);
+
+       for (i=0;i<ARRAY_SIZE(examples);i++) {
+               ret &= test_sddl(mem_ctx, examples[i]);
+       }
+
+       talloc_free(mem_ctx);
+       return ret;
+}
index 86c56131a2727c1789fc7be817599d5f4ebebaa5..62b85778c7978fff096569bf6ea308d969e9e348 100644 (file)
@@ -2323,6 +2323,7 @@ static struct {
        {"LOCAL-PAC", torture_pac, 0},
        {"LOCAL-REGISTRY", torture_registry, 0},
        {"LOCAL-RESOLVE", torture_local_resolve, 0},
+       {"LOCAL-SDDL", torture_local_sddl, 0},
 
        /* COM (Component Object Model) testers */
        {"COM-SIMPLE", torture_com_simple, 0 },