5 #include <talloc/talloc.h>
7 #include "parser-test.h"
9 static const char *envsig = "# GRUB Environment Block\n";
13 const char *env_before;
15 const char *env_after;
20 "a=xxx\nsave_env a\n",
26 "a=xxx\nsave_env a\n",
32 "a=xxx\nsave_env a\n",
74 "a=xxx\nsave_env a\n",
80 "save_env an_unset_var\n",
85 static void run_env_test(struct parser_test *test, struct env_test *envtest)
87 const char *env_before, *env_after;
89 env_before = talloc_asprintf(test, "%s%s", envsig, envtest->env_before);
90 env_after = talloc_asprintf(test, "%s%s", envsig, envtest->env_after);
92 test_add_file_data(test, test->ctx->device, "/boot/grub/grubenv",
93 env_before, strlen(env_before));
95 __test_read_conf_data(test, test->ctx->device,
96 "/boot/grub/grub.cfg", envtest->script,
97 strlen(envtest->script));
99 test_run_parser(test, "grub2");
101 check_file_contents(test, test->ctx->device, "/boot/grub/grubenv",
102 env_after, strlen(env_after));
105 void run_test(struct parser_test *test)
107 struct env_test *env_test;
110 for (i = 0; i < ARRAY_SIZE(tests); i++) {
111 env_test = &tests[i];
112 printf("test %s: ", env_test->name);
114 run_env_test(test, env_test);