mirror of
https://github.com/lkl/linux.git
synced 2025-12-19 08:03:01 +09:00
Merge pull request #610 from ddiss/minor_test_changes
lkl: tests: minor fn parameter and kasan parsing changes
This commit is contained in:
@@ -68,6 +68,7 @@ core-y += arch/lkl/drivers/
|
|||||||
configh-y = printf "/* this header is autogenerated */\n"
|
configh-y = printf "/* this header is autogenerated */\n"
|
||||||
configh-$(CONFIG_64BIT) += && printf '\#define LKL_CONFIG_64BIT 1\n'
|
configh-$(CONFIG_64BIT) += && printf '\#define LKL_CONFIG_64BIT 1\n'
|
||||||
configh-$(CONFIG_CPU_BIG_ENDIAN) += && printf '\#define LKL_CONFIG_CPU_BIG_ENDIAN 1\n'
|
configh-$(CONFIG_CPU_BIG_ENDIAN) += && printf '\#define LKL_CONFIG_CPU_BIG_ENDIAN 1\n'
|
||||||
|
configh-$(CONFIG_KASAN_KUNIT_TEST) += && printf '\#define LKL_CONFIG_KASAN_KUNIT_TEST 1\n'
|
||||||
|
|
||||||
quiet_cmd_gen_configh = GEN $@
|
quiet_cmd_gen_configh = GEN $@
|
||||||
cmd_gen_configh = mkdir -p $(dir $@); ($(configh-y)) > $@
|
cmd_gen_configh = mkdir -p $(dir $@); ($(configh-y)) > $@
|
||||||
|
|||||||
@@ -111,14 +111,12 @@ define nt_host
|
|||||||
endef
|
endef
|
||||||
|
|
||||||
define kasan_test_enable
|
define kasan_test_enable
|
||||||
$(call set_autoconf_var,KASAN_TEST,y)
|
|
||||||
$(call set_kernel_config,KUNIT,y)
|
$(call set_kernel_config,KUNIT,y)
|
||||||
$(call set_kernel_config,BUILTIN_CMDLINE,\"kunit.filter_glob=\")
|
$(call set_kernel_config,BUILTIN_CMDLINE,\"kunit.filter_glob=\")
|
||||||
$(call set_kernel_config,KASAN_KUNIT_TEST,y)
|
$(call set_kernel_config,KASAN_KUNIT_TEST,y)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define kasan_enable
|
define kasan_enable
|
||||||
$(call set_autoconf_var,KASAN,y)
|
|
||||||
$(call set_kernel_config,KASAN,y)
|
$(call set_kernel_config,KASAN,y)
|
||||||
$(if $(filter yes,$(kasan_test)), $(call kasan_test_enable))
|
$(if $(filter yes,$(kasan_test)), $(call kasan_test_enable))
|
||||||
endef
|
endef
|
||||||
|
|||||||
@@ -9,3 +9,6 @@ liblkl-zpoline-y += hijack.o
|
|||||||
liblkl-zpoline-y += init.o
|
liblkl-zpoline-y += init.o
|
||||||
liblkl-zpoline-y += xlate.o
|
liblkl-zpoline-y += xlate.o
|
||||||
liblkl-zpoline-y += dbg_handler.o
|
liblkl-zpoline-y += dbg_handler.o
|
||||||
|
|
||||||
|
# -std=gnu23/c23 fails due to HOST_CALL (*host_##name)()
|
||||||
|
CFLAGS_hijack.o += -std=gnu11
|
||||||
|
|||||||
@@ -555,7 +555,7 @@ static int lkl_test_join(void)
|
|||||||
|
|
||||||
static const char *boot_log;
|
static const char *boot_log;
|
||||||
|
|
||||||
#ifdef LKL_HOST_CONFIG_KASAN_TEST
|
#ifdef LKL_CONFIG_KASAN_KUNIT_TEST
|
||||||
|
|
||||||
#define KASAN_CMD_LINE "kunit.filter_glob=kasan* "
|
#define KASAN_CMD_LINE "kunit.filter_glob=kasan* "
|
||||||
|
|
||||||
@@ -563,22 +563,26 @@ static int lkl_test_kasan(void)
|
|||||||
{
|
{
|
||||||
char *log = strdup(boot_log);
|
char *log = strdup(boot_log);
|
||||||
char *line = NULL;
|
char *line = NULL;
|
||||||
char c, d;
|
int p, f, s, t;
|
||||||
|
int num_lines, result = TEST_FAILURE;
|
||||||
|
|
||||||
line = strtok(log, "\n");
|
line = strtok(log, "\n");
|
||||||
while (line) {
|
for (num_lines = 0; line; num_lines++) {
|
||||||
if (sscanf(line, "[ %*f] ok %*d kasa%c%c", &c, &d) == 1 &&
|
if (sscanf(line,
|
||||||
c == 'n') {
|
"[ %*f] # kasan: pass:%d fail:%d skip:%d total:%d",
|
||||||
|
&p, &f, &s, &t) == 4) {
|
||||||
lkl_test_logf("%s", line);
|
lkl_test_logf("%s", line);
|
||||||
return TEST_SUCCESS;
|
result = (f == 0 ? TEST_SUCCESS : TEST_FAILURE);
|
||||||
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
line = strtok(NULL, "\n");
|
line = strtok(NULL, "\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
lkl_test_logf("no kasan test output in %d log lines\n", num_lines);
|
||||||
|
out:
|
||||||
free(log);
|
free(log);
|
||||||
|
return result;
|
||||||
return TEST_FAILURE;
|
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
#define KASAN_CMD_LINE
|
#define KASAN_CMD_LINE
|
||||||
@@ -707,7 +711,7 @@ struct lkl_test tests[] = {
|
|||||||
LKL_TEST(semaphore),
|
LKL_TEST(semaphore),
|
||||||
LKL_TEST(join),
|
LKL_TEST(join),
|
||||||
LKL_TEST(start_kernel),
|
LKL_TEST(start_kernel),
|
||||||
#ifdef LKL_HOST_CONFIG_KASAN_TEST
|
#ifdef LKL_CONFIG_KASAN_KUNIT_TEST
|
||||||
LKL_TEST(kasan),
|
LKL_TEST(kasan),
|
||||||
#endif
|
#endif
|
||||||
LKL_TEST(getpid),
|
LKL_TEST(getpid),
|
||||||
|
|||||||
@@ -90,7 +90,7 @@ int lkl_test_run(const struct lkl_test *tests, int nr, const char *fmt, ...)
|
|||||||
|
|
||||||
start = clock();
|
start = clock();
|
||||||
|
|
||||||
ret = t->fn(t->arg1, t->arg2, t->arg3);
|
ret = t->fn();
|
||||||
|
|
||||||
stop = clock();
|
stop = clock();
|
||||||
|
|
||||||
|
|||||||
@@ -9,16 +9,14 @@
|
|||||||
|
|
||||||
struct lkl_test {
|
struct lkl_test {
|
||||||
const char *name;
|
const char *name;
|
||||||
int (*fn)();
|
int (*fn)(void);
|
||||||
void *arg1, *arg2, *arg3;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Simple wrapper to initialize a test entry.
|
* Simple wrapper to initialize a test entry.
|
||||||
* @name - test name, it assume test function is named test_@name
|
* @name - test name; assume existing test function named lkl_test_@name
|
||||||
* @vargs - arguments to be passed to the function
|
|
||||||
*/
|
*/
|
||||||
#define LKL_TEST(name, ...) { #name, lkl_test_##name, __VA_ARGS__ }
|
#define LKL_TEST(name) { #name, lkl_test_##name }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* lkl_test_run - run a test suite
|
* lkl_test_run - run a test suite
|
||||||
|
|||||||
Reference in New Issue
Block a user