aboutsummaryrefslogtreecommitdiff
path: root/support
diff options
context:
space:
mode:
authorStefan Liebler <stli@linux.ibm.com>2023-09-28 12:50:40 +0200
committerStefan Liebler <stli@linux.ibm.com>2023-10-16 09:51:00 +0200
commit4a829d70ab3bc9e69f3d186471d043e07e0d78d8 (patch)
tree42fa3a4d607df06f8c2021b7394694639cb37310 /support
parent69239bd7a216007692470aa9d5f3658024638742 (diff)
downloadglibc-4a829d70ab3bc9e69f3d186471d043e07e0d78d8.zip
glibc-4a829d70ab3bc9e69f3d186471d043e07e0d78d8.tar.gz
glibc-4a829d70ab3bc9e69f3d186471d043e07e0d78d8.tar.bz2
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 2fe64148a81f0d78050c302f34a6853d21f7cae4 "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>
Diffstat (limited to 'support')
-rw-r--r--support/support_test_main.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/support/support_test_main.c b/support/support_test_main.c
index c20c19e..f19fce5 100644
--- a/support/support_test_main.c
+++ b/support/support_test_main.c
@@ -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]);