| #! /bin/bash |
| # SPDX-License-Identifier: GPL-2.0 |
| # Copyright (c) 2008 Silicon Graphics, Inc. All Rights Reserved. |
| # |
| # FS QA Test No. 192 |
| # |
| # Simple test of atime |
| # - ensure it is persistent after unmount |
| # - check updated time by correct amount |
| # |
| seq=`basename $0` |
| seqres=$RESULT_DIR/$seq |
| echo "QA output created by $seq" |
| |
| here=`pwd` |
| tmp=/tmp/$$ |
| status=1 # failure is the default! |
| trap "exit \$status" 0 1 2 3 15 |
| |
| _access_time() |
| { |
| stat -c %X $1 |
| } |
| |
| # get standard environment, filters and checks |
| . ./common/rc |
| . ./common/filter |
| |
| # real QA test starts here |
| |
| _supported_fs generic |
| _require_test |
| _require_atime |
| delay=5 |
| |
| testfile=$TEST_DIR/testfile |
| rm -f $testfile |
| rm -f $seqres.full |
| |
| echo test >$testfile |
| time1=`_access_time $testfile | tee -a $seqres.full` |
| |
| echo "sleep for $delay seconds" |
| sleep $delay # sleep to allow time to move on for access |
| cat $testfile |
| time2=`_access_time $testfile | tee -a $seqres.full` |
| |
| cd / |
| _test_cycle_mount |
| time3=`_access_time $testfile | tee -a $seqres.full` |
| |
| delta1=`expr $time2 - $time1` |
| delta2=`expr $time3 - $time1` |
| |
| # tolerate an atime up to 2s later than the ideal case |
| _within_tolerance "delta1" $delta1 $delay 0 2 -v |
| _within_tolerance "delta2" $delta2 $delta1 0 0 -v |
| |
| # success, all done |
| status=0 |
| exit |