[PATCH] lib: framework: Add "unsafe" test category
Colin King
colin.king at canonical.com
Thu Sep 6 09:34:30 UTC 2012
From: Colin Ian King <colin.king at canonical.com>
Some tests we may add in the future (such as UEFI run time services)
can cause the kernel to oops if the firmware is buggy, so we should
add a new "unsafe" test category for these kinds of tests. Currently
there are no "unsafe" tests in fwts, so this does not make any difference
to output to fwts --show-tests until we start adding the actual tests,
so this is a fairly benign addition.
Also add the --unsafe and -U option to run unsafe tests.
Signed-off-by: Colin Ian King <colin.king at canonical.com>
---
src/lib/include/fwts_framework.h | 2 ++
src/lib/src/fwts_framework.c | 11 ++++++++++-
2 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/src/lib/include/fwts_framework.h b/src/lib/include/fwts_framework.h
index de28612..ad490c7 100644
--- a/src/lib/include/fwts_framework.h
+++ b/src/lib/include/fwts_framework.h
@@ -42,6 +42,7 @@ typedef enum {
FWTS_FRAMEWORK_FLAGS_INTERACTIVE_EXPERIMENTAL = 0x00008000,
FWTS_FRAMEWORK_FLAGS_POWER_STATES = 0x00010000,
FWTS_FRAMEWORK_FLAGS_ROOT_PRIV = 0x00020000,
+ FWTS_FRAMEWORK_FLAGS_UNSAFE = 0x00040000,
FWTS_FRAMEWORK_FLAGS_TEST_BIOS = 0x01000000,
FWTS_FRAMEWORK_FLAGS_TEST_UEFI = 0x02000000,
FWTS_FRAMEWORK_FLAGS_TEST_ACPI = 0x04000000,
@@ -235,6 +236,7 @@ static inline int fwts_tests_passed(const fwts_framework *fw)
#define FWTS_POWER_STATES FWTS_FRAMEWORK_FLAGS_POWER_STATES
#define FWTS_UTILS FWTS_FRAMEWORK_FLAGS_UTILS
#define FWTS_ROOT_PRIV FWTS_FRAMEWORK_FLAGS_ROOT_PRIV
+#define FWTS_UNSAFE FWTS_FRAMEWORK_FLAGS_UNSAFE
#define FWTS_TEST_BIOS FWTS_FRAMEWORK_FLAGS_TEST_BIOS
#define FWTS_TEST_UEFI FWTS_FRAMEWORK_FLAGS_TEST_UEFI
diff --git a/src/lib/src/fwts_framework.c b/src/lib/src/fwts_framework.c
index c6536a6..1ad3d0d 100644
--- a/src/lib/src/fwts_framework.c
+++ b/src/lib/src/fwts_framework.c
@@ -37,7 +37,8 @@
FWTS_BATCH_EXPERIMENTAL | \
FWTS_INTERACTIVE_EXPERIMENTAL |\
FWTS_POWER_STATES | \
- FWTS_UTILS)
+ FWTS_UTILS | \
+ FWTS_UNSAFE)
#define FWTS_ARGS_WIDTH 28
#define FWTS_MIN_TTY_WIDTH 50
@@ -78,6 +79,7 @@ static fwts_option fwts_framework_options[] = {
{ "lp-tags-log", "", 0, "Output LaunchPad bug tags in results log." },
{ "disassemble-aml", "", 0, "Disassemble AML from DSDT and SSDT tables." },
{ "log-type", "", 1, "Specify log type (plaintext, json, html or xml)." },
+ { "unsafe", "U", 0, "Unsafe tests (tests that can potentially cause kernel oopses." },
{ NULL, NULL, 0, NULL }
};
@@ -230,6 +232,7 @@ static void fwts_framework_show_tests(fwts_framework *fw, bool full)
{ "Interactive Experimental", FWTS_INTERACTIVE_EXPERIMENTAL },
{ "Power States", FWTS_POWER_STATES },
{ "Utilities", FWTS_UTILS },
+ { "Unsafe", FWTS_UNSAFE },
{ NULL, 0 },
};
@@ -984,6 +987,9 @@ int fwts_framework_options_handler(fwts_framework *fw, int argc, char * const ar
if (fwts_framework_log_type_parse(fw, optarg) != FWTS_OK)
return FWTS_ERROR;
break;
+ case 33: /* --unsafe */
+ fw->flags |= FWTS_FRAMEWORK_FLAGS_UNSAFE;
+ break;
}
break;
case 'a': /* --all */
@@ -1051,6 +1057,9 @@ int fwts_framework_options_handler(fwts_framework *fw, int argc, char * const ar
case 'u': /* --utils */
fw->flags |= FWTS_FRAMEWORK_FLAGS_UTILS;
break;
+ case 'U': /* --unsafe */
+ fw->flags |= FWTS_FRAMEWORK_FLAGS_UNSAFE;
+ break;
case 'v': /* --version */
fwts_framework_show_version(stdout, argv[0]);
return FWTS_COMPLETE;
--
1.7.10.4
More information about the fwts-devel
mailing list