summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2022-12-28 16:18:40 +0100
committerJule Anger <janger@samba.org>2023-01-13 09:27:09 +0000
commitccb8abb0e727941cb0b22cc55b2190644df81396 (patch)
tree0e7ec48586e68b2285c7aea3f2e28af0e1f502d9
parentcf2643e0209a080801daa6feb00a21a9bd5825b7 (diff)
downloadsamba-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_share1
-rwxr-xr-xselftest/target/Samba3.pm30
-rwxr-xr-xsource3/script/tests/test_registry_share.sh39
-rwxr-xr-xsource3/selftest/tests.py5
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,