r22575: move script/tests/ -> selftest/
[gd/samba-autobuild/.git] / source4 / selftest / win / wintest_rpc.sh
diff --git a/source4/selftest/win/wintest_rpc.sh b/source4/selftest/win/wintest_rpc.sh
new file mode 100755 (executable)
index 0000000..d0a0783
--- /dev/null
@@ -0,0 +1,66 @@
+#!/bin/sh
+
+. selftest/test_functions.sh
+
+. selftest/win/wintest_functions.sh
+
+# This variable is defined in the per-hosts .fns file.
+. $WINTESTCONF
+
+if [ $# -lt 4 ]; then
+cat <<EOF
+Usage: test_rpc.sh SERVER USERNAME PASSWORD DOMAIN
+EOF
+exit 1;
+fi
+
+server="$1"
+username="$2"
+password="$3"
+domain="$4"
+shift 4
+
+ncacn_np_tests="RPC-SRVSVC RPC-UNIXINFO RPC-ECHO RPC-DSSETUP RPC-ALTERCONTEXT RPC-MULTIBIND"
+# These tests fail on ncacn_np: RPC-SPOOLSS RPC-SCHANNEL RPC-JOIN RPC-LSA
+# RPC-NETLOGON
+
+ncalrpc_tests="RPC-UNIXINFO RPC-ECHO"
+# These tests fail on ncalrpc: RPC-SCHANNEL RPC-JOIN RPC-LSA RPC-DSSETUP
+# RPC-ALTERCONTEXT RPC-MULTIBIND RPC-NETLOGON
+
+ncacn_ip_tcp_tests="RPC-UNIXINFO RPC-ECHO"
+# These tests fail on ncacn_ip_tcp: RPC-SCHANNEL RPC-JOIN RPC-LSA RPC-DSSETUP
+# RPC-ALTERCONTEXT RPC-MULTIBIND RPC-NETLOGON
+
+bind_options="seal,padcheck bigendian"
+
+test_type="ncalrpc ncacn_np ncacn_ip_tcp"
+
+all_errs=0
+
+on_error() {
+       errstr=$1
+       all_errs=`expr $all_errs + 1`
+
+       restore_snapshot "$errstr" "$VM_CFG_PATH"
+}
+
+for o in $bind_options; do
+       for transport in $test_type; do
+               case $transport in
+                       ncalrpc) rpc_test=$ncalrpc_tests ;;
+                       ncacn_np) rpc_test=$ncacn_np_tests ;;
+                       ncacn_ip_tcp) rpc_test=$ncacn_ip_tcp_tests ;;
+               esac
+
+               for t in $rpc_test; do
+                       test_name="$t on $transport with $o"
+
+                       $SMBTORTURE_BIN_PATH -U $username%$password \
+                               -W $domain $transport:$server[$o] \
+                               $t || on_error "\n$test_name failed."
+               done
+       done
+done
+
+exit $all_errs