• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/router/samba-3.5.8/source3/script/tests/
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
5
6testone() {
7    echo $*
8    $VALGRIND bin/net groupmap $*
9}
10
11tstart() {
12    TBASE=`date '+%s'`
13}
14
15treport() {
16    TNOW=`date '+%s'`
17    echo "Took `expr $TNOW - $TBASE` seconds"
18    TBASE=$TNOW
19}
20
21rm -f $PREFIX_ABS/var/locks/group_mapping.?db
22
23NLOCAL=12
24NGROUP=11
25NBUILTIN=10
26DOMSID=`bin/net getlocalsid | awk '{print $6}'`
27FORSID="S-1-2-3-4-5"
28
29echo "DOMSID $DOMSID"
30echo "FORSID $FORSID"
31
32tstart
33echo "Creating unix groups"
34for i in `seq 1 1 $NLOCAL`; do
35  unixgroup=testlocal$i;
36  gid=`expr 30000 + $i`;
37  groupdel $unixgroup 2> /dev/null
38  groupadd -g $gid $unixgroup || exit 1
39done
40for i in `seq 1 1 $NGROUP`; do
41  unixgroup=testgrp$i;
42  gid=`expr 40000 + $i`;
43  groupdel $unixgroup 2> /dev/null
44  groupadd -g $gid $unixgroup || exit 1
45done
46for i in `seq 1 1 $NBUILTIN`; do
47  unixgroup=testb$i;
48  gid=`expr 50000 + $i`;
49  groupdel $unixgroup 2> /dev/null
50  groupadd -g $gid $unixgroup || exit 1
51done
52date
53
54treport
55
56echo "Creating local groups"
57for i in `seq 1 1 $NLOCAL`; do
58  unixgroup=testlocal$i;
59  ntgroup=ntlgrp$i;
60  rid=`expr 10000 + $i`;
61  testone add rid=$rid unixgroup=$unixgroup ntgroup=$ntgroup type=local || exit 1
62done
63
64echo "trying a duplicate add"
65testone add rid=10001 unixgroup=testlocal1 ntgroup=foo type=local && exit 1
66
67treport
68
69echo "Creating domain groups"
70for i in `seq 1 1 $NGROUP`; do
71  unixgroup=testgrp$i;
72  ntgroup=ntgrp$i;
73  rid=`expr 20000 + $i`;
74  testone add rid=$rid unixgroup=$unixgroup ntgroup=$ntgroup type=domain || exit 1
75done
76
77treport
78
79echo "Creating builtin groups"
80for i in `seq 1 1 $NBUILTIN`; do
81  unixgroup=testb$i;
82  ntgroup=ntbgrp$i;
83  rid=`expr 30000 + $i`;
84  testone add rid=$rid unixgroup=$unixgroup ntgroup=$ntgroup type=builtin || exit 1
85done
86
87treport
88
89echo "Adding domain groups to local groups"
90for i in `seq 1 1 $NLOCAL`; do
91 for j in `seq 1 1 $i`; do
92
93  lrid=`expr 10000 + $i`;
94  drid=`expr 20000 + $j`;
95
96  testone addmem $DOMSID-$lrid $DOMSID-$drid || exit 1
97  ( testone listmem $DOMSID-$lrid | sort -r ) || exit 1
98 done
99done
100
101echo "trying a duplicate addmem"
102testone addmem $DOMSID-10001 $DOMSID-20001 && exit 1
103
104echo "Adding foreign SIDs to local groups"
105for i in `seq 1 1 $NLOCAL`; do
106 for j in `seq 1 1 $i`; do
107
108  lrid=`expr 10000 + $i`;
109  frid=`expr 70000 + $j`;
110
111  testone addmem $DOMSID-$lrid $FORSID-$frid || exit 1
112  ( testone listmem $DOMSID-$lrid | sort -r ) || exit 1
113 done
114done
115
116echo "trying a duplicate foreign addmem"
117testone addmem $DOMSID-10001 $FORSID-70001 && exit 1
118
119treport
120
121echo "Listing local group memberships of domain groups"
122for i in `seq 1 1 $NGROUP`; do
123  rid=`expr 20000 + $i`;
124  ( testone memberships $DOMSID-$rid | sort -r ) || exit 1
125done
126
127echo "Trying memberships on bogus sid"
128testone memberships $DOMSID-999999 || exit 1
129
130treport
131
132testone list | sort
133
134echo "Deleting some domain groups"
135for i in `seq 2 2 $NGROUP`; do
136  drid=`expr 20000 + $i`;
137 testone delete sid=$DOMSID-$drid || exit 1
138done
139
140echo "Trying duplicate domain group delete"
141testone delete sid=$DOMSID-20002 && exit 1
142
143treport
144
145echo "Deleting some local groups"
146for i in `seq 2 4 $NLOCAL`; do
147 lrid=`expr 10000 + $i`;
148 testone delete sid=$DOMSID-$lrid || exit 1
149done
150
151echo "Trying duplicate local group delete"
152testone delete sid=$DOMSID-10002 && exit 1
153
154treport
155
156echo "Modifying some domain groups"
157for i in `seq 3 2 $NGROUP`; do
158  drid=`expr 20000 + $i`;
159  testone modify sid=$DOMSID-$drid comment="newcomment-$i" type=domain || exit 1
160done
161
162treport
163
164testone list | sort
165
166echo "Listing local group memberships"
167for i in `seq 1 1 $NLOCAL`; do
168  rid=`expr 20000 + $i`;
169  ( testone memberships $DOMSID-$rid | sort -r ) || exit 1
170done
171
172treport
173
174echo "Removing some domain groups from local groups"
175for i in `seq 1 2 $NLOCAL`; do
176 for j in `seq 1 3 $i`; do
177
178  lrid=`expr 10000 + $i`;
179  drid=`expr 20000 + $j`;
180
181  testone delmem $DOMSID-$lrid $DOMSID-$drid || exit 1
182 done
183done
184
185echo "Trying duplicate delmem"
186testone delmem $DOMSID-10001 $DOMSID-20001 && exit 1
187
188treport
189
190echo "Listing local group memberships"
191for i in `seq 1 1 $NLOCAL`; do
192  rid=`expr 20000 + $i`;
193  ( testone memberships $DOMSID-$rid | sort -r ) || exit 1
194done
195
196treport
197
198echo "Deleting unix groups"
199for i in `seq 1 1 $NLOCAL`; do
200  unixgroup=testlocal$i;
201  groupdel $unixgroup 2> /dev/null
202done
203for i in `seq 1 1 $NGROUP`; do
204  unixgroup=testgrp$i;
205  groupdel $unixgroup 2> /dev/null
206done
207for i in `seq 1 1 $NBUILTIN`; do
208  unixgroup=testb$i;
209  groupdel $unixgroup 2> /dev/null
210done
211
212treport
213
214echo "ALL DONE"
215