#!/bin/bash # SPDX-License-Identifier: GPL-2.0 # Copyright (c) 2000-2002 Silicon Graphics, Inc. All Rights Reserved. # # FS QA Test No. 120 # # Test noatime mount option. # . ./common/preamble _begin_fstest other atime auto quick # Import common functions. . ./common/filter # real QA test starts here _supported_fs generic _require_scratch _require_atime _scratch_mkfs >/dev/null 2>&1 || _fail "mkfs failed" _compare_access_times() { original_access_time="`cat $tmp.out | sed -n '5p'|awk '{ print substr($0,0,32)}'`" accessed_time="`$here/src/lstat64 $1 | sed -n '5p'| awk '{ print substr($0,0,32)}'`" echo "*** compare access times ***" if [ "$original_access_time" != "$accessed_time" ] then echo "*** file access time updated on $2 (unexpected) ***" cat $tmp.out echo "---------------------------------------------------" $here/src/lstat64 $1 mount | grep $SCRATCH_MNT fi } if ! _try_scratch_mount "-o noatime" >$tmp.out 2>&1 then cat $tmp.out echo "!!! mount failed" exit fi #executable file echo "*** copying file ***" cp $here/src/lstat64 $SCRATCH_MNT $here/src/lstat64 $SCRATCH_MNT/lstat64 >$tmp.out sleep 5 echo "*** executing file ***" $SCRATCH_MNT/lstat64 $SCRATCH_MNT/lstat64 >/dev/null _compare_access_times $SCRATCH_MNT/lstat64 "executing file" #reading file echo "*** creating file ***" touch $SCRATCH_MNT/testfile $here/src/lstat64 $SCRATCH_MNT/testfile >$tmp.out sleep 5 echo "*** reading file ***" cat $SCRATCH_MNT/testfile >/dev/null _compare_access_times $SCRATCH_MNT/testfile "reading file" #writing file echo "*** creating file ***" touch $SCRATCH_MNT/testfile2 $here/src/lstat64 $SCRATCH_MNT/testfile2 >$tmp.out sleep 5 echo "*** writing to file ***" echo "asdf" >> $SCRATCH_MNT/testfile2 _compare_access_times $SCRATCH_MNT/testfile2 "writing file" _scratch_unmount # success, all done status=0 exit