aboutsummaryrefslogtreecommitdiffstats
path: root/executor
diff options
context:
space:
mode:
Diffstat (limited to 'executor')
-rw-r--r--executor/executor.cc4
-rw-r--r--executor/test.h4
2 files changed, 5 insertions, 3 deletions
diff --git a/executor/executor.cc b/executor/executor.cc
index 6d39b4230..2c73c20dd 100644
--- a/executor/executor.cc
+++ b/executor/executor.cc
@@ -447,8 +447,8 @@ int main(int argc, char** argv)
#endif
return 0;
}
- if (argc == 2 && strcmp(argv[1], "test") == 0)
- return run_tests();
+ if (argc >= 2 && strcmp(argv[1], "test") == 0)
+ return run_tests(argc == 3 ? argv[2] : nullptr);
if (argc < 2 || strcmp(argv[1], "exec") != 0) {
fprintf(stderr, "unknown command");
diff --git a/executor/test.h b/executor/test.h
index d2b0d4b94..bb1291f97 100644
--- a/executor/test.h
+++ b/executor/test.h
@@ -247,11 +247,13 @@ static struct {
{"test_coverage_filter", test_coverage_filter},
};
-static int run_tests()
+static int run_tests(const char* test)
{
int ret = 0;
for (size_t i = 0; i < ARRAY_SIZE(tests); i++) {
const char* name = tests[i].name;
+ if (test && strcmp(test, name))
+ continue;
printf("=== RUN %s\n", name);
int res = tests[i].f();
ret |= res > 0;