selftest: Add test for bug #8884: wbinfo --group-info=administrator segfaults s4...
[gd/samba-autobuild/.git] / nsswitch / tests / test_wbinfo.sh
index 8fa0db812d82dc5f9184cb8277a09a178c491638..461d7801c2f3b5db881254053263ddef64c14f1e 100755 (executable)
@@ -14,8 +14,8 @@ TARGET=$4
 shift 4
 
 failed=0
-samba4bindir=`dirname $0`/../../source4/bin
-wbinfo=$samba4bindir/wbinfo
+samba4bindir="$BINDIR"
+wbinfo="$VALGRIND $samba4bindir/wbinfo"
 
 . `dirname $0`/../../testprogs/blackbox/subunit.sh
 
@@ -51,12 +51,18 @@ knownfail() {
         return $status
 }
 
-
+# List users
 testit "wbinfo -u against $TARGET" $wbinfo -u || failed=`expr $failed + 1`
+# List groups
+testit "wbinfo -g against $TARGET" $wbinfo -g || failed=`expr $failed + 1`
+# Convert netbios name to IP
+# Does not work yet
+knownfail "wbinfo -N against $TARGET" $wbinfo -N $NETBIOSNAME || failed=`expr $failed + 1`
+# Convert IP to netbios name
 # Does not work yet
-knownfail "wbinfo -g against $TARGET" $wbinfo -g || failed=`expr $failed + 1`
-knownfail "wbinfo -N against $TARGET" $wbinfo -N || failed=`expr $failed + 1`
-knownfail "wbinfo -I against $TARGET" $wbinfo -I || failed=`expr $failed + 1`
+knownfail "wbinfo -I against $TARGET" $wbinfo -I $SERVER_IP || failed=`expr $failed + 1`
+
+# Convert name to SID
 testit "wbinfo -n against $TARGET" $wbinfo -n "$DOMAIN/$USERNAME" || failed=`expr $failed + 1`
 admin_sid=`$wbinfo -n "$DOMAIN/$USERNAME" | cut -d " " -f1`
 echo "$DOMAIN/$USERNAME resolved to $admin_sid"
@@ -100,7 +106,7 @@ else
        echo "success: wbinfo -U check for sane mapping"
 fi
 
-admin_uid=`$wbinfo -U $admin_sid`
+admin_uid=`$wbinfo -S $admin_sid`
 
 testit "wbinfo -G against $TARGET" $wbinfo -G 30000 || failed=`expr $failed + 1`
 
@@ -144,8 +150,10 @@ testfail "wbinfo -Y against $TARGET using invalid SID" $wbinfo -Y "S-1-22-1-3000
 
 testit "wbinfo -t against $TARGET" $wbinfo -t || failed=`expr $failed + 1`
 
-testit "wbinfo  --trusted-domains against $TARGET" $wbinfo --trusted-domains || failed=`expr $failed + 1`
-testit "wbinfo --all-domains against $TARGET" $wbinfo --all-domains || failed=`expr $failed + 1`
+#didn't really work anyway
+knownfail "wbinfo  --trusted-domains against $TARGET" $wbinfo --trusted-domains || failed=`expr $failed + 1`
+knownfail "wbinfo --all-domains against $TARGET" $wbinfo --all-domains || failed=`expr $failed + 1`
+
 testit "wbinfo --own-domain against $TARGET" $wbinfo --own-domain || failed=`expr $failed + 1`
 
 echo "test: wbinfo --own-domain against $TARGET check output"
@@ -155,18 +163,34 @@ if test x$own_domain = x$DOMAIN; then
 else
        echo "Own domain reported as $own_domain instead of $DOMAIN"
        echo "failure: wbinfo --own-domain against $TARGET check output"
+       failed=`expr $failed + 1`
 fi
 
 # this does not work
 knownfail "wbinfo --sequence against $TARGET" $wbinfo --sequence
-knownfail "wbinfo -D against $TARGET" $wbinfo -D $DOMAIN || failed=`expr $failed + 1`
+
+# this is stubbed out now
+testit "wbinfo -D against $TARGET" $wbinfo -D $DOMAIN || failed=`expr $failed + 1`
 
 testit "wbinfo -i against $TARGET" $wbinfo -i "$DOMAIN/$USERNAME" || failed=`expr $failed + 1`
 
-# this does not work
-knownfail "wbinfo --uid-info against $TARGET" $wbinfo --uid-info $admin_sid
-knownfail "wbinfo --group-info against $TARGET" $wbinfo --group-info "S-1-22-2-0"
-knownfail "wbinfo -r against $TARGET" $wbinfo -r "$DOMAIN/$USERNAME"
+testit "wbinfo --uid-info against $TARGET" $wbinfo --uid-info $admin_uid || failed=`expr $failed + 1`
+
+echo "test: wbinfo --group-info against $TARGET"
+rawgid=`$wbinfo --group-info "Domain admins" | sed 's/.*:\([0-9][0-9]*\):/\1/'`
+if test x$? = x0; then
+       echo "success: wbinfo --group-info against $TARGET"
+else
+       echo "failure: wbinfo --group-info against $TARGET"
+       failed=`expr $failed + 1`
+fi
+
+testfail "wbinfo --group-info against $TARGET with $USERNAME" $wbinfo --group-info $USERNAME && failed=`expr $failed + 1`
+
+gid=`echo $rawgid | sed 's/.*:\([0-9][0-9]*\):/\1/'`
+testit "wbinfo --gid-info against $TARGET" $wbinfo --gid-info $gid || failed=`expr $failed + 1`
+
+testit "wbinfo -r against $TARGET" $wbinfo -r "$DOMAIN/$USERNAME" || failed=`expr $failed + 1`
 
 testit "wbinfo --user-domgroups against $TARGET" $wbinfo --user-domgroups $admin_sid || failed=`expr $failed + 1`
 
@@ -174,8 +198,7 @@ testit "wbinfo --user-sids against $TARGET" $wbinfo --user-sids $admin_sid || fa
 
 testit "wbinfo -a against $TARGET with domain creds" $wbinfo -a "$DOMAIN/$USERNAME"%"$PASSWORD" || failed=`expr $failed + 1`
 
-# this does not work
-knwonfail "wbinfo --getdcname against $TARGET" $wbinfo --getdcname=$DOMAIN
+testit "wbinfo --getdcname against $TARGET" $wbinfo --getdcname=$DOMAIN
 
 testit "wbinfo -p against $TARGET" $wbinfo -p || failed=`expr $failed + 1`