Skip to contentSkip to conversation

xfstests: made test 215 backwards compatible with older version of bash.

PATCH In review Akshay Lal 3 participants 3 messages Mar 31, 2010 1 message not in the archive

lore
Share & tools
lore

A message that is not in the archive (sent off-list or not yet received): Fix for test 215

Akshay Lal

author
#1 lore raw

PATCH 1/1 xfstests: made test 215 backwards compatible with older version of bash.

Test 215 fails on older versions of bash (2.x), mainly due to the use of 'let' for arithemetic operations. Changed to 'expr'.

On branch fix-test-215
Changes to be committed:

215 +3 -2
index c61f7a5..08aa212 100644
@@ -68,8 +68,9 @@ $XFS_IO_PROG -F -f            \
 mtime2=`stat --printf="%Y" $testfile`
 ctime2=`stat --printf="%Z" $testfile`
 
-let mtime_diff=$mtime2-$mtime1
-let ctime_diff=$ctime2-$ctime1
+# Allow support for older bash versions.
+mtime_diff=`expr $mtime2 - $mtime1`
+ctime_diff=`expr $ctime2 - $ctime1`
 
 if [ "$mtime_diff" -eq "0" ]; then
    echo "FAIL: mtime not update after mapped write"
---
 215 |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)
215 +3 -2
index c61f7a5..24424c2 100644
@@ -68,8 +68,9 @@ $XFS_IO_PROG -F -f 		\
 mtime2=`stat --printf="%Y" $testfile`
 ctime2=`stat --printf="%Z" $testfile`
 
-let mtime_diff=$mtime2-$mtime1
-let ctime_diff=$ctime2-$ctime1
+# Allow support for older bash versions.
+mtime_diff=`expr $mtime2 - $mtime1`
+ctime_diff=`expr $ctime2 - $ctime1`
 
 if [ "$mtime_diff" -eq "0" ]; then
    echo "FAIL: mtime not update after mapped write"
Signature · 6 lines
1.7.0.1

_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs
#2 lore raw
Quoted 2 lines · Akshay Lal

Test 215 fails on older versions of bash (2.x), mainly due to the use of 'let' for arithemetic operations. Changed to 'expr'.

If that is a problem for older bash versions, then there's going systemic problems throughout the xfstests suite. The let expression is used about 80 different places, and I don't see anything special about test 215 that makes it any different from other uses. i might be missing something, but there's not much context to go on from your changelog....

Perhaps upgrading your version of bash might be a better approach?

Cheers,

Dave.

Signature · 7 lines
Dave Chinner
[email protected]

_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs
#3 lore raw
Quoted 11 lines · Dave Chinner
Quoted 2 lines · Akshay Lal

Test 215 fails on older versions of bash (2.x), mainly due to the use of 'let' for arithemetic operations. Changed to 'expr'.

If that is a problem for older bash versions, then there's going systemic problems throughout the xfstests suite. The let expression is used about 80 different places, and I don't see anything special about test 215 that makes it any different from other uses. i might be missing something, but there's not much context to go on from your changelog....

Quoted 5 lines

Perhaps upgrading your version of bash might be a better approach?

Cheers,

Dave.

Also, a wholesale switch from expr to let was done not long ago, for very specific reasons - see below - so I don't think there's much interest in going back in the other direction.

Thanks,
-Eric

commit e714acc0ef37031b9a5a522703f2832f139c22e0

Author: Dave Chinner <[email protected]>
Date:   Wed Mar 25 20:53:36 2009 +0100

reduce the number of processes forked

One of the big cpu time consumers when running xfsqa on UML is forking of new processes. when looping lots of times, using 'expr' to calculate the loop counter increment means we fork at least once every loop. using shell builtins means that we don't fork and many tests run substantially faster.

Some tests are even runnable with this modification. e.g. 110 went from taking 4500s to run down to 9s with the loop iterators changed to avoid forking.

007 +1 -1
index e8c6610..290f716 100755
@@ -50,7 +50,7 @@ num_filenames=100
 i=1
 while [ $i -le $num_filenames ]; do
   echo "nametest.$i" >>$sourcefile
-  i=`expr $i + 1`
+  let i=$i+1
 done
 
 mkdir $testdir/$seq

.... etc ....

_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs