From 0e2e6352054a9b4f2c211e9fa3ca3563421e792b Mon Sep 17 00:00:00 2001
From: Volker Lendecke <vl@samba.org>
Date: Fri, 21 Dec 2018 11:49:33 +0100
Subject: [PATCH] selftest: Test sids-to-xids with one failing sid

Pair-Programmed-With: Stefan Metzmacher <metze@samba.org>

Signed-off-by: Volker Lendecke <vl@samba.org>
Signed-off-by: Stefan Metzmacher <metze@samba.org>
---
 nsswitch/tests/test_wbinfo_sids_to_xids.sh    | 32 +++++++++++++++++++
 .../knownfail.d/samba3.wbinfo_sids_to_xids    |  1 +
 source3/selftest/tests.py                     |  5 +++
 3 files changed, 38 insertions(+)
 create mode 100755 nsswitch/tests/test_wbinfo_sids_to_xids.sh
 create mode 100644 selftest/knownfail.d/samba3.wbinfo_sids_to_xids

diff --git a/nsswitch/tests/test_wbinfo_sids_to_xids.sh b/nsswitch/tests/test_wbinfo_sids_to_xids.sh
new file mode 100755
index 00000000000..a3ab404f644
--- /dev/null
+++ b/nsswitch/tests/test_wbinfo_sids_to_xids.sh
@@ -0,0 +1,32 @@
+#!/bin/sh
+
+incdir=`dirname $0`/../../testprogs/blackbox
+. $incdir/subunit.sh
+
+#
+# S-1-5-123456789 fails, but S-1-5-11 succeeds. Check that S-1-5-11 is
+# mapped successfully with a GID in the 1000x range
+#
+wbinfo_some_mapped()
+{
+	output=`$VALGRIND $BINDIR/wbinfo --sids-to-unix-ids=S-1-5-123456789,S-1-5-11`
+	test x"$?" = x"0" || {
+		return 1
+	}
+
+	printf '%s' "$output" | grep -q 'S-1-5-123456789 -> unmapped' || {
+		printf '%s' "$output"
+		return 1
+	}
+
+	printf '%s' "$output" | grep -q 'S-1-5-11 -> gid 10000' || {
+		printf '%s' "$output"
+		return 1
+	}
+
+	return 0
+}
+
+testit "wbinfo some mapped" wbinfo_some_mapped || failed=`expr $failed + 1`
+
+testok $0 $failed
diff --git a/selftest/knownfail.d/samba3.wbinfo_sids_to_xids b/selftest/knownfail.d/samba3.wbinfo_sids_to_xids
new file mode 100644
index 00000000000..26c61e361a7
--- /dev/null
+++ b/selftest/knownfail.d/samba3.wbinfo_sids_to_xids
@@ -0,0 +1 @@
+^samba3.wbinfo_sids_to_xids.wbinfo.some.mapped
diff --git a/source3/selftest/tests.py b/source3/selftest/tests.py
index a3bb1c4feac..c0fde3ad3f0 100755
--- a/source3/selftest/tests.py
+++ b/source3/selftest/tests.py
@@ -262,6 +262,11 @@ plantestsuite("samba3.wbinfo_user_info", env,
                             "nsswitch/tests/test_wbinfo_user_info.sh"),
                '$TRUST_DOMAIN', '$TRUST_REALM', '$DOMAIN', 'alice', 'alice', 'jane', 'jane.doe', env])
 
+env = "nt4_member:local"
+plantestsuite("samba3.wbinfo_sids_to_xids", env,
+              [os.path.join(srcdir(),
+                            "nsswitch/tests/test_wbinfo_sids_to_xids.sh")])
+
 env = "ad_member"
 t = "WBCLIENT-MULTI-PING"
 plantestsuite("samba3.smbtorture_s3.%s" % t, env, [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//foo/bar', '""', '""', smbtorture3, ""])