mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
selftests/bpf: Optionally open a dedicated namespace to run test in it
Some tests are serialized to prevent interference with others. Open a dedicated network namespace when a test name starts with 'ns_' to allow more test parallelization. Use the test name as namespace name to avoid conflict between namespaces. Signed-off-by: Bastien Curutchet (eBPF Foundation) <bastien.curutchet@bootlin.com> Link: https://lore.kernel.org/r/20250219-b4-tc_links-v2-2-14504db136b7@bootlin.com Signed-off-by: Alexei Starovoitov <ast@kernel.org>
This commit is contained in:
committed by
Alexei Starovoitov
parent
4a06c5251a
commit
c047e0e0e4
@@ -1365,10 +1365,19 @@ static int recv_message(int sock, struct msg *msg)
|
||||
return ret;
|
||||
}
|
||||
|
||||
static bool ns_is_needed(const char *test_name)
|
||||
{
|
||||
if (strlen(test_name) < 3)
|
||||
return false;
|
||||
|
||||
return !strncmp(test_name, "ns_", 3);
|
||||
}
|
||||
|
||||
static void run_one_test(int test_num)
|
||||
{
|
||||
struct prog_test_def *test = &prog_test_defs[test_num];
|
||||
struct test_state *state = &test_states[test_num];
|
||||
struct netns_obj *ns = NULL;
|
||||
|
||||
env.test = test;
|
||||
env.test_state = state;
|
||||
@@ -1376,10 +1385,13 @@ static void run_one_test(int test_num)
|
||||
stdio_hijack(&state->log_buf, &state->log_cnt);
|
||||
|
||||
watchdog_start();
|
||||
if (ns_is_needed(test->test_name))
|
||||
ns = netns_new(test->test_name, true);
|
||||
if (test->run_test)
|
||||
test->run_test();
|
||||
else if (test->run_serial_test)
|
||||
test->run_serial_test();
|
||||
netns_free(ns);
|
||||
watchdog_stop();
|
||||
|
||||
/* ensure last sub-test is finalized properly */
|
||||
|
||||
Reference in New Issue
Block a user