From 1e047e53aeb684a3a21a4269a99c708c381b96b5 Mon Sep 17 00:00:00 2001
From: Andrei Borzenkov <arvidjaar@gmail.com>
Date: Fri, 30 Jan 2015 21:42:46 +0300
Subject: [PATCH 275/506] tests: add test command file tests
This requires access to files in both host and grub image, so
implementing as separate test unit instead of script test was
more easy.
---
Makefile.util.def | 6 +++++
tests/grub_cmd_test.in | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 73 insertions(+)
create mode 100644 tests/grub_cmd_test.in
diff --git a/Makefile.util.def b/Makefile.util.def
index fed96d8..378b577 100644
--- a/Makefile.util.def
+++ b/Makefile.util.def
@@ -1156,6 +1156,12 @@ script = {
common = tests/file_filter_test.in;
};
+script = {
+ testcase;
+ name = grub_cmd_test;
+ common = tests/grub_cmd_test.in;
+};
+
program = {
testcase;
name = example_unit_test;
diff --git a/tests/grub_cmd_test.in b/tests/grub_cmd_test.in
new file mode 100644
index 0000000..6269891
--- /dev/null
+++ b/tests/grub_cmd_test.in
@@ -0,0 +1,67 @@
+#! /bin/bash
+
+# create a randome file
+empty="`mktemp "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"`" || exit 1
+non_empty="`mktemp "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"`" || exit 1
+cat >$non_empty <<EOF
+hello world!
+EOF
+
+. "@builddir@/grub-core/modinfo.sh"
+
+if [ x"${grub_modinfo_platform}" = xemu ]; then
+ grub_empty="(host)$empty"
+ grub_non_empty="(host)$non_empty"
+ grub_dir="(host)${TMPDIR:-/tmp}"
+else
+ grub_empty="/boot/empty"
+ grub_non_empty="/boot/non_empty"
+ grub_dir="/boot/grub"
+fi
+
+
+outfile="`mktemp "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"`" || exit 1
+@builddir@/grub-shell --files=$grub_empty=$empty --files=$grub_non_empty=$non_empty>$outfile <<EOF
+if ! test -f $grub_empty; then
+ echo FAIL1
+fi
+if ! test -e $grub_empty; then
+ echo FAIL2
+fi
+if test -d $grub_empty; then
+ echo FAIL3
+fi
+if ! test -d $grub_dir; then
+ echo FAIL4
+fi
+if test -s $grub_empty; then
+ echo FAIL5
+fi
+if ! test -s $grub_non_empty; then
+ echo FAIL6
+fi
+if test -f $grub_empty -a foo = bar; then
+ echo FAIL7
+fi
+if test -e $grub_empty -a foo = bar; then
+ echo FAIL8
+fi
+if test -s $grub_non_empty -a foo = bar; then
+ echo FAIL9
+fi
+if test -d $grub_dir -a foo = bar; then
+ echo FAIL10
+fi
+
+EOF
+
+rm -f "$empty" "$non_empty"
+
+if grep FAIL "$outfile" > /dev/null 2>&1; then
+ echo "GRUB test command file tests failed."
+ cat "$outfile"
+ exit 1
+else
+ rm -f "${outfile}"
+ exit 0
+fi
--
2.4.3