lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-Id: <1395395514-5548-1-git-send-email-andreas.dilger@intel.com>
Date:	Fri, 21 Mar 2014 03:51:54 -0600
From:	Andreas Dilger <andreas.dilger@...el.com>
To:	tytso@....edu
Cc:	linux-ext4@...r.kernel.org,
	Andreas Dilger <andreas.dilger@...el.com>
Subject: [PATCH] tests: fix resize test tmpfs max-file-size checking

Old distros may not have the "truncate" tool, so use "dd" instead.

If tmpfs cannot handle a 2GB temp file (e.g. old RHEL5 and SLES 11
kernels) then skip the test instead of failing it.  If this fails,
try to report better error messages instead of failing silently.

Signed-off-by: Andreas Dilger <andreas.dilger@...el.com>
---
 tests/r_1024_small_bg/script       |    9 +++++++--
 tests/r_64bit_big_expand/script    |    1 +
 tests/r_bigalloc_big_expand/script |    1 +
 tests/r_ext4_big_expand/script     |    1 +
 tests/r_ext4_small_bg/script       |    9 +++++++--
 tests/scripts/resize_test          |   17 ++++++++++++++---
 6 files changed, 31 insertions(+), 7 deletions(-)

diff --git a/tests/r_1024_small_bg/script b/tests/r_1024_small_bg/script
index fafcf91..f86537e 100644
--- a/tests/r_1024_small_bg/script
+++ b/tests/r_1024_small_bg/script
@@ -10,12 +10,17 @@ E2FSCK=../e2fsck/e2fsck
 
 . $cmd_dir/scripts/resize_test
 
-if resize_test
-then
+resize_test
+RC=$?
+if [ $RC -eq 0 ]; then
 	echo "$test_name: $test_description: ok"
 	touch $test_name.ok
+elif [ $RC -eq 111 ]; then
+	echo "$test_name: $test_description: skipped"
+	touch $test_name.ok
 else
 	echo "$test_name: $test_description: failed"
+ 	ln $LOG $test_name.failed
 	touch $test_name.failed
 fi
 
diff --git a/tests/r_64bit_big_expand/script b/tests/r_64bit_big_expand/script
index 51f36e9..2a8fef0 100644
--- a/tests/r_64bit_big_expand/script
+++ b/tests/r_64bit_big_expand/script
@@ -20,6 +20,7 @@ elif [ $RC -eq 111 ]; then
 	touch $test_name.ok
 else
 	echo "$test_name: $test_description: failed"
+	ln $LOG $test_name.failed
 	touch $test_name.failed
 fi
 
diff --git a/tests/r_bigalloc_big_expand/script b/tests/r_bigalloc_big_expand/script
index 56c8c15..2f28c67 100644
--- a/tests/r_bigalloc_big_expand/script
+++ b/tests/r_bigalloc_big_expand/script
@@ -20,6 +20,7 @@ elif [ $RC -eq 111 ]; then
 	touch $test_name.ok
 else
 	echo "$test_name: $test_description: failed"
+	ln $LOG $test_name.failed
 	touch $test_name.failed
 fi
 
diff --git a/tests/r_ext4_big_expand/script b/tests/r_ext4_big_expand/script
index a4f8fe6..3b969d2 100644
--- a/tests/r_ext4_big_expand/script
+++ b/tests/r_ext4_big_expand/script
@@ -20,6 +20,7 @@ elif [ $RC -eq 111 ]; then
 	touch $test_name.ok
 else
 	echo "$test_name: $test_description: failed"
+	ln $LOG $test_name.failed
 	touch $test_name.failed
 fi
 
diff --git a/tests/r_ext4_small_bg/script b/tests/r_ext4_small_bg/script
index 553cbd8..dafb008 100644
--- a/tests/r_ext4_small_bg/script
+++ b/tests/r_ext4_small_bg/script
@@ -10,12 +10,17 @@ E2FSCK=../e2fsck/e2fsck
 
 . $cmd_dir/scripts/resize_test
 
-if resize_test
-then
+resize_test
+RC=$?
+if [ $RC -eq 0 ]; then
 	echo "$test_name: $test_description: ok"
 	touch $test_name.ok
+elif [ $RC -eq 111 ]; then
+	echo "$test_name: $test_description: skipped"
+	touch $test_name.ok
 else
 	echo "$test_name: $test_description: failed"
+	ln $LOG $test_name.failed
 	touch $test_name.failed
 fi
 
diff --git a/tests/scripts/resize_test b/tests/scripts/resize_test
index 6a8b0e9..b09731c 100755
--- a/tests/scripts/resize_test
+++ b/tests/scripts/resize_test
@@ -1,25 +1,36 @@
 #!/bin/sh
 
+# old distros are missing "truncate", emulate it with "dd"
+truncate()
+{
+	[ "$1" = "-s" ] && size=$2 && shift 2
+
+	dd if=/dev/zero of=$1 bs=1 count=0 seek=$size >> $LOG 2>&1
+}
+
 resize_test () {
 
+echo $test_description starting > $LOG
 rm -f $TMPFILE
 touch $TMPFILE
 
 # Verify that the $TMP filesystem handles $SIZE_2 sparse files.
 # If that fails, try the local filesystem instead.
 if truncate -s $SIZE_2 $TMPFILE 2> /dev/null; then
-        > $TMPFILE
+	echo "using $TMPFILE" >> $LOG
 else
 	rm $TMPFILE
 	export TMPFILE=$(TMPDIR=. mktemp -t $test_name.XXXXXX.tmp)
 	touch $TMPFILE
-	if ! truncate -s $SIZE_2 $TMPFILE 2> /dev/null; then
+	echo "using $TMPFILE" >> $LOG
+	if ! truncate -s $SIZE_2 $TMPFILE >> $LOG 2>&1; then
 		rm $TMPFILE
 		return 111
 	fi
 fi
+> $TMPFILE
 
-echo $MKE2FS $FEATURES -qF $TMPFILE $SIZE_1 > $LOG
+echo $MKE2FS $FEATURES -qF $TMPFILE $SIZE_1 >> $LOG
 $MKE2FS $FEATURES -qF $TMPFILE $SIZE_1 >> $LOG
 
 OUT_TMP=$(mktemp -t csum-tmp.XXXXXX)
-- 
1.7.3.4

--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ