summaryrefslogtreecommitdiffstats
path: root/testprogs/blackbox/common_test_fns.inc
diff options
context:
space:
mode:
Diffstat (limited to 'testprogs/blackbox/common_test_fns.inc')
-rwxr-xr-xtestprogs/blackbox/common_test_fns.inc155
1 files changed, 155 insertions, 0 deletions
diff --git a/testprogs/blackbox/common_test_fns.inc b/testprogs/blackbox/common_test_fns.inc
new file mode 100755
index 0000000..df8fee0
--- /dev/null
+++ b/testprogs/blackbox/common_test_fns.inc
@@ -0,0 +1,155 @@
+# Common tests
+# Pulled out of existing tests to prevent duplication.
+#
+test_smbclient()
+{
+ name="$1"
+ cmd="$2"
+ unc="$3"
+ shift
+ shift
+ shift
+ subunit_start_test "$name"
+ output=$($VALGRIND $smbclient $CONFIGURATION "$unc" -c "$cmd" "$@" 2>&1)
+ status=$?
+ if [ x$status = x0 ]; then
+ subunit_pass_test "$name"
+ else
+ printf '%s' "$output" | subunit_fail_test "$name"
+ fi
+ return $status
+}
+
+test_smbclient_expect_failure()
+{
+ name="$1"
+ cmd="$2"
+ unc="$3"
+ shift
+ shift
+ shift
+ subunit_start_test "$name"
+ output=$($VALGRIND $smbclient $CONFIGURATION "$unc" -c "$cmd" "$@" 2>&1)
+ status=$?
+ if [ x$status = x0 ]; then
+ printf '%s' "$output" | subunit_fail_test "$name"
+ return 1
+ else
+ subunit_pass_test "$name"
+ return 0
+ fi
+}
+
+test_rpcclient_grep()
+{
+ name="$1"
+ cmd="$2"
+ srv="$3"
+ grep="$4"
+ shift
+ shift
+ shift
+ shift
+ subunit_start_test "$name"
+ output=$($VALGRIND $rpcclient $CONFIGURATION "$srv" -c "$cmd" "$@" 2>&1)
+ status=$?
+ if [ x$status != x0 ]; then
+ printf '%s' "$output" | subunit_fail_test "$name"
+ return $status
+ fi
+ printf '%s' "$output" | grep -q "$grep"
+ gstatus=$?
+ if [ x$gstatus = x0 ]; then
+ subunit_pass_test "$name"
+ else
+ printf '%s' "$output" | subunit_fail_test "$name"
+ fi
+ return $gstatus
+}
+
+test_rpcclient_expect_failure_grep()
+{
+ name="$1"
+ cmd="$2"
+ srv="$3"
+ grep="$4"
+ shift
+ shift
+ shift
+ shift
+ subunit_start_test "$name"
+ output=$($VALGRIND $rpcclient $CONFIGURATION "$srv" -c "$cmd" "$@" 2>&1)
+ status=$?
+ if [ x$status = x0 ]; then
+ printf '%s' "$output" | subunit_fail_test "$name"
+ return 1
+ fi
+ printf '%s' "$output" | grep -q "$grep"
+ gstatus=$?
+ if [ x$gstatus = x0 ]; then
+ subunit_pass_test "$name"
+ else
+ printf '%s' "$output" | subunit_fail_test "$name"
+ fi
+ return $gstatus
+}
+
+kerberos_kinit()
+{
+ kinit_tool="${1}"
+ principal="${2}"
+ password="${3}"
+ shift 3
+ kbase=$(basename ${kinit_tool})
+ if [ "${kbase}" = "samba4kinit" ]; then
+ kpassfile=$(mktemp)
+ echo $password >${kpassfile}
+ $kinit_tool -c ${KRB5CCNAME} --password-file=${kpassfile} "$@" $principal
+ status=$?
+ rm -f ${kpassfile}
+ else
+ echo $password | $kinit_tool "$@" $principal
+ status=$?
+ fi
+ return $status
+}
+
+remove_directory()
+{
+ local xdir=${1}
+ shift
+
+ if [ "$xdir" = "/" ] || [ ! -d "$xdir" ] || [ -z "$(ls -A "$xdir")" ]; then
+ return
+ fi
+
+ rm -rf "$xdir"
+}
+
+# This function should be used to either use a system tool or one of our
+# build dir if available.
+#
+# Examples:
+#
+# system_or_builddir_binary ldbsearch ${BUILDDIR}
+# system_or_builddir_binary kinit ${BUILDDIR} samba4kinit
+#
+system_or_builddir_binary()
+{
+ _bin_name="${1}"
+ _build_dir="${2}"
+ _alt_bin_name="${3}"
+
+ _bin="$(command -v ${_bin_name})"
+ _bin_build_path="${_build_dir}/${_bin_name}"
+
+ if [ -n "${_alt_bin_name}" ]; then
+ _bin_build_path="${_build_dir}/${_alt_bin_name}"
+ fi
+
+ if [ -x "${_bin_build_path}" ]; then
+ _bin="${_bin_build_path}"
+ fi
+
+ echo "${_bin}"
+}