summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/parser/Makefile.am3
-rw-r--r--test/parser/test-grub2-if-formats.c40
-rw-r--r--test/parser/test-grub2-menuentry-formats.c41
-rw-r--r--test/parser/test-grub2-noeol.c15
4 files changed, 99 insertions, 0 deletions
diff --git a/test/parser/Makefile.am b/test/parser/Makefile.am
index eca4c0a..072eba6 100644
--- a/test/parser/Makefile.am
+++ b/test/parser/Makefile.am
@@ -16,6 +16,9 @@ parser_TESTS = \
test/parser/test-grub2-single \
test/parser/test-grub2-default \
test/parser/test-grub2-empty \
+ test/parser/test-grub2-noeol \
+ test/parser/test-grub2-menuentry-formats \
+ test/parser/test-grub2-if-formats \
test/parser/test-grub2-default-index \
test/parser/test-grub2-default-multiword \
test/parser/test-grub2-multiple-resolve \
diff --git a/test/parser/test-grub2-if-formats.c b/test/parser/test-grub2-if-formats.c
new file mode 100644
index 0000000..cbf1afb
--- /dev/null
+++ b/test/parser/test-grub2-if-formats.c
@@ -0,0 +1,40 @@
+
+#include "parser-test.h"
+
+#if 0 /* PARSER_EMBEDDED_CONFIG */
+if true;then t1=1;fi
+if true ;then t2=2;fi
+if true;then t3=3 ;fi
+if true;then t4=4; ;fi
+if true
+then t5=5
+fi
+if true
+then t6=6;
+fi
+if true
+ then t7=7
+fi
+if true
+then t8=8; fi
+if true
+then
+t9=9
+
+fi
+
+menuentry $t1$t2$t3$t4$t5$t6$t7$t8$t9 {linux /vmlinux}
+#endif
+
+void run_test(struct parser_test *test)
+{
+ struct discover_boot_option *opt;
+
+ test_read_conf_embedded(test, "/grub2/grub.cfg");
+
+ test_run_parser(test, "grub2");
+
+ check_boot_option_count(test->ctx, 1);
+ opt = get_boot_option(test->ctx, 0);
+ check_name(opt, "123456789");
+}
diff --git a/test/parser/test-grub2-menuentry-formats.c b/test/parser/test-grub2-menuentry-formats.c
new file mode 100644
index 0000000..132ce8d
--- /dev/null
+++ b/test/parser/test-grub2-menuentry-formats.c
@@ -0,0 +1,41 @@
+
+#include "parser-test.h"
+
+#if 0 /* PARSER_EMBEDDED_CONFIG */
+menuentry "test.0" {linux /vmlinux;}
+menuentry "test.1" {linux /vmlinux}
+menuentry "test.2" {linux /vmlinux }
+menuentry "test.3" { linux /vmlinux; }
+menuentry "test.4" {linux /vmlinux ;}
+menuentry "test.5" {
+linux /vmlinux;}
+menuentry "test.6" {linux /vmlinux
+}
+menuentry "test.7" {
+linux /vmlinux
+}
+menuentry "test.8" {
+ linux /vmlinux
+}
+menuentry "test.9" {
+ linux /vmlinux
+ }
+#endif
+
+void run_test(struct parser_test *test)
+{
+ struct discover_boot_option *opt;
+ char str[] = "test.0";
+ int i;
+
+ test_read_conf_embedded(test, "/grub2/grub.cfg");
+
+ test_run_parser(test, "grub2");
+
+ check_boot_option_count(test->ctx, 10);
+ for (i = 0; i < 8; i++) {
+ opt = get_boot_option(test->ctx, i);
+ str[5] = i + '0';
+ check_name(opt, str);
+ }
+}
diff --git a/test/parser/test-grub2-noeol.c b/test/parser/test-grub2-noeol.c
new file mode 100644
index 0000000..e2db85e
--- /dev/null
+++ b/test/parser/test-grub2-noeol.c
@@ -0,0 +1,15 @@
+
+#include "parser-test.h"
+
+void run_test(struct parser_test *test)
+{
+ const char data[] = "true";
+
+ test_add_file_data(test, test->ctx->device, "/boot/grub/grubenv",
+ data, sizeof(data));
+
+ __test_read_conf_data(test, test->ctx->device,
+ "/boot/grub/grub.cfg", data, sizeof(data));
+
+ test_run_parser(test, "grub2");
+}
OpenPOWER on IntegriCloud