From efe24f056fd7dd28d231b34c4b1fc5e6aaca4168 Mon Sep 17 00:00:00 2001
From: Kevin Buettner <kevinb@redhat.com>
Date: Tue, 11 Aug 2020 09:36:12 -0700
Subject: [PATCH] corefile.exp: XFAIL warning-free test when testing on docker

When testing on docker using the AUFS storage driver, loading a core
file will often print a number of warnings.  Here's an example (with
the pathname shortened somewhat):

warning: Can't open file /var/lib/docker/aufs/diff/d07..e21/lib/x86_64-linux-gnu/libc-2.27.so during file-backed mapping note processing

The "warning-free" test in gdb.base/corefile.exp will fail if any
warnings are printed, but this particular warning is unavoidable when
running in the docker environment.  Fortunately, the path mentions
both "docker" and "aufs", making it easy to XFAIL this case.

gdb/testsuite/ChangeLog:

	* gdb.base/corefile.exp (warning-free): XFAIL test when running
	on docker w/ AUFS storage driver.
---
 gdb/testsuite/ChangeLog             | 5 +++++
 gdb/testsuite/gdb.base/corefile.exp | 7 +++++++
 2 files changed, 12 insertions(+)

diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index e50b2352d9f..7e60a11c3dd 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2020-08-31  Kevin Buettner  <kevinb@redhat.com>
+
+	* gdb.base/corefile.exp (warning-free): XFAIL test when running
+	on docker w/ AUFS storage driver.
+
 2020-08-31  Kevin Buettner  <kevinb@redhat.com>
 
 	* gdb.base/corefile2.exp (renamed binfile): New tests.
diff --git a/gdb/testsuite/gdb.base/corefile.exp b/gdb/testsuite/gdb.base/corefile.exp
index 8abf62b51f1..b1022dd16f1 100644
--- a/gdb/testsuite/gdb.base/corefile.exp
+++ b/gdb/testsuite/gdb.base/corefile.exp
@@ -324,11 +324,18 @@ corefile_test_attach
 # Test warning-free core file load.  E.g., a Linux vDSO used to
 # trigger this warning:
 #     warning: Can't read pathname for load map: Input/output error.
+#
+# When testing in a docker container using the AUFS storage driver,
+# the kernel places host paths in the core file's NT_FILE note.  XFAIL
+# this case since these paths make no sense in the container.
 
 clean_restart ${testfile}
 
 set test "core-file warning-free"
 gdb_test_multiple "core-file $corefile" $test {
+    -re "warning: Can\'t open file.*\/docker\/aufs\/.*\r\n$gdb_prompt $" {
+	xfail $test
+    }
     -re "warning: .*\r\n.*\r\n$gdb_prompt $" {
 	fail $test
     }