summaryrefslogtreecommitdiff
path: root/runner/runner_tests.c
diff options
context:
space:
mode:
authorPetri Latvala <petri.latvala@intel.com>2020-06-18 15:06:23 +0300
committerPetri Latvala <petri.latvala@intel.com>2020-07-20 11:04:17 +0300
commit6663e3ab5f77add7077711c2b649caf2bd7903c4 (patch)
treed81220a009f024457ff236e63a210f9c6fae54c1 /runner/runner_tests.c
parentf0f0122e9f20e85597451730fb05691f3481eb38 (diff)
runner: Introduce --disk-usage-limit
Disk usage limit is a limit of disk space taken, per (dynamic) subtest. If the test's output, kernel log included, exceeds this limit, the test is killed, similarly to killing the test when the kernel gets tainted. Signed-off-by: Petri Latvala <petri.latvala@intel.com> Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Diffstat (limited to 'runner/runner_tests.c')
-rw-r--r--runner/runner_tests.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/runner/runner_tests.c b/runner/runner_tests.c
index 48b02107..cd033f6c 100644
--- a/runner/runner_tests.c
+++ b/runner/runner_tests.c
@@ -183,6 +183,7 @@ static void assert_settings_equal(struct settings *one, struct settings *two)
* here.
*/
igt_assert_eq(one->abort_mask, two->abort_mask);
+ igt_assert_eq_u64(one->disk_usage_limit, two->disk_usage_limit);
igt_assert_eqstr(one->test_list, two->test_list);
igt_assert_eqstr(one->name, two->name);
igt_assert_eq(one->dry_run, two->dry_run);
@@ -270,6 +271,7 @@ igt_main
igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, settings));
igt_assert_eq(settings->abort_mask, 0);
+ igt_assert_eq_u64(settings->disk_usage_limit, 0UL);
igt_assert(!settings->test_list);
igt_assert_eqstr(settings->name, "path-to-results");
igt_assert(!settings->dry_run);
@@ -415,6 +417,7 @@ igt_main
const char *argv[] = { "runner",
"-n", "foo",
"--abort-on-monitored-error=taint,lockdep",
+ "--disk-usage-limit=4096",
"--test-list", "path-to-test-list",
"--ignore-missing",
"--dry-run",
@@ -444,6 +447,7 @@ igt_main
igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, settings));
igt_assert_eq(settings->abort_mask, ABORT_TAINT | ABORT_LOCKDEP);
+ igt_assert_eq_u64(settings->disk_usage_limit, 4096UL);
igt_assert(strstr(settings->test_list, "path-to-test-list") != NULL);
igt_assert_eqstr(settings->name, "foo");
igt_assert(settings->dry_run);
@@ -592,6 +596,29 @@ igt_main
}
+ igt_subtest("disk-usage-limit-suffixes") {
+ const char *argv[] = { "runner",
+ "--disk-usage-limit=4096",
+ "test-root-dir",
+ "results-path",
+ };
+
+ igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, settings));
+ igt_assert_eq_u64(settings->disk_usage_limit, 4096UL);
+
+ argv[1] = "--disk-usage-limit=4k";
+ igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, settings));
+ igt_assert_eq_u64(settings->disk_usage_limit, 4096UL);
+
+ argv[1] = "--disk-usage-limit=1M";
+ igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, settings));
+ igt_assert_eq_u64(settings->disk_usage_limit, 1024UL * 1024UL);
+
+ argv[1] = "--disk-usage-limit=1G";
+ igt_assert(parse_options(ARRAY_SIZE(argv), (char**)argv, settings));
+ igt_assert_eq_u64(settings->disk_usage_limit, 1024UL * 1024UL * 1024UL);
+ }
+
igt_subtest("parse-clears-old-data") {
const char *argv[] = { "runner",
"-n", "foo",
@@ -838,6 +865,7 @@ igt_main
const char *argv[] = { "runner",
"-n", "foo",
"--abort-on-monitored-error",
+ "--disk-usage-limit=4k",
"--test-list", "path-to-test-list",
"--ignore-missing",
"--dry-run",