diff options
author | Andreas Schneider <asn@samba.org> | 2017-07-11 10:58:11 +0200 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2017-07-25 09:14:19 +0200 |
commit | 5c178ebc965ed5884082a962ffc86371a448dfa5 (patch) | |
tree | bb1fdf0b817a021a66c891c79314f556502ff9fe /source3 | |
parent | d6518d74dda517c84f7a4a2fe3ad37857fb9d7b0 (diff) | |
download | samba-5c178ebc965ed5884082a962ffc86371a448dfa5.tar.gz |
s3:tests: Add test for smbspool
Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
Diffstat (limited to 'source3')
-rwxr-xr-x | source3/script/tests/test_smbspool.sh | 109 | ||||
-rwxr-xr-x | source3/selftest/tests.py | 3 |
2 files changed, 112 insertions, 0 deletions
diff --git a/source3/script/tests/test_smbspool.sh b/source3/script/tests/test_smbspool.sh new file mode 100755 index 00000000000..bd1884b7be7 --- /dev/null +++ b/source3/script/tests/test_smbspool.sh @@ -0,0 +1,109 @@ +#!/bin/sh + +if [ $# -lt 4 ]; then +cat <<EOF +Usage: test_smbclient_basic.sh SERVER SERVER_IP DOMAIN USERNAME PASSWORD +EOF +exit 1; +fi + +SERVER="$1" +SERVER_IP="$2" +USERNAME="$3" +PASSWORD="$4" +TARGET_ENV="$5" +shift 5 +ADDARGS="$@" + +incdir=`dirname $0`/../../../testprogs/blackbox +. $incdir/subunit.sh +. $incdir/common_test_fns.inc + +samba_bindir="$BINDIR" +samba_vlp="$samba_bindir/vlp" +samba_smbspool="$samba_bindir/smbspool" + +test_smbspool_noargs() +{ + cmd='$1 2>&1' + eval echo "$cmd" + out=$(eval $cmd) + ret=$? + + if [ $ret != 0 ]; then + echo "$out" + echo "failed to execute $1" + fi + + echo "$out" | grep 'network smb "Unknown" "Windows Printer via SAMBA"' + ret=$? + if [ $ret != 0 ] ; then + echo "$out" + return 1 + fi +} + +# +# The test enviornment uses 'vlp' (virtual lp) as the printing backend. +# +# When using the vlp backend the print job is only written to the database. +# The job needs to removed manually using 'vlp lprm' command! +# +# This calls the 'vlp' command to check if the print job has been successfully +# added to the database and also makes sure the temorary print file has been +# created. +# +# The function removes the print job from the vlp database if successful. +# +test_vlp_verify() +{ + tdbfile="$PREFIX_ABS/$TARGET_ENV/lockdir/vlp.tdb" + if [ ! -w $tdbfile ]; then + echo "vlp tdbfile $tdbfile doesn't exist or is not writeable!" + return 1 + fi + + cmd='$samba_vlp tdbfile=$tdbfile lpq print1 2>&1' + eval echo "$cmd" + out=$(eval $cmd) + ret=$? + if [ $ret != 0 ]; then + echo "failed to get print queue with $samba_vlp" + echo "$out" + fi + + jobid=$(echo "$out" | awk '/[0-9]+/ { print $1 };') + if [ $jobid -lt 1000 || $jobid -gt 2000 ]; then + echo "failed to get jobid" + echo "$out" + return 1 + fi + + file=$(echo "$out" | awk '/[0-9]+/ { print $6 };') + if [ ! -r $PREFIX_ABS/$TARGET_ENV/share/$file ]; then + echo "$file doesn't exist" + echo "$out" + return 1 + fi + + $samba_vlp "tdbfile=$tdbfile" lprm print1 $jobid + ret=$? + if [ $ret != 0 ] ; then + echo "Failed to remove jobid $jobid from $tdbfile" + return 1 + fi +} + +testit "smbspool no args" \ + test_smbspool_noargs $samba_smbspool || \ + failed=$(expr $failed + 1) + +testit "smbspool print example.ps" \ + $samba_smbspool smb://$USERNAME:$PASSWORD@$SERVER_IP/print1 200 $USERNAME "Testprint" 1 "options" $SRCDIR/testdata/printing/example.ps || \ + failed=$(expr $failed + 1) + +testit "vlp verify example.ps" \ + test_vlp_verify \ + || failed=$(expr $failed + 1) + +exit $failed diff --git a/source3/selftest/tests.py b/source3/selftest/tests.py index d352c141fee..38afa081e0f 100755 --- a/source3/selftest/tests.py +++ b/source3/selftest/tests.py @@ -184,6 +184,9 @@ for options in ["--option=clientntlmv2auth=no", "--option=clientusespnego=no --o plantestsuite("samba3.blackbox.smbclient_auth.plain (%s) %s" % (env, options), env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_auth.sh"), '$SERVER', '$SERVER_IP', '$DC_USERNAME', '$DC_PASSWORD', smbclient3, configuration, options]) plantestsuite("samba3.blackbox.smbclient_auth.plain (%s) %s member creds" % (env, options), env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_auth.sh"), '$SERVER', '$SERVER_IP', '$SERVER/$USERNAME', '$PASSWORD', smbclient3, configuration, options]) +env="ad_dc" +plantestsuite("samba3.blackbox.smbspool", env, [os.path.join(samba3srcdir, "script/tests/test_smbspool.sh"), '$SERVER', '$SERVER_IP', '$DC_USERNAME', '$DC_PASSWORD', env]) + env="nt4_dc" plantestsuite("samba3.blackbox.smbclient_auth.plain (%s) ipv6" % env, env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_auth.sh"), '$SERVER', '$SERVER_IPV6', '$SERVER/$USERNAME', '$PASSWORD', smbclient3, configuration]) |