2019-11-21 18:44:37 +03:00
#!/bin/sh
#
# This verifies getting and setting timestamps with non-trivial values like 0
# and < 0 works.
#
if [ $# -lt 5 ] ; then
2022-04-22 16:34:11 +03:00
echo " Usage: $0 SERVER_IP USERNAME PASSWORD PREFIX SMBCLIENT "
exit 1
2019-11-21 18:44:37 +03:00
fi
SERVER_IP = " $1 "
USERNAME = " $2 "
PASSWORD = " $3 "
PREFIX = " $4 "
SMBCLIENT = " $5 "
SMBCLIENT = " $VALGRIND ${ SMBCLIENT } "
failed = 0
2022-04-22 16:34:11 +03:00
incdir = $( dirname $0 ) /../../../testprogs/blackbox
2019-11-21 18:44:37 +03:00
. $incdir /subunit.sh
export TZ = GMT
2022-04-22 16:34:11 +03:00
setup_testfiles( )
{
touch -d " $( date --date= @0) " $PREFIX /time_0
touch -d " $( date --date= @-1) " $PREFIX /time_-1
touch -d " $( date --date= @-2) " $PREFIX /time_-2
touch -t 196801010000 $PREFIX /time_1968
2019-11-21 18:44:37 +03:00
}
2022-04-22 16:34:11 +03:00
remove_testfiles( )
{
rm $PREFIX /time_0
rm $PREFIX /time_-1
rm $PREFIX /time_-2
rm $PREFIX /time_1968
2019-11-21 18:44:37 +03:00
}
2022-04-22 16:34:11 +03:00
test_time( )
{
local file = " $1 "
local expected = " $2 "
2019-11-21 18:44:37 +03:00
2022-04-22 16:34:11 +03:00
$SMBCLIENT //$SERVER /tmp -U $USERNAME %$PASSWORD -c " allinfo $file "
out = $( $SMBCLIENT //$SERVER /tmp -U $USERNAME %$PASSWORD -c " allinfo $file " 2>& 1) || return 1
2022-07-12 10:11:41 +03:00
echo " smbclient allinfo on $file returned: \" $out \" "
2019-11-21 18:44:37 +03:00
2022-04-22 16:34:11 +03:00
# Ignore create_time as that is synthesized
for time in access_time write_time change_time; do
echo " $out " | grep " $time " | grep " $expected " || {
echo " Expected \" $expected \", got: \" $( echo $out | grep $time ) \" "
return 1
}
done
2019-11-21 18:44:37 +03:00
}
#Setup
2022-04-22 16:34:11 +03:00
testit "create testfiles" setup_testfiles || failed = $( expr $failed + 1)
2019-11-21 18:44:37 +03:00
# Tests
2022-04-22 16:34:11 +03:00
testit "time=0" test_time time_0 "Thu Jan 1 12:00:00 AM 1970 GMT" || failed = $( expr $failed + 1)
testit "time=-1" test_time time_-1 "Wed Dec 31 11:59:59 PM 1969 GMT" || failed = $( expr $failed + 1)
testit "time=-2" test_time time_-2 "Wed Dec 31 11:59:58 PM 1969 GMT" || failed = $( expr $failed + 1)
testit "time=1968" test_time time_1968 "Mon Jan 1 12:00:00 AM 1968 GMT" || failed = $( expr $failed + 1)
2019-11-21 18:44:37 +03:00
# Cleanup
2022-04-22 16:34:11 +03:00
testit "delete testfile" remove_testfiles || failed = $( expr $failed + 1)
2019-11-21 18:44:37 +03:00
exit $failed