]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
selftest: add a test for %U variable expansion in spoolssd
authorRalph Boehme <slow@samba.org>
Thu, 11 Mar 2021 13:46:28 +0000 (14:46 +0100)
committerJeremy Allison <jra@samba.org>
Thu, 11 Mar 2021 23:43:32 +0000 (23:43 +0000)
This targets the nt4_dc testenv which luckily already runs with spoolssd
enabled.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=14668
MR: https://gitlab.com/samba-team/samba/-/merge_requests/1834

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Björn Baumbach <bb@sernet.de>
Reviewed-by: Jeremy Allison <jra@samba.org>
selftest/knownfail.d/samba3.blackbox.printing_var_exp [new file with mode: 0644]
selftest/target/Samba3.pm
source3/script/tests/printing/printing_var_exp_lpr_cmd.sh [new file with mode: 0755]
source3/script/tests/test_printing_var_exp.sh [new file with mode: 0755]
source3/selftest/tests.py

diff --git a/selftest/knownfail.d/samba3.blackbox.printing_var_exp b/selftest/knownfail.d/samba3.blackbox.printing_var_exp
new file mode 100644 (file)
index 0000000..5312a58
--- /dev/null
@@ -0,0 +1 @@
+^samba3.blackbox.printing_var_exp.Test variable expansion.*
index a0c43aa842e4b2de1adea7f26d92d37a8c2b4d5f..48ca3bf46883b66667b42b11e71cba0550e2ab09 100755 (executable)
@@ -2490,6 +2490,11 @@ sub provision($$)
 [print3]
        copy = print1
        default devmode = no
+
+[print_var_exp]
+       copy = print1
+       print command = $self->{srcdir}/source3/script/tests/printing/printing_var_exp_lpr_cmd.sh \"Windows user: %U\" \"UNIX user: %u\" \"Domain: %D\"
+
 [lp]
        copy = print1
 
diff --git a/source3/script/tests/printing/printing_var_exp_lpr_cmd.sh b/source3/script/tests/printing/printing_var_exp_lpr_cmd.sh
new file mode 100755 (executable)
index 0000000..4a56a15
--- /dev/null
@@ -0,0 +1,7 @@
+#!/bin/bash
+
+rm -f /tmp/printing_var_exp.log
+
+for i in $(seq 1 $#) ; do
+    eval echo "arg $i: \$$i" >> /tmp/printing_var_exp.log
+done
diff --git a/source3/script/tests/test_printing_var_exp.sh b/source3/script/tests/test_printing_var_exp.sh
new file mode 100755 (executable)
index 0000000..6cfd6c0
--- /dev/null
@@ -0,0 +1,40 @@
+#!/bin/sh
+
+if [ $# -lt 4 ]; then
+cat <<EOF
+Usage: test_smbspool.sh SERVER SERVER_IP DOMAIN USERNAME PASSWORD
+EOF
+exit 1;
+fi
+
+SERVER="$1"
+SERVER_IP="$2"
+DOMAIN="$3"
+USERNAME="$4"
+PASSWORD="$5"
+shift 5
+ADDARGS="$@"
+
+incdir=`dirname $0`/../../../testprogs/blackbox
+. $incdir/subunit.sh
+. $incdir/common_test_fns.inc
+
+smbclient="$BINDIR/smbclient"
+
+test_var_expansion() {
+       $smbclient -U $DOMAIN/$USERNAME%$PASSWORD \
+                  //$SERVER_IP/print_var_exp \
+                  -c "print $SRCDIR/testdata/printing/example.ps" || return 1
+
+       cat /tmp/printing_var_exp.log
+
+       grep "Windows user: $USERNAME" /tmp/printing_var_exp.log || return 1
+       grep "UNIX user: $USERNAME" /tmp/printing_var_exp.log || return 1
+       grep "Domain: $DOMAIN" /tmp/printing_var_exp.log || return 1
+}
+
+testit "Test variable expansion for '%U', '%u' and '%D'" \
+       test_var_expansion \
+       || failed=$(expr $failed + 1)
+
+exit $failed
index fe2fee610e5bfb8e6cf0725b17af3cc904ce8938..01542d964a113bb62b12b6f9905d3027ad37f363 100755 (executable)
@@ -353,6 +353,8 @@ for env in ["nt4_member", "ad_member"]:
 env = "ad_dc_smb1"
 plantestsuite("samba3.blackbox.smbspool", env, [os.path.join(samba3srcdir, "script/tests/test_smbspool.sh"), '$SERVER', '$SERVER_IP', '$DC_USERNAME', '$DC_PASSWORD', env])
 
+plantestsuite("samba3.blackbox.printing_var_exp", "nt4_dc", [os.path.join(samba3srcdir, "script/tests/test_printing_var_exp.sh"), '$SERVER', '$SERVER_IP', '$DOMAIN', '$DC_USERNAME', '$DC_PASSWORD'])
+
 for env in ["ad_member:local", "nt4_dc:local"]:
     plantestsuite("samba3.blackbox.smbpasswd", env, [os.path.join(samba3srcdir, "script/tests/test_smbpasswd.sh"), '$SERVER', '$SERVER_IP', '$DC_USERNAME', '$DC_PASSWORD'])