testprogs/blackbox: add test_net_ads_search_server.sh
authorStefan Metzmacher <metze@samba.org>
Wed, 5 Apr 2023 14:45:21 +0000 (16:45 +0200)
committerStefan Metzmacher <metze@samba.org>
Thu, 6 Apr 2023 12:51:30 +0000 (12:51 +0000)
This reproduces a regression with
'net ads search -P --server server.of.trusted.domain'

BUG: https://bugzilla.samba.org/show_bug.cgi?id=15323

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
selftest/knownfail.d/samba4.blackbox.net_ads_search_server_P [new file with mode: 0644]
source4/selftest/tests.py
testprogs/blackbox/test_net_ads_search_server.sh [new file with mode: 0755]

diff --git a/selftest/knownfail.d/samba4.blackbox.net_ads_search_server_P b/selftest/knownfail.d/samba4.blackbox.net_ads_search_server_P
new file mode 100644 (file)
index 0000000..7f06e3f
--- /dev/null
@@ -0,0 +1 @@
+^samba4.blackbox.net_ads_search_server_P.trust
index fc38c09966da6e080aaebc2022bcb5041e8537af..f9e37610bdc1d3a2fe3558fbf912144acfa51982 100755 (executable)
@@ -669,6 +669,17 @@ plantestsuite("samba4.blackbox.client_etypes_strong(ad_dc:client)", "ad_dc:clien
 plantestsuite("samba4.blackbox.net_ads_dns(ad_member:local)", "ad_member:local", [os.path.join(bbdir, "test_net_ads_dns.sh"), '$DC_SERVER', '$DC_USERNAME', '$DC_PASSWORD', '$REALM', '$USERNAME', '$PASSWORD'])
 plantestsuite("samba4.blackbox.samba-tool_ntacl(ad_member:local)", "ad_member:local", [os.path.join(bbdir, "test_samba-tool_ntacl.sh"), '$PREFIX', '$DOMSID'])
 
+env = "ad_member:local"
+plantestsuite("samba4.blackbox.net_ads_search_server_P.primary", env,
+              [os.path.join(bbdir, "test_net_ads_search_server.sh"),
+              '$DC_SERVER', '$REALM'])
+plantestsuite("samba4.blackbox.net_ads_search_server_P.trust_e_both", env,
+              [os.path.join(bbdir, "test_net_ads_search_server.sh"),
+              '$TRUST_E_BOTH_SERVER', '$TRUST_E_BOTH_REALM'])
+plantestsuite("samba4.blackbox.net_ads_search_server_P.trust_f_both", env,
+              [os.path.join(bbdir, "test_net_ads_search_server.sh"),
+              '$TRUST_F_BOTH_SERVER', '$TRUST_F_BOTH_REALM'])
+
 if have_gnutls_fips_mode_support:
     plantestsuite("samba4.blackbox.weak_crypto.client", "ad_dc", [os.path.join(bbdir, "test_weak_crypto.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$REALM', '$DOMAIN', "$PREFIX/ad_dc"])
     plantestsuite("samba4.blackbox.test_weak_disable_ntlmssp_ldap", "ad_member:local", [os.path.join(bbdir, "test_weak_disable_ntlmssp_ldap.sh"),'$DC_USERNAME', '$DC_PASSWORD'])
diff --git a/testprogs/blackbox/test_net_ads_search_server.sh b/testprogs/blackbox/test_net_ads_search_server.sh
new file mode 100755 (executable)
index 0000000..f8350c9
--- /dev/null
@@ -0,0 +1,37 @@
+#!/bin/sh
+
+if [ $# -lt 2 ]; then
+cat <<EOF
+Usage: $0 SERVER REALM
+EOF
+exit 1;
+fi
+
+SERVER=$1
+REALM=$2
+shift 2
+
+failed=0
+. `dirname $0`/subunit.sh
+
+samba_net="$BINDIR/net"
+
+DN=$(echo "${REALM}" | tr '[:upper:]' '[:lower:]' | sed -e 's!^!DC=!' -e 's!\.!,DC=!g')
+testit_grep_count \
+       "net_ads_search.ntlmssp" \
+       "distinguishedName: ${DN}" \
+       1 \
+       $samba_net ads search --use-kerberos=off -P \
+       --server "${SERVER}.${REALM}" \
+       '(objectClass=domain)' distinguishedName || \
+       failed=$((failed + 1))
+testit_grep_count \
+       "net_ads_search.krb5" \
+       "distinguishedName: ${DN}" \
+       1 \
+       $samba_net ads search --use-kerberos=required -P \
+       --server "${SERVER}.${REALM}" \
+       '(objectClass=domain)' distinguishedName || \
+       failed=$((failed + 1))
+
+exit $failed