mirror of
https://github.com/s3fs-fuse/s3fs-fuse.git
synced 2025-01-03 13:07:24 +00:00
Added a condition to the atime test (#1477)
This commit is contained in:
parent
d0363b118e
commit
c589886ba5
@ -583,6 +583,22 @@ function test_mtime_file {
|
||||
rm_test_file $ALT_TEST_TEXT_FILE
|
||||
}
|
||||
|
||||
# [NOTE]
|
||||
# If it mounted with relatime or noatime options , the "touch -a"
|
||||
# command may not update the atime.
|
||||
# In ubuntu:xenial, atime was updated even if relatime was granted.
|
||||
# However, it was not updated in bionic/focal.
|
||||
# We can probably update atime by explicitly specifying the strictatime
|
||||
# option and running the "touch -a" command. However, the strictatime
|
||||
# option cannot be set.
|
||||
# Therefore, if the relatime option is set, the test with the "touch -a"
|
||||
# command is bypassed.
|
||||
# We do not know why atime is not updated may or not be affected by
|
||||
# these options.(can't say for sure)
|
||||
# However, if atime has not been updated, the s3fs_utimens entry point
|
||||
# will not be called from FUSE library. We added this bypass because
|
||||
# the test became unstable.
|
||||
#
|
||||
function test_update_time() {
|
||||
describe "Testing update time function ..."
|
||||
|
||||
@ -656,17 +672,19 @@ function test_update_time() {
|
||||
#
|
||||
# "touch -a" -> update ctime/atime, not update mtime
|
||||
#
|
||||
touch -a $TEST_TEXT_FILE
|
||||
atime=`get_atime $TEST_TEXT_FILE`
|
||||
ctime=`get_ctime $TEST_TEXT_FILE`
|
||||
mtime=`get_mtime $TEST_TEXT_FILE`
|
||||
if [ $base_atime -eq $atime -o $base_ctime -eq $ctime -o $base_mtime -ne $mtime ]; then
|
||||
echo "touch with -a option expected updated ctime: $base_ctime != $ctime, atime: $base_atime != $atime and same mtime: $base_mtime == $mtime"
|
||||
return 1
|
||||
if ! cat /proc/mounts | grep "^s3fs $TEST_BUCKET_MOUNT_POINT_1 " | grep -e noatime -e relatime >/dev/null; then
|
||||
touch -a $TEST_TEXT_FILE
|
||||
atime=`get_atime $TEST_TEXT_FILE`
|
||||
ctime=`get_ctime $TEST_TEXT_FILE`
|
||||
mtime=`get_mtime $TEST_TEXT_FILE`
|
||||
if [ $base_atime -eq $atime -o $base_ctime -eq $ctime -o $base_mtime -ne $mtime ]; then
|
||||
echo "touch with -a option expected updated ctime: $base_ctime != $ctime, atime: $base_atime != $atime and same mtime: $base_mtime == $mtime"
|
||||
return 1
|
||||
fi
|
||||
base_atime=$atime
|
||||
base_ctime=$ctime
|
||||
sleep 2
|
||||
fi
|
||||
base_atime=$atime
|
||||
base_ctime=$ctime
|
||||
sleep 2
|
||||
|
||||
#
|
||||
# append -> update ctime/mtime, not update atime
|
||||
@ -714,6 +732,10 @@ function test_update_time() {
|
||||
rm_test_file $TIME2_TEST_TEXT_FILE
|
||||
}
|
||||
|
||||
# [NOTE]
|
||||
# See the description of test_update_time () for notes about the
|
||||
# "touch -a" command and atime.
|
||||
#
|
||||
function test_update_directory_time() {
|
||||
describe "Testing update time for directory function ..."
|
||||
|
||||
@ -798,17 +820,19 @@ function test_update_directory_time() {
|
||||
#
|
||||
# "touch -a" -> update ctime/atime, not update mtime
|
||||
#
|
||||
touch -a $TEST_DIR
|
||||
atime=`get_atime $TEST_DIR`
|
||||
ctime=`get_ctime $TEST_DIR`
|
||||
mtime=`get_mtime $TEST_DIR`
|
||||
if [ $base_atime -eq $atime -o $base_ctime -eq $ctime -o $base_mtime -ne $mtime ]; then
|
||||
echo "touch with -a option expected updated ctime: $base_ctime != $ctime, atime: $base_atime != $atime and same mtime: $base_mtime == $mtime"
|
||||
return 1
|
||||
if ! cat /proc/mounts | grep "^s3fs $TEST_BUCKET_MOUNT_POINT_1 " | grep -e noatime -e relatime >/dev/null; then
|
||||
touch -a $TEST_DIR
|
||||
atime=`get_atime $TEST_DIR`
|
||||
ctime=`get_ctime $TEST_DIR`
|
||||
mtime=`get_mtime $TEST_DIR`
|
||||
if [ $base_atime -eq $atime -o $base_ctime -eq $ctime -o $base_mtime -ne $mtime ]; then
|
||||
echo "touch with -a option expected updated ctime: $base_ctime != $ctime, atime: $base_atime != $atime and same mtime: $base_mtime == $mtime"
|
||||
return 1
|
||||
fi
|
||||
base_atime=$atime
|
||||
base_ctime=$ctime
|
||||
sleep 2
|
||||
fi
|
||||
base_atime=$atime
|
||||
base_ctime=$ctime
|
||||
sleep 2
|
||||
|
||||
#
|
||||
# mv -> update ctime, not update atime/mtime for taget directory
|
||||
|
Loading…
Reference in New Issue
Block a user