1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-24 21:34:56 +03:00
samba-mirror/source3/script/tests/test_timestamps.sh

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

73 lines
1.8 KiB
Bash
Raw Normal View History

#!/bin/sh
#
# This verifies getting and setting timestamps with non-trivial values like 0
# and < 0 works.
#
if [ $# -lt 5 ]; then
echo "Usage: $0 SERVER_IP USERNAME PASSWORD PREFIX SMBCLIENT"
exit 1
fi
SERVER_IP="$1"
USERNAME="$2"
PASSWORD="$3"
PREFIX="$4"
SMBCLIENT="$5"
SMBCLIENT="$VALGRIND ${SMBCLIENT}"
failed=0
incdir=$(dirname $0)/../../../testprogs/blackbox
. $incdir/subunit.sh
export TZ=GMT
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
}
remove_testfiles()
{
rm $PREFIX/time_0
rm $PREFIX/time_-1
rm $PREFIX/time_-2
rm $PREFIX/time_1968
}
test_time()
{
local file="$1"
local expected="$2"
$SMBCLIENT //$SERVER/tmp -U $USERNAME%$PASSWORD -c "allinfo $file"
out=$($SMBCLIENT //$SERVER/tmp -U $USERNAME%$PASSWORD -c "allinfo $file" 2>&1) || return 1
echo "smbclient allinfo on $file returned: \"$out\""
# 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
}
#Setup
testit "create testfiles" setup_testfiles || failed=$(expr $failed + 1)
# Tests
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)
# Cleanup
testit "delete testfile" remove_testfiles || failed=$(expr $failed + 1)
exit $failed