From 8cf0241459f2f5dbd28833fb32768492c500c38d Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Thu, 27 Apr 2023 12:25:24 +0200 Subject: winbind: Test wbinfo -u with more than 1000 users winbind asks dcerpc_samr_LookupRids in one batch, where samr.idl has NTSTATUS samr_LookupRids( [in,ref] policy_handle *domain_handle, [in,range(0,1000)] uint32 num_rids, [in,size_is(1000),length_is(num_rids)] uint32 rids[], [out,ref] lsa_Strings *names, [out,ref] samr_Ids *types ); limiting num_rids to 1000 entries. Test this. BUG: https://bugzilla.samba.org/show_bug.cgi?id=15366 Signed-off-by: Volker Lendecke Reviewed-by: Andrew Bartlett (cherry picked from commit f633389f36e79d3e772777ad7ca13012e3616273) --- selftest/knownfail.d/wbinfo_u_large_ad | 1 + source3/script/tests/test_wbinfo_u_large_ad.sh | 28 ++++++++++++++++++++++++++ source4/selftest/tests.py | 5 +++++ 3 files changed, 34 insertions(+) create mode 100644 selftest/knownfail.d/wbinfo_u_large_ad create mode 100755 source3/script/tests/test_wbinfo_u_large_ad.sh diff --git a/selftest/knownfail.d/wbinfo_u_large_ad b/selftest/knownfail.d/wbinfo_u_large_ad new file mode 100644 index 00000000000..a7814a95cc2 --- /dev/null +++ b/selftest/knownfail.d/wbinfo_u_large_ad @@ -0,0 +1 @@ +^samba.wbinfo_u_large_ad.\(ad_dc:local\).* \ No newline at end of file diff --git a/source3/script/tests/test_wbinfo_u_large_ad.sh b/source3/script/tests/test_wbinfo_u_large_ad.sh new file mode 100755 index 00000000000..ab5f0ca1f6a --- /dev/null +++ b/source3/script/tests/test_wbinfo_u_large_ad.sh @@ -0,0 +1,28 @@ +#!/bin/sh + +LDBMODIFY="$VALGRIND ${LDBMODIFY:-$BINDIR/ldbmodify} $CONFIGURATION" +LDBSEARCH="$VALGRIND ${LDBSEARCH:-$BINDIR/ldbsearch} $CONFIGURATION" +WBINFO="$VALGRIND ${WBINFO:-$BINDIR/wbinfo} $CONFIGURATION" + +NUM_USERS=1234 + +BASE_DN=$($LDBSEARCH -H ldap://$DC_SERVER -b "" --scope=base defaultNamingContext | awk '/^defaultNamingContext/ {print $2}') + +incdir=$(dirname $0)/../../../testprogs/blackbox +. $incdir/subunit.sh + +seq -w 1 "$NUM_USERS" | + xargs -INUM echo -e "dn:cn=large_ad_NUM,cn=users,$BASE_DN\nchangetype:add\nobjectclass:user\nsamaccountname:large_ad_NUM\n" | + $LDBMODIFY -H ldap://$DC_SERVER -U "$DOMAIN\Administrator%$DC_PASSWORD" + +testit_grep_count \ + "Make sure $NUM_USERS $DOMAIN users are returned" \ + "$DOMAIN/large_ad_" \ + "$NUM_USERS" \ + ${WBINFO} -u || failed=$(expr $failed + 1) + +seq -w 1 "$NUM_USERS" | + xargs -INUM echo -e "dn:cn=large_ad_NUM,cn=users,$BASE_DN\nchangetype:delete\n" | + $LDBMODIFY -H ldap://$DC_SERVER -U "$DOMAIN\Administrator%$DC_PASSWORD" + +testok $0 $failed diff --git a/source4/selftest/tests.py b/source4/selftest/tests.py index 336d13be8b2..7e37c1f4e4c 100755 --- a/source4/selftest/tests.py +++ b/source4/selftest/tests.py @@ -852,6 +852,11 @@ for env in ["nt4_dc", "nt4_member", "ad_dc", "ad_member", "chgdcpass", "rodc"]: planpythontestsuite(env + ":local", "samba.tests.ntlm_auth") +plantestsuite( + "samba.wbinfo_u_large_ad.(ad_dc:local)", + "ad_dc:local", + [os.path.join(samba3srcdir, "script/tests/test_wbinfo_u_large_ad.sh")]) + for env in ["ktest"]: planpythontestsuite(env + ":local", "samba.tests.ntlm_auth_krb5") -- cgit v1.2.1