r12008: added a simple LOCAL-SDDL test suite. Only one example so far. Will be
[Samba/aatanasov.git] / source / torture / local / sddl.c
blobfa7d15f6064039bfba67bb1c65640351c6a7280e
1 /*
2 Unix SMB/CIFS implementation.
4 local testing of SDDL parsing
6 Copyright (C) Andrew Tridgell 2005
8 This program is free software; you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation; either version 2 of the License, or
11 (at your option) any later version.
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
18 You should have received a copy of the GNU General Public License
19 along with this program; if not, write to the Free Software
20 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
23 #include "includes.h"
24 #include "librpc/gen_ndr/ndr_security.h"
28 test one SDDL example
30 static BOOL test_sddl(TALLOC_CTX *mem_ctx, const char *sddl)
32 struct security_descriptor *sd;
33 sd = sddl_decode(mem_ctx, sddl);
34 if (sd == NULL) {
35 printf("Failed to decode '%s'\n", sddl);
36 return False;
38 NDR_PRINT_DEBUG(security_descriptor, sd);
39 talloc_free(sd);
40 return True;
43 static const char *examples[] = {
44 "D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)"
47 /* test a set of example SDDL strings */
48 BOOL torture_local_sddl(void)
50 int i;
51 BOOL ret = True;
52 TALLOC_CTX *mem_ctx = talloc_new(NULL);
54 for (i=0;i<ARRAY_SIZE(examples);i++) {
55 ret &= test_sddl(mem_ctx, examples[i]);
58 talloc_free(mem_ctx);
59 return ret;