diff options
author | Stefan Metzmacher <metze@samba.org> | 2022-12-28 16:18:40 +0100 |
---|---|---|
committer | Jule Anger <janger@samba.org> | 2023-01-13 09:27:09 +0000 |
commit | ccb8abb0e727941cb0b22cc55b2190644df81396 (patch) | |
tree | 0e7ec48586e68b2285c7aea3f2e28af0e1f502d9 | |
parent | cf2643e0209a080801daa6feb00a21a9bd5825b7 (diff) | |
download | samba-ccb8abb0e727941cb0b22cc55b2190644df81396.tar.gz |
selftest: add samba3.blackbox.registry_share
This demonstrates the regression introduced by
f03665bb7e8ea97699062630f2aa1bac4c5dfc7f, where
registry shares are no longer listed.
BUG: https://bugzilla.samba.org/show_bug.cgi?id=15243
BUG: https://bugzilla.samba.org/show_bug.cgi?id=15266
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Andrew Walker <awalker@ixsystems.com>
(cherry picked from commit a00c7395fbc7974a61a70ae54ea6ae6349933de2)
-rw-r--r-- | selftest/knownfail.d/registry_share | 1 | ||||
-rwxr-xr-x | selftest/target/Samba3.pm | 30 | ||||
-rwxr-xr-x | source3/script/tests/test_registry_share.sh | 39 | ||||
-rwxr-xr-x | source3/selftest/tests.py | 5 |
4 files changed, 75 insertions, 0 deletions
diff --git a/selftest/knownfail.d/registry_share b/selftest/knownfail.d/registry_share new file mode 100644 index 00000000000..4adbf0915b8 --- /dev/null +++ b/selftest/knownfail.d/registry_share @@ -0,0 +1 @@ +^samba3.blackbox.registry_share.Test.for.share.enum.with.registry.share.clusteredmember diff --git a/selftest/target/Samba3.pm b/selftest/target/Samba3.pm index 0b720a68927..cb17408e398 100755 --- a/selftest/target/Samba3.pm +++ b/selftest/target/Samba3.pm @@ -529,6 +529,36 @@ sub setup_clusteredmember return undef; } + my $registry_share_template = "$node_ret->{SERVERCONFFILE}.registry_share_template"; + unless (open(REGISTRYCONF, ">$registry_share_template")) { + warn("Unable to open $registry_share_template"); + teardown_env($self, $node_ret); + teardown_env($self, $ctdb_data); + return undef; + } + + print REGISTRYCONF " +[registry_share] + copy = tmp + comment = smb username is [%U] +"; + + close(REGISTRYCONF); + + my $net = Samba::bindir_path($self, "net"); + my $cmd = ""; + + $cmd .= "UID_WRAPPER_ROOT=1 "; + $cmd .= "$net conf import $node_ret->{CONFIGURATION} ${registry_share_template}"; + + my $net_ret = system($cmd); + if ($net_ret != 0) { + warn("net conf import failed: $net_ret\n$cmd"); + teardown_env($self, $node_ret); + teardown_env($self, $ctdb_data); + return undef; + } + my $nmblookup = Samba::bindir_path($self, "nmblookup"); do { print "Waiting for the LOGON SERVER registration ...\n"; diff --git a/source3/script/tests/test_registry_share.sh b/source3/script/tests/test_registry_share.sh new file mode 100755 index 00000000000..22e9f732a58 --- /dev/null +++ b/source3/script/tests/test_registry_share.sh @@ -0,0 +1,39 @@ +#!/bin/sh +# Blackbox tests for registry shares +# + +if [ $# -lt 3 ]; then + cat <<EOF +Usage: test_registry_share.sh SERVER USERNAME PASSWORD +EOF + exit 1 +fi + +SERVER=$1 +USERNAME=$2 +PASSWORD=$3 +shift 3 +failed=0 + +samba_bindir="$BINDIR" +samba_srcdir="$SRCDIR" +smbclient="$samba_bindir/smbclient" +rpcclient="$samba_bindir/rpcclient" + +. $samba_srcdir/testprogs/blackbox/subunit.sh +. $samba_srcdir/testprogs/blackbox/common_test_fns.inc + +test_smbclient \ + "Test access to registry share [${USERNAME}]" \ + "ls" "//${SERVER}/registry_share" "-U$USERNAME%$PASSWORD" || + failed=$((failed + 1)) + +testit_grep_count \ + "Test for share enum with registry share" \ + "netname: registry_share" \ + 1 \ + ${rpcclient} "ncacn_np:${SERVER}" "-U$USERNAME%$PASSWORD" \ + -c netshareenum || + failed=$((failed + 1)) + +testok "$0" "$failed" diff --git a/source3/selftest/tests.py b/source3/selftest/tests.py index c9384403ba5..31a80b82e87 100755 --- a/source3/selftest/tests.py +++ b/source3/selftest/tests.py @@ -1306,6 +1306,11 @@ plantestsuite("samba3.blackbox.smbXsrv_client_dead_rec", "fileserver:local", '$SERVER_IP', "tmp"]) +plantestsuite("samba3.blackbox.registry_share", "clusteredmember", + [os.path.join(samba3srcdir, + "script/tests/test_registry_share.sh"), + "$SERVER", '$DC_USERNAME', "$DC_PASSWORD"]) + env = 'fileserver' plantestsuite("samba3.blackbox.virus_scanner", "%s:local" % (env), [os.path.join(samba3srcdir, |