testprogs: print SDDL string of printer security descriptors
[Samba/nascimento.git] / testsuite / smbd / sec_ctx_flow.c
blobf3c0564f1cedfecf9ec4d54fafafe2fa83f416fe
1 /*
2 Unix SMB/Netbios implementation.
3 Version 1.9.
4 Security context tests
5 Copyright (C) Tim Potter 2000
7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 3 of the License, or
10 (at your option) any later version.
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License
18 along with this program. If not, see <http://www.gnu.org/licenses/>.
21 #include "includes.h"
22 #include "sec_ctx_utils.h"
24 int main (int argc, char **argv)
26 int i;
28 init_sec_ctx();
30 /* Check for underflow */
32 if (!push_sec_ctx()) {
33 printf("FAIL: push_sec_ctx\n");
34 return 1;
37 set_sec_ctx(1, 1, 0, NULL);
39 if (!pop_sec_ctx()) {
40 printf("FAIL: pop_sec_ctx\n");
41 return 1;
44 if (pop_sec_ctx()) {
45 printf("FAIL: underflow push_sec_ctx\n");
46 return 1;
49 /* Check for overflow */
51 for (i = 0; i < MAX_SEC_CTX_DEPTH + 1; i++) {
52 BOOL result;
54 result = push_sec_ctx();
55 set_sec_ctx(i, i, 0, NULL);
57 if ((i < MAX_SEC_CTX_DEPTH) && !result) {
58 printf("FAIL: push_sec_ctx(%d)\n", i);
59 return 1;
62 if ((i == MAX_SEC_CTX_DEPTH + 1) && result) {
63 printf("FAIL: overflow push_sec_ctx(%d)\n", i);
64 return 1;
68 /* Everything's cool */
70 printf("PASS\n");
71 return 0;