From 1985d8cb7048bcfce60b59cfe219d3b09bda6373 Mon Sep 17 00:00:00 2001 From: Tom de Vries Date: Fri, 24 Mar 2023 09:18:07 +0100 Subject: [PATCH] [gdb/testsuite] Fix gdb.cp/m-static.exp regression on Ubuntu 20.04 In commit 722c4596034 ("[gdb/testsuite] Fix gdb.cp/*.exp for remote host"), I needed to change ".*/" into "(.*/)?" in: ... gdb_test "info variable everywhere" \ "File .*/m-static\[.\]h.*const int gnu_obj_4::everywhere;" ... However, due to the fact that I got this output: ... (gdb) info variable everywhere^M All variables matching regular expression "everywhere":^M ^M File /data/vries/gdb/src/gdb/testsuite/gdb.cp/m-static.h:^M 8: const int gnu_obj_4::everywhere;^M ^M File /data/vries/gdb/src/gdb/testsuite/gdb.cp/m-static1.cc:^M 8: const int gnu_obj_4::everywhere;^M ... I decided to make the matching somewhat stricter, to make sure that the two matched lines were subsequent. The commit turned out to be more strict than intended, and caused a regression on Ubuntu 20.04, where the output was instead: ... (gdb) info variable everywhere^M All variables matching regular expression "everywhere":^M ^M File /data/vries/gdb/src/gdb/testsuite/gdb.cp/m-static.h:^M 8: const int gnu_obj_4::everywhere;^M ... At that point I realized I'm looking at a bug (filed as PR symtab/30265), which manifests on openSUSE Leap 15.4 for native and readnow, and on Ubuntu 20.04 for readnow, but not for native. Before my commit, the test-case passed whether the bug manifested or not. After my commit, the test-case only passed when the bug manifested. Fix the test-case regression by reverting to the situation before the commit: pass whether the bug manifests or not. We could add an xfail for the PR, but I'm expecting a fix soon, so that doesn't look worth the effort. Tested on x86_64-linux, both on openSUSE Leap 15.4 and Ubuntu 20.04, both with native and readnow. Reported-By: Simon Marchi --- gdb/testsuite/gdb.cp/m-static.exp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/gdb/testsuite/gdb.cp/m-static.exp b/gdb/testsuite/gdb.cp/m-static.exp index 419d772e28e..37d3289a751 100644 --- a/gdb/testsuite/gdb.cp/m-static.exp +++ b/gdb/testsuite/gdb.cp/m-static.exp @@ -186,8 +186,7 @@ if { $non_dwarf } { setup_xfail *-*-* } gdb_test "info variable everywhere" \ [multi_line \ "File (.*/)?m-static\[.\]h:" \ - "$decimal:\tconst int gnu_obj_4::everywhere;" \ - ".*"] + "$decimal:\tconst int gnu_obj_4::everywhere;.*"] # Perhaps at some point test4 should also include a test for a static # const int that was initialized in the header file. But I'm not sure -- 2.30.2