pylibsmb: Return reparse_tag from directory listing
[Samba.git] / testprogs / blackbox / common_test_fns.inc
blobdf8fee0e032e85b7329509edde04ec671f91fec7
1 # Common tests
2 # Pulled out of existing tests to prevent duplication.
4 test_smbclient()
6         name="$1"
7         cmd="$2"
8         unc="$3"
9         shift
10         shift
11         shift
12         subunit_start_test "$name"
13         output=$($VALGRIND $smbclient $CONFIGURATION "$unc" -c "$cmd" "$@" 2>&1)
14         status=$?
15         if [ x$status = x0 ]; then
16                 subunit_pass_test "$name"
17         else
18                 printf '%s' "$output" | subunit_fail_test "$name"
19         fi
20         return $status
23 test_smbclient_expect_failure()
25         name="$1"
26         cmd="$2"
27         unc="$3"
28         shift
29         shift
30         shift
31         subunit_start_test "$name"
32         output=$($VALGRIND $smbclient $CONFIGURATION "$unc" -c "$cmd" "$@" 2>&1)
33         status=$?
34         if [ x$status = x0 ]; then
35                 printf '%s' "$output" | subunit_fail_test "$name"
36                 return 1
37         else
38                 subunit_pass_test "$name"
39                 return 0
40         fi
43 test_rpcclient_grep()
45         name="$1"
46         cmd="$2"
47         srv="$3"
48         grep="$4"
49         shift
50         shift
51         shift
52         shift
53         subunit_start_test "$name"
54         output=$($VALGRIND $rpcclient $CONFIGURATION "$srv" -c "$cmd" "$@" 2>&1)
55         status=$?
56         if [ x$status != x0 ]; then
57                 printf '%s' "$output" | subunit_fail_test "$name"
58                 return $status
59         fi
60         printf '%s' "$output" | grep -q "$grep"
61         gstatus=$?
62         if [ x$gstatus = x0 ]; then
63                 subunit_pass_test "$name"
64         else
65                 printf '%s' "$output" | subunit_fail_test "$name"
66         fi
67         return $gstatus
70 test_rpcclient_expect_failure_grep()
72         name="$1"
73         cmd="$2"
74         srv="$3"
75         grep="$4"
76         shift
77         shift
78         shift
79         shift
80         subunit_start_test "$name"
81         output=$($VALGRIND $rpcclient $CONFIGURATION "$srv" -c "$cmd" "$@" 2>&1)
82         status=$?
83         if [ x$status = x0 ]; then
84                 printf '%s' "$output" | subunit_fail_test "$name"
85                 return 1
86         fi
87         printf '%s' "$output" | grep -q "$grep"
88         gstatus=$?
89         if [ x$gstatus = x0 ]; then
90                 subunit_pass_test "$name"
91         else
92                 printf '%s' "$output" | subunit_fail_test "$name"
93         fi
94         return $gstatus
97 kerberos_kinit()
99         kinit_tool="${1}"
100         principal="${2}"
101         password="${3}"
102         shift 3
103         kbase=$(basename ${kinit_tool})
104         if [ "${kbase}" = "samba4kinit" ]; then
105                 kpassfile=$(mktemp)
106                 echo $password >${kpassfile}
107                 $kinit_tool -c ${KRB5CCNAME} --password-file=${kpassfile} "$@" $principal
108                 status=$?
109                 rm -f ${kpassfile}
110         else
111                 echo $password | $kinit_tool "$@" $principal
112                 status=$?
113         fi
114         return $status
117 remove_directory()
119         local xdir=${1}
120         shift
122         if [ "$xdir" = "/" ] || [ ! -d "$xdir" ] || [ -z "$(ls -A "$xdir")" ]; then
123                 return
124         fi
126         rm -rf "$xdir"
129 # This function should be used to either use a system tool or one of our
130 # build dir if available.
132 # Examples:
134 #   system_or_builddir_binary ldbsearch ${BUILDDIR}
135 #   system_or_builddir_binary kinit ${BUILDDIR} samba4kinit
137 system_or_builddir_binary()
139         _bin_name="${1}"
140         _build_dir="${2}"
141         _alt_bin_name="${3}"
143         _bin="$(command -v ${_bin_name})"
144         _bin_build_path="${_build_dir}/${_bin_name}"
146         if [ -n "${_alt_bin_name}" ]; then
147             _bin_build_path="${_build_dir}/${_alt_bin_name}"
148         fi
150         if [ -x "${_bin_build_path}" ]; then
151                 _bin="${_bin_build_path}"
152         fi
154         echo "${_bin}"