2016-04-24 11:09:05 -07:00
# Common tests
# Pulled out of existing tests to prevent duplication.
#
2022-06-08 14:49:51 +02:00
test_smbclient ()
{
2016-04-24 11:09:05 -07:00
name = " $ 1 "
cmd = " $ 2 "
unc = " $ 3 "
shift
shift
shift
2017-03-29 11:53:18 +02:00
subunit_start_test " $name "
2022-06-08 14:55:28 +02:00
output = $ ( $VALGRIND $smbclient $CONFIGURATION " $unc " - c " $cmd " " $ @ " 2 >& 1 )
2016-04-24 11:09:05 -07:00
status = $ ?
if [ x $status = x0 ]; then
2017-03-29 11:53:18 +02:00
subunit_pass_test " $name "
2016-04-24 11:09:05 -07:00
else
2018-02-26 23:58:20 +01:00
printf '%s' " $output " | subunit_fail_test " $name "
2016-04-24 11:09:05 -07:00
fi
return $status
}
2016-09-06 08:56:47 +02:00
2022-06-08 14:49:51 +02:00
test_smbclient_expect_failure ()
{
2016-09-06 08:56:47 +02:00
name = " $ 1 "
cmd = " $ 2 "
unc = " $ 3 "
shift
shift
shift
2017-03-29 11:53:18 +02:00
subunit_start_test " $name "
2022-06-08 14:55:28 +02:00
output = $ ( $VALGRIND $smbclient $CONFIGURATION " $unc " - c " $cmd " " $ @ " 2 >& 1 )
2016-09-06 08:56:47 +02:00
status = $ ?
if [ x $status = x0 ]; then
2018-02-26 23:58:20 +01:00
printf '%s' " $output " | subunit_fail_test " $name "
2023-04-11 14:23:00 +12:00
return 1
2016-09-06 08:56:47 +02:00
else
2017-03-29 11:53:18 +02:00
subunit_pass_test " $name "
2023-04-11 14:23:00 +12:00
return 0
2016-09-06 08:56:47 +02:00
fi
}
2017-03-29 11:53:41 +02:00
2022-06-08 14:49:51 +02:00
test_rpcclient_grep ()
{
2017-03-29 11:53:41 +02:00
name = " $ 1 "
cmd = " $ 2 "
srv = " $ 3 "
grep = " $ 4 "
shift
shift
shift
shift
subunit_start_test " $name "
2022-06-08 14:55:28 +02:00
output = $ ( $VALGRIND $rpcclient $CONFIGURATION " $srv " - c " $cmd " " $ @ " 2 >& 1 )
2017-03-29 11:53:41 +02:00
status = $ ?
if [ x $status != x0 ]; then
2018-02-26 23:58:20 +01:00
printf '%s' " $output " | subunit_fail_test " $name "
2017-03-29 11:53:41 +02:00
return $status
fi
2018-02-26 23:58:20 +01:00
printf '%s' " $output " | grep - q " $grep "
2017-03-29 11:53:41 +02:00
gstatus = $ ?
if [ x $gstatus = x0 ]; then
subunit_pass_test " $name "
else
2018-02-26 23:58:20 +01:00
printf '%s' " $output " | subunit_fail_test " $name "
2017-03-29 11:53:41 +02:00
fi
2023-04-11 14:24:55 +12:00
return $gstatus
2017-03-29 11:53:41 +02:00
}
2022-06-08 14:49:51 +02:00
test_rpcclient_expect_failure_grep ()
{
2017-03-29 11:53:41 +02:00
name = " $ 1 "
cmd = " $ 2 "
srv = " $ 3 "
grep = " $ 4 "
shift
shift
shift
shift
subunit_start_test " $name "
2022-06-08 14:55:28 +02:00
output = $ ( $VALGRIND $rpcclient $CONFIGURATION " $srv " - c " $cmd " " $ @ " 2 >& 1 )
2017-03-29 11:53:41 +02:00
status = $ ?
if [ x $status = x0 ]; then
2018-02-26 23:58:20 +01:00
printf '%s' " $output " | subunit_fail_test " $name "
2023-04-11 14:26:56 +12:00
return 1
2017-03-29 11:53:41 +02:00
fi
2018-02-26 23:58:20 +01:00
printf '%s' " $output " | grep - q " $grep "
2017-03-29 11:53:41 +02:00
gstatus = $ ?
if [ x $gstatus = x0 ]; then
subunit_pass_test " $name "
else
2018-02-26 23:58:20 +01:00
printf '%s' " $output " | subunit_fail_test " $name "
2017-03-29 11:53:41 +02:00
fi
2023-04-11 14:26:56 +12:00
return $gstatus
2017-03-29 11:53:41 +02:00
}
2016-09-13 08:24:06 +02:00
2022-06-08 14:49:51 +02:00
kerberos_kinit ()
{
2016-09-13 08:24:06 +02:00
kinit_tool = " ${ 1 } "
principal = " ${ 2 } "
password = " ${ 3 } "
shift 3
kbase = $ ( basename $ { kinit_tool })
if [ " ${ kbase } " = " samba4kinit " ]; then
kpassfile = $ ( mktemp )
2022-06-08 14:49:51 +02:00
echo $password > $ { kpassfile }
2022-06-08 14:55:28 +02:00
$kinit_tool - c $ { KRB5CCNAME } -- password - file = $ { kpassfile } " $ @ " $principal
2018-03-01 10:54:52 +01:00
status = $ ?
2016-09-13 08:24:06 +02:00
rm - f $ { kpassfile }
else
2022-06-08 14:55:28 +02:00
echo $password | $kinit_tool " $ @ " $principal
2018-03-01 10:54:52 +01:00
status = $ ?
2016-09-13 08:24:06 +02:00
fi
2018-03-01 10:54:52 +01:00
return $status
2016-09-13 08:24:06 +02:00
}
2020-10-22 11:39:04 +02:00
2022-06-08 14:49:51 +02:00
remove_directory ()
{
2020-10-22 11:39:04 +02:00
local xdir = $ { 1 }
shift
2023-04-11 14:00:51 +12:00
if [ " $xdir " = " / " ] || [ ! - d " $xdir " ] || [ - z " $ (ls -A " $xdir " ) " ]; then
2020-10-22 11:39:04 +02:00
return
fi
rm - rf " $xdir "
}
2022-12-22 08:36:26 +01:00
# 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 } "
}