s3:pylibsmb: make use of protocol independent cli_write_send/recv in py_cli_write()
[garming/samba-autobuild/.git] / nsswitch / tests / test_idmap_rid.sh
1 #!/bin/sh
2 #
3 # Test id mapping with various SIDs and idmap_rid
4 #
5
6 if [ $# -lt 1 ]; then
7         echo Usage: $0 DOMAIN RANGE_START
8         exit 1
9 fi
10
11 DOMAIN="$1"
12 RANGE_START="$2"
13
14 wbinfo="$VALGRIND $BINDIR/wbinfo"
15 failed=0
16
17 . `dirname $0`/../../testprogs/blackbox/subunit.sh
18
19 DOMAIN_SID=$($wbinfo -n "$DOMAIN/" | cut -f 1 -d " ")
20 if [ $? -ne 0 ] ; then
21     echo "Could not find domain SID" | subunit_fail_test "test_idmap_rid"
22     exit 1
23 fi
24
25 # Find an unused uid and SID
26 RID=66666
27 MAX_RID=77777
28 while true ; do
29     id $RID
30     if [ $? -ne 0 ] ; then
31         SID="$DOMAIN_SID-$RID"
32         $wbinfo -s $SID
33         if [ $? -ne 0 ] ; then
34             break
35         fi
36     fi
37     RID=$(expr $RID + 1)
38     if [ $RID -eq $MAX_RID ] ; then
39         echo "Could not find free SID" | subunit_fail_test "test_idmap_rid"
40         exit 1
41     fi
42 done
43
44 #
45 # Test 1: Using non-existing SID to check backend returns a mapping
46 #
47
48 EXPECTED_ID=$(expr $RID + $RANGE_START)
49 out="$($wbinfo --sids-to-unix-ids=$SID)"
50 echo "wbinfo returned: \"$out\", expecting \"$SID -> uid/gid $EXPECTED_ID\""
51 test "$out" = "$SID -> uid/gid $EXPECTED_ID"
52 ret=$?
53 testit "Unknown RID from primary domain returns a mapping" test $ret -eq 0 || failed=$(expr $failed + 1)
54
55 #
56 # Test 2: Using bogus SID with bad domain part to check idmap backend does not generate a mapping
57 #
58
59 SID=S-1-5-21-1111-2222-3333-666
60 out="$($wbinfo --sids-to-unix-ids=$SID)"
61 echo "wbinfo returned: \"$out\", expecting \"$SID -> unmapped\""
62 test "$out" = "$SID -> unmapped"
63 ret=$?
64 testit "Bogus SID returns unmapped" test $ret -eq 0 || failed=$(expr $failed + 1)
65
66 exit $failed