Fix WAIT_FOR_DEBUGGER for container tests.

For container tests, gdb needs to set the sysroot to the corresponding
testroot.root directory.  The assumption was that PIDs < 3 means that
we are running within a container.

Starting with commit 2fe64148a8
"Allow for unpriviledged nested containers", the default is to use
the PID namespace of the parent.  Thus support_test_main.c does not
recognize our container anymore.

This patch now assumes that we are running inside a container if
test-container.c has set PID_OUTSIDE_CONTAINER and always uses this
PID independent of having a new PID namespace or not.
Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>
This commit is contained in:
Stefan Liebler 2023-09-28 12:50:40 +02:00
parent 69239bd7a2
commit 4a829d70ab

View File

@ -195,16 +195,14 @@ run_test_function (int argc, char **argv, const struct test_config *config)
char *gdb_script_name;
int inside_container = 0;
mypid = getpid();
if (mypid < 3)
const char *outside_pid = getenv("PID_OUTSIDE_CONTAINER");
if (outside_pid)
{
const char *outside_pid = getenv("PID_OUTSIDE_CONTAINER");
if (outside_pid)
{
mypid = atoi (outside_pid);
inside_container = 1;
}
mypid = atoi (outside_pid);
inside_container = 1;
}
else
mypid = getpid();
gdb_script_name = (char *) xmalloc (strlen (argv[0]) + strlen (".gdb") + 1);
sprintf (gdb_script_name, "%s.gdb", argv[0]);