]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
tests: Add pathological iso9660 filesystem tests
authorGlenn Washburn <development@efficientek.com>
Thu, 16 Feb 2023 07:04:37 +0000 (01:04 -0600)
committerDaniel Kiper <daniel.kiper@oracle.com>
Tue, 28 Feb 2023 11:47:58 +0000 (12:47 +0100)
These are not added to grub-fs-tester because they are not generated and
none of the filesystem tests are run on these ISOs. The test is to run the
command "ls /" on the ISO, and a failure is determined if the command
times out, has non-zero return value or has any output.

Signed-off-by: Glenn Washburn <development@efficientek.com>
Tested-by: Thomas Schmitt <scdbackup@gmx.net>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
tests/iso9660_ce_loop.iso.gz [new file with mode: 0644]
tests/iso9660_ce_loop2.iso.gz [new file with mode: 0644]
tests/iso9660_test.in

diff --git a/tests/iso9660_ce_loop.iso.gz b/tests/iso9660_ce_loop.iso.gz
new file mode 100644 (file)
index 0000000..9c53c56
Binary files /dev/null and b/tests/iso9660_ce_loop.iso.gz differ
diff --git a/tests/iso9660_ce_loop2.iso.gz b/tests/iso9660_ce_loop2.iso.gz
new file mode 100644 (file)
index 0000000..f59e676
Binary files /dev/null and b/tests/iso9660_ce_loop2.iso.gz differ
index ed0a5bf8d42d4ca7808bd5898d0d9b95fd99316d..44bc08c6dfe055a0f29770bfef04e7c98c2642a4 100644 (file)
@@ -12,4 +12,19 @@ fi
 "@builddir@/grub-fs-tester" rockridge_joliet
 "@builddir@/grub-fs-tester" joliet_1999
 "@builddir@/grub-fs-tester" rockridge_1999
-"@builddir@/grub-fs-tester" rockridge_joliet_1999
\ No newline at end of file
+"@builddir@/grub-fs-tester" rockridge_joliet_1999
+
+echo "Testing for proper recognition of CE loops ... "
+for fs in iso9660_ce_loop iso9660_ce_loop2; do
+  tempdir=`mktemp -d "${TMPDIR:-/tmp}/${0##*/}.$(date '+%Y%m%d%H%M%S%N').${fs}.XXX"` ||
+    { echo "Failed to make temporary directory"; exit 99; }
+  gunzip <"$srcdir"/tests/${fs}.iso.gz >"${tempdir}/${fs}.iso" || exit 99
+  output=$(LC_ALL=C timeout -s KILL "60" \
+    "@builddir@/grub-fstest" "${tempdir}/${fs}.iso" ls / ) || ret=$?
+  rm -rf "$tempdir"
+  if [ "${ret:-0}" -ne 0 -o -n "$output" ]; then
+    echo "FAIL ($fs)"
+    exit 1
+  fi
+done
+echo "PASS"