libsmb: Use clistr_smb2_extract_snapshot_token() in cli_smb2_create_fnum_send()
[Samba.git] / source3 / script / tests / test_groupmap.sh
bloba1e9a0832dfbf928d70d94e2bfcabfaa217cd61f
1 #!/bin/sh
2 # test groupmap code tridge@samba.org September 2006
3 # note that this needs root access to add unix groups,
4 # so this cannot be run on the build farm
6 testone()
8 echo $*
9 $VALGRIND bin/net groupmap $*
12 tstart()
14 TBASE=$(date '+%s')
17 treport()
19 TNOW=$(date '+%s')
20 echo "Took $(expr $TNOW - $TBASE) seconds"
21 TBASE=$TNOW
24 rm -f $PREFIX_ABS/var/locks/group_mapping.?db
26 NLOCAL=12
27 NGROUP=11
28 NBUILTIN=10
29 DOMSID=$(bin/net getlocalsid | awk '{print $6}')
30 FORSID="S-1-2-3-4-5"
32 echo "DOMSID $DOMSID"
33 echo "FORSID $FORSID"
35 tstart
36 echo "Creating unix groups"
37 for i in $(seq 1 1 $NLOCAL); do
38 unixgroup=testlocal$i
39 gid=$(expr 30000 + $i)
40 groupdel $unixgroup 2>/dev/null
41 groupadd -g $gid $unixgroup || exit 1
42 done
43 for i in $(seq 1 1 $NGROUP); do
44 unixgroup=testgrp$i
45 gid=$(expr 40000 + $i)
46 groupdel $unixgroup 2>/dev/null
47 groupadd -g $gid $unixgroup || exit 1
48 done
49 for i in $(seq 1 1 $NBUILTIN); do
50 unixgroup=testb$i
51 gid=$(expr 50000 + $i)
52 groupdel $unixgroup 2>/dev/null
53 groupadd -g $gid $unixgroup || exit 1
54 done
55 date
57 treport
59 echo "Creating local groups"
60 for i in $(seq 1 1 $NLOCAL); do
61 unixgroup=testlocal$i
62 ntgroup=ntlgrp$i
63 rid=$(expr 10000 + $i)
64 testone add rid=$rid unixgroup=$unixgroup ntgroup=$ntgroup type=local || exit 1
65 done
67 echo "trying a duplicate add"
68 testone add rid=10001 unixgroup=testlocal1 ntgroup=foo type=local && exit 1
70 treport
72 echo "Creating domain groups"
73 for i in $(seq 1 1 $NGROUP); do
74 unixgroup=testgrp$i
75 ntgroup=ntgrp$i
76 rid=$(expr 20000 + $i)
77 testone add rid=$rid unixgroup=$unixgroup ntgroup=$ntgroup type=domain || exit 1
78 done
80 treport
82 echo "Creating builtin groups"
83 for i in $(seq 1 1 $NBUILTIN); do
84 unixgroup=testb$i
85 ntgroup=ntbgrp$i
86 rid=$(expr 30000 + $i)
87 testone add rid=$rid unixgroup=$unixgroup ntgroup=$ntgroup type=builtin || exit 1
88 done
90 treport
92 echo "Adding domain groups to local groups"
93 for i in $(seq 1 1 $NLOCAL); do
94 for j in $(seq 1 1 $i); do
96 lrid=$(expr 10000 + $i)
97 drid=$(expr 20000 + $j)
99 testone addmem $DOMSID-$lrid $DOMSID-$drid || exit 1
100 (testone listmem $DOMSID-$lrid | sort -r) || exit 1
101 done
102 done
104 echo "trying a duplicate addmem"
105 testone addmem $DOMSID-10001 $DOMSID-20001 && exit 1
107 echo "Adding foreign SIDs to local groups"
108 for i in $(seq 1 1 $NLOCAL); do
109 for j in $(seq 1 1 $i); do
111 lrid=$(expr 10000 + $i)
112 frid=$(expr 70000 + $j)
114 testone addmem $DOMSID-$lrid $FORSID-$frid || exit 1
115 (testone listmem $DOMSID-$lrid | sort -r) || exit 1
116 done
117 done
119 echo "trying a duplicate foreign addmem"
120 testone addmem $DOMSID-10001 $FORSID-70001 && exit 1
122 treport
124 echo "Listing local group memberships of domain groups"
125 for i in $(seq 1 1 $NGROUP); do
126 rid=$(expr 20000 + $i)
127 (testone memberships $DOMSID-$rid | sort -r) || exit 1
128 done
130 echo "Trying memberships on bogus sid"
131 testone memberships $DOMSID-999999 || exit 1
133 treport
135 testone list | sort
137 echo "Deleting some domain groups"
138 for i in $(seq 2 2 $NGROUP); do
139 drid=$(expr 20000 + $i)
140 testone delete sid=$DOMSID-$drid || exit 1
141 done
143 echo "Trying duplicate domain group delete"
144 testone delete sid=$DOMSID-20002 && exit 1
146 treport
148 echo "Deleting some local groups"
149 for i in $(seq 2 4 $NLOCAL); do
150 lrid=$(expr 10000 + $i)
151 testone delete sid=$DOMSID-$lrid || exit 1
152 done
154 echo "Trying duplicate local group delete"
155 testone delete sid=$DOMSID-10002 && exit 1
157 treport
159 echo "Modifying some domain groups"
160 for i in $(seq 3 2 $NGROUP); do
161 drid=$(expr 20000 + $i)
162 testone modify sid=$DOMSID-$drid comment="newcomment-$i" type=domain || exit 1
163 done
165 treport
167 testone list | sort
169 echo "Listing local group memberships"
170 for i in $(seq 1 1 $NLOCAL); do
171 rid=$(expr 20000 + $i)
172 (testone memberships $DOMSID-$rid | sort -r) || exit 1
173 done
175 treport
177 echo "Removing some domain groups from local groups"
178 for i in $(seq 1 2 $NLOCAL); do
179 for j in $(seq 1 3 $i); do
181 lrid=$(expr 10000 + $i)
182 drid=$(expr 20000 + $j)
184 testone delmem $DOMSID-$lrid $DOMSID-$drid || exit 1
185 done
186 done
188 echo "Trying duplicate delmem"
189 testone delmem $DOMSID-10001 $DOMSID-20001 && exit 1
191 treport
193 echo "Listing local group memberships"
194 for i in $(seq 1 1 $NLOCAL); do
195 rid=$(expr 20000 + $i)
196 (testone memberships $DOMSID-$rid | sort -r) || exit 1
197 done
199 treport
201 echo "Deleting unix groups"
202 for i in $(seq 1 1 $NLOCAL); do
203 unixgroup=testlocal$i
204 groupdel $unixgroup 2>/dev/null
205 done
206 for i in $(seq 1 1 $NGROUP); do
207 unixgroup=testgrp$i
208 groupdel $unixgroup 2>/dev/null
209 done
210 for i in $(seq 1 1 $NBUILTIN); do
211 unixgroup=testb$i
212 groupdel $unixgroup 2>/dev/null
213 done
215 treport
217 echo "ALL DONE"