]> git.proxmox.com Git - grub2.git/blob - grub-core/tests/lib/functional_test.c
a41fb978df965724b0e892133875506112537c7b
[grub2.git] / grub-core / tests / lib / functional_test.c
1 /*
2 * GRUB -- GRand Unified Bootloader
3 * Copyright (C) 2010 Free Software Foundation, Inc.
4 *
5 * GRUB is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
9 *
10 * GRUB is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with GRUB. If not, see <http://www.gnu.org/licenses/>.
17 */
18
19 #include <grub/mm.h>
20 #include <grub/misc.h>
21 #include <grub/extcmd.h>
22 #include <grub/test.h>
23 #include <grub/dl.h>
24
25 GRUB_MOD_LICENSE ("GPLv3+");
26
27 static grub_err_t
28 grub_functional_test (grub_extcmd_context_t ctxt __attribute__ ((unused)),
29 int argc __attribute__ ((unused)),
30 char **args __attribute__ ((unused)))
31 {
32 grub_test_t test;
33 int ok = 1;
34
35 FOR_LIST_ELEMENTS (test, grub_test_list)
36 {
37 grub_errno = 0;
38 ok = ok && !grub_test_run (test);
39 grub_errno = 0;
40 }
41 if (ok)
42 grub_printf ("ALL TESTS PASSED\n");
43 else
44 grub_printf ("TEST FAILURE\n");
45 return GRUB_ERR_NONE;
46 }
47
48 static grub_err_t
49 grub_functional_all_tests (grub_extcmd_context_t ctxt __attribute__ ((unused)),
50 int argc __attribute__ ((unused)),
51 char **args __attribute__ ((unused)))
52 {
53 grub_test_t test;
54 int ok = 1;
55
56 grub_dl_load ("exfctest");
57 grub_dl_load ("videotest_checksum");
58 grub_dl_load ("gfxterm_menu");
59 grub_dl_load ("setjmp_test");
60 grub_dl_load ("cmdline_cat_test");
61
62 FOR_LIST_ELEMENTS (test, grub_test_list)
63 ok = !grub_test_run (test) && ok;
64 if (ok)
65 grub_printf ("ALL TESTS PASSED\n");
66 else
67 grub_printf ("TEST FAILURE\n");
68 return GRUB_ERR_NONE;
69 }
70
71 static grub_extcmd_t cmd;
72
73 GRUB_MOD_INIT (functional_test)
74 {
75 cmd = grub_register_extcmd ("functional_test", grub_functional_test, 0, 0,
76 "Run all loaded functional tests.", 0);
77 cmd = grub_register_extcmd ("all_functional_test", grub_functional_all_tests, 0, 0,
78 "Run all functional tests.", 0);
79 }
80
81 GRUB_MOD_FINI (functional_test)
82 {
83 grub_unregister_extcmd (cmd);
84 }