[testsuite] Fix several false FAILs.

This commit is contained in:
Jan Kratochvil 2016-04-08 17:32:35 +02:00
parent bd0820fa32
commit dd7d988932
5 changed files with 445 additions and 4 deletions

View File

@ -35,9 +35,9 @@ Index: gdb-6.8.50.20090909/gdb/testsuite/gdb.dwarf2/dw2-loclist-prelinked.exp
+
+set testfile "dw2-loclist-prelinked"
+set srcfuncfile ${testfile}-func.S
+set binsharedfuncfile ${objdir}/${subdir}/${testfile}.so
+set binsharedfuncfile [standard_output_file ${testfile}.so]
+set srcmainfile ${testfile}-main.c
+set binfile ${objdir}/${subdir}/${testfile}
+set binfile [standard_output_file ${testfile}]
+
+remote_exec build "rm -f ${binfile}"
+

View File

@ -0,0 +1,68 @@
http://sourceware.org/ml/gdb-patches/2016-04/msg00181.html
Subject: [testsuite patch] Fix 7.11 regression: gdb.dwarf2/dw2-undefined-ret-addr.exp [now with the patch]
--oyUTqETQ0mS9luUI
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Hi,
a038fa3e14a477d4d72a26c2e139fa47d2774be2 is the first bad commit
commit a038fa3e14a477d4d72a26c2e139fa47d2774be2
Author: Markus Metzger <markus.t.metzger@intel.com>
stack: check frame_unwind_caller_id
[PATCH v3 2/3] stack: check frame_unwind_caller_id
https://sourceware.org/ml/gdb-patches/2016-02/msg00363.html
Message-Id: <1455207283-12660-2-git-send-email-markus.t.metzger@intel.com>
(gdb) PASS: gdb.dwarf2/dw2-undefined-ret-addr.exp: up refuses to go up
info frame
Stack level 0, frame at 0x0:
- rip = 0x40059a in stop_frame (dw2-undefined-ret-addr.c:22); saved rip = <not saved>
+ rip = 0x40059a in stop_frame (dw2-undefined-ret-addr.c:22); saved rip = <unavailable>
Outermost frame: outermost
source language c.
Arglist at 0x7fffffffd610, args:
Locals at 0x7fffffffd610, Previous frame's sp is 0x7fffffffd620
Saved registers:
rbp at 0x7fffffffd610
-(gdb) PASS: gdb.dwarf2/dw2-undefined-ret-addr.exp: info frame
+(gdb) FAIL: gdb.dwarf2/dw2-undefined-ret-addr.exp: info frame
It happens on normal native Fedora 23 x86_64.
I am not completely sure about the reasons but it looks to me GDB behavior has
just changed.
OK for check-in?
Thanks,
Jan
--oyUTqETQ0mS9luUI
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline; filename=1
gdb/testsuite/ChangeLog
2016-04-08 Jan Kratochvil <jan.kratochvil@redhat.com>
* gdb.dwarf2/dw2-undefined-ret-addr.exp: Expect <unavailable>.
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-undefined-ret-addr.exp b/gdb/testsuite/gdb.dwarf2/dw2-undefined-ret-addr.exp
index c666584..e43054b 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-undefined-ret-addr.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-undefined-ret-addr.exp
@@ -48,7 +48,7 @@ gdb_test "up" \
# doesn't cause an error, and shows "<not saved>".
gdb_test "info frame" [multi_line \
"Stack level 0, frame at $hex\:" \
- " rip = $hex in stop_frame \\(dw2-undefined-ret-addr\\.c:22\\); saved rip = <not saved>" \
+ " rip = $hex in stop_frame \\(dw2-undefined-ret-addr\\.c:22\\); saved rip = <unavailable>" \
" Outermost frame: outermost" \
" source language c\\." \
" Arglist at $hex, args\: " \
--oyUTqETQ0mS9luUI--

View File

@ -0,0 +1,33 @@
diff --git b/gdb/testsuite/gdb.gdb/selftest.exp a/gdb/testsuite/gdb.gdb/selftest.exp
index 7e6a4e1..969797a 100644
--- b/gdb/testsuite/gdb.gdb/selftest.exp
+++ a/gdb/testsuite/gdb.gdb/selftest.exp
@@ -451,25 +451,9 @@ proc test_with_self { executable } {
}
set description "send SIGINT signal to child process"
- gdb_test_multiple "signal SIGINT" "$description" {
- -re "^signal SIGINT\r\nContinuing with signal SIGINT.\r\nQuit\r\n" {
- pass "$description"
- }
- }
-
- set description "send ^C to child process again"
- send_gdb "\003"
- gdb_expect {
- -re "(Thread .*|Program) received signal SIGINT.*$gdb_prompt $" {
- pass "$description"
- }
- -re ".*$gdb_prompt $" {
- fail "$description"
- }
- timeout {
- fail "$description (timeout)"
- }
- }
+ gdb_test "signal SIGINT" \
+ "Continuing with signal SIGINT.*" \
+ "$description"
# Switch back to the GDB thread if Guile support is linked in.
# "signal SIGINT" could also switch the current thread.

View File

@ -2055,3 +2055,334 @@ Date: Thu Mar 31 19:28:47 2016 +0100
- one_jit_test 1 "${hex} jit_function_0000"
+ one_jit_test 1 "${hex} jit_function_0000" 0
}
commit 2d35e871274a48331c4d6c7b3e4fbee42b901f33
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Thu Apr 7 22:18:49 2016 +0200
testsuite: Fix false FAILs with .bashrc GDBHISTFILE=...
$ GDBHISTFILE=/tmp/gdbhistfile runtest gdb.base/gdbhistsize-history.exp gdb.base/gdbinit-history.exp
Running ./gdb.base/gdbinit-history.exp ...
FAIL: gdb.base/gdbinit-history.exp: home=gdbinit-history/unlimited gdbhistsize=1000: show commands
FAIL: gdb.base/gdbinit-history.exp: home=gdbinit-history/unlimited gdbhistsize=foo: show commands
Running ./gdb.base/gdbhistsize-history.exp ...
FAIL: gdb.base/gdbhistsize-history.exp: histsize=: show commands
FAIL: gdb.base/gdbhistsize-history.exp: histsize=20: show commands
FAIL: gdb.base/gdbhistsize-history.exp: histsize= 20 : show commands
FAIL: gdb.base/gdbhistsize-history.exp: histsize=-5: show commands
FAIL: gdb.base/gdbhistsize-history.exp: histsize=not_an_integer: show commands
FAIL: gdb.base/gdbhistsize-history.exp: histsize=10zab: show commands
FAIL: gdb.base/gdbhistsize-history.exp: histsize=-5ab: show commands
FAIL: gdb.base/gdbhistsize-history.exp: histsize=99999999999999999999999999999999999: show commands
FAIL: gdb.base/gdbhistsize-history.exp: histsize=50: show commands
This happens for my setup due to my:
$ grep GDB ~/.bashrc
export GDBHISTFILE="$HOME/.gdb_history"
gdb/testsuite/ChangeLog
2016-04-07 Jan Kratochvil <jan.kratochvil@redhat.com>
* gdb.base/gdbhistsize-history.exp: Save and unset GDBHISTFILE and
GDBHISTSIZE prior to the tests.
* gdb.base/gdbinit-history.exp: Likewise.
### a/gdb/testsuite/ChangeLog
### b/gdb/testsuite/ChangeLog
## -1,4 +1,10 @@
-2015-04-07 Pedro Alves <palves@redhat.com>
+2016-04-07 Jan Kratochvil <jan.kratochvil@redhat.com>
+
+ * gdb.base/gdbhistsize-history.exp: Save and unset GDBHISTFILE and
+ GDBHISTSIZE prior to the tests.
+ * gdb.base/gdbinit-history.exp: Likewise.
+
+2016-04-07 Pedro Alves <palves@redhat.com>
* gdb.compile/compile.exp: Use gdb_compile with "shlib=" option
instead of build_executable. Use gdb_load_shlibs.
--- a/gdb/testsuite/gdb.base/gdbhistsize-history.exp
+++ b/gdb/testsuite/gdb.base/gdbhistsize-history.exp
@@ -32,7 +32,13 @@ if { [is_remote host] } {
proc test_histsize_history_setting { histsize size { env_var "GDBHISTSIZE" } } {
global env
- save_vars { env($env_var) } {
+ save_vars { env(GDBHISTFILE) env(GDBHISTSIZE) env($env_var) } {
+ # These environment variables take precedence over whatever
+ # history size is set in .gdbinit. Make sure the former is not
+ # set.
+ unset -nocomplain env(GDBHISTFILE)
+ unset -nocomplain env(GDBHISTSIZE)
+
set env($env_var) $histsize
with_test_prefix "histsize=$histsize" {
--- a/gdb/testsuite/gdb.base/gdbinit-history.exp
+++ b/gdb/testsuite/gdb.base/gdbinit-history.exp
@@ -36,12 +36,13 @@ proc test_gdbinit_history_setting { home size { gdbhistsize_val "-" } } {
global srcdir
global subdir
- save_vars { INTERNAL_GDBFLAGS env(GDBHISTSIZE) env(HOME) } {
+ save_vars { INTERNAL_GDBFLAGS env(GDBHISTFILE) env(GDBHISTSIZE) env(HOME) } {
set env(HOME) "$srcdir/$subdir/$home"
- # The GDBHISTSIZE environment variable takes precedence over whatever
+ # These environment variables take precedence over whatever
# history size is set in .gdbinit. Make sure the former is not
# set.
+ unset -nocomplain env(GDBHISTFILE)
unset -nocomplain env(GDBHISTSIZE)
if { $gdbhistsize_val != "-" } {
@@ -77,10 +78,11 @@ proc test_no_truncation_of_unlimited_history_file { } {
global env
global INTERNAL_GDBFLAGS
- save_vars { INTERNAL_GDBFLAGS env(GDBHISTSIZE) } {
- # The GDBHISTSIZE environment variable takes precedence over whatever
+ save_vars { INTERNAL_GDBFLAGS env(GDBHISTFILE) env(GDBHISTSIZE) } {
+ # These environment variables take precedence over whatever
# history size is set in .gdbinit. Make sure the former is not
# set.
+ unset -nocomplain env(GDBHISTFILE)
unset -nocomplain env(GDBHISTSIZE)
set temp_gdbinit [standard_output_file "gdbinit-history.gdbinit"]
commit 065005336492337c92d06e87544646635a5b9566
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Fri Apr 8 15:38:53 2016 +0200
testsuite: Fix for gcc-4.8: gdb.base/jit.exp gdb.base/jit-so.exp
on CentOS-7.2 I get
Running /home/jkratoch/redhat/gdb-test-reg/gdb/testsuite/gdb.base/jit.exp ...
FAIL: gdb.base/jit.exp: one_jit_test-1: continue to breakpoint: break here 2 (the program exited)
FAIL: gdb.base/jit.exp: one_jit_test-2: continue to breakpoint: break here 2 (the program exited)
FAIL: gdb.base/jit.exp: attach: one_jit_test-2: continue to breakpoint: break here 2 (the program exited)
FAIL: gdb.base/jit.exp: attach: one_jit_test-2: break here 2: set var wait_for_gdb = 1
FAIL: gdb.base/jit.exp: attach: one_jit_test-2: break here 2: detach (the program is no longer running)
FAIL: gdb.base/jit.exp: attach: one_jit_test-2: break here 2: attach
FAIL: gdb.base/jit.exp: attach: one_jit_test-2: break here 2: set var wait_for_gdb = 0
FAIL: gdb.base/jit.exp: PIE: one_jit_test-1: continue to breakpoint: break here 2 (the program exited)
Running /home/jkratoch/redhat/gdb-test-reg/gdb/testsuite/gdb.base/jit-so.exp ...
FAIL: gdb.base/jit-so.exp: one_jit_test-1: continue to breakpoint: break here 2 (the program exited)
FAIL: gdb.base/jit-so.exp: one_jit_test-2: continue to breakpoint: break here 2 (the program exited)
since:
85af34ee0211eedf8d30a5c44dfc59dddf8b512a is the first bad commit
commit 85af34ee0211eedf8d30a5c44dfc59dddf8b512a
Author: Pedro Alves <palves@redhat.com>
Date: Thu Mar 31 19:28:47 2016 +0100
Add regression test for PR gdb/19858 (JIT code registration on attach)
The compiled code's .debug_line is wrong (for the simplistic approach of GDB
to put a breakpoint on the first address belonging to that source line) and so
GDB misses the breakpoint at the last line:
WAIT_FOR_GDB; return 0; /* gdb break here 2 */
Most of the patch is just about reindentation, no changes there.
gdb/testsuite/ChangeLog
2016-04-08 Jan Kratochvil <jan.kratochvil@redhat.com>
Fix compatibility with gcc-4.8.5-4.el7.x86_64.
* gdb.base/jit-main.c: Use exit after usage.
### a/gdb/testsuite/ChangeLog
### b/gdb/testsuite/ChangeLog
## -1,3 +1,8 @@
+2016-04-08 Jan Kratochvil <jan.kratochvil@redhat.com>
+
+ Fix compatibility with gcc-4.8.5-4.el7.x86_64.
+ * gdb.base/jit-main.c: Use exit after usage.
+
2016-04-07 Jan Kratochvil <jan.kratochvil@redhat.com>
* gdb.base/gdbhistsize-history.exp: Save and unset GDBHISTFILE and
--- a/gdb/testsuite/gdb.base/jit-main.c
+++ b/gdb/testsuite/gdb.base/jit-main.c
@@ -138,7 +138,8 @@ MAIN (int argc, char *argv[])
{
/* These variables are here so they can easily be set from jit.exp. */
const char *libname = NULL;
- int count = 0;
+ int count = 0, i, fd;
+ struct stat st;
alarm (300);
@@ -147,90 +148,89 @@ MAIN (int argc, char *argv[])
count = count; /* gdb break here 0 */
if (argc < 2)
- usage (argv[0]);
- else
{
- int i, fd;
- struct stat st;
+ usage (argv[0]);
+ exit (1);
+ }
- if (libname == NULL)
- /* Only set if not already set from GDB. */
- libname = argv[1];
+ if (libname == NULL)
+ /* Only set if not already set from GDB. */
+ libname = argv[1];
- if (argc > 2 && count == 0)
- /* Only set if not already set from GDB. */
- count = atoi (argv[2]);
+ if (argc > 2 && count == 0)
+ /* Only set if not already set from GDB. */
+ count = atoi (argv[2]);
- printf ("%s:%d: libname = %s, count = %d\n", __FILE__, __LINE__,
- libname, count);
+ printf ("%s:%d: libname = %s, count = %d\n", __FILE__, __LINE__,
+ libname, count);
- if ((fd = open (libname, O_RDONLY)) == -1)
- {
- fprintf (stderr, "open (\"%s\", O_RDONLY): %s\n", libname,
- strerror (errno));
- exit (1);
- }
+ if ((fd = open (libname, O_RDONLY)) == -1)
+ {
+ fprintf (stderr, "open (\"%s\", O_RDONLY): %s\n", libname,
+ strerror (errno));
+ exit (1);
+ }
- if (fstat (fd, &st) != 0)
- {
- fprintf (stderr, "fstat (\"%d\"): %s\n", fd, strerror (errno));
- exit (1);
- }
+ if (fstat (fd, &st) != 0)
+ {
+ fprintf (stderr, "fstat (\"%d\"): %s\n", fd, strerror (errno));
+ exit (1);
+ }
- for (i = 0; i < count; ++i)
- {
- const void *const addr = mmap (0, st.st_size, PROT_READ|PROT_WRITE,
- MAP_PRIVATE, fd, 0);
- struct jit_code_entry *const entry = calloc (1, sizeof (*entry));
-
- if (addr == MAP_FAILED)
- {
- fprintf (stderr, "mmap: %s\n", strerror (errno));
- exit (1);
- }
-
- update_locations (addr, i);
-
- /* Link entry at the end of the list. */
- entry->symfile_addr = (const char *)addr;
- entry->symfile_size = st.st_size;
- entry->prev_entry = __jit_debug_descriptor.relevant_entry;
- __jit_debug_descriptor.relevant_entry = entry;
-
- if (entry->prev_entry != NULL)
- entry->prev_entry->next_entry = entry;
- else
- __jit_debug_descriptor.first_entry = entry;
-
- /* Notify GDB. */
- __jit_debug_descriptor.action_flag = JIT_REGISTER_FN;
- __jit_debug_register_code ();
- }
+ for (i = 0; i < count; ++i)
+ {
+ const void *const addr = mmap (0, st.st_size, PROT_READ|PROT_WRITE,
+ MAP_PRIVATE, fd, 0);
+ struct jit_code_entry *const entry = calloc (1, sizeof (*entry));
+
+ if (addr == MAP_FAILED)
+ {
+ fprintf (stderr, "mmap: %s\n", strerror (errno));
+ exit (1);
+ }
+
+ update_locations (addr, i);
+
+ /* Link entry at the end of the list. */
+ entry->symfile_addr = (const char *)addr;
+ entry->symfile_size = st.st_size;
+ entry->prev_entry = __jit_debug_descriptor.relevant_entry;
+ __jit_debug_descriptor.relevant_entry = entry;
+
+ if (entry->prev_entry != NULL)
+ entry->prev_entry->next_entry = entry;
+ else
+ __jit_debug_descriptor.first_entry = entry;
+
+ /* Notify GDB. */
+ __jit_debug_descriptor.action_flag = JIT_REGISTER_FN;
+ __jit_debug_register_code ();
+ }
- WAIT_FOR_GDB; i = 0; /* gdb break here 1 */
+ WAIT_FOR_GDB; i = 0; /* gdb break here 1 */
- /* Now unregister them all in reverse order. */
- while (__jit_debug_descriptor.relevant_entry != NULL)
- {
- struct jit_code_entry *const entry =
- __jit_debug_descriptor.relevant_entry;
- struct jit_code_entry *const prev_entry = entry->prev_entry;
-
- if (prev_entry != NULL)
- {
- prev_entry->next_entry = NULL;
- entry->prev_entry = NULL;
- }
- else
- __jit_debug_descriptor.first_entry = NULL;
-
- /* Notify GDB. */
- __jit_debug_descriptor.action_flag = JIT_UNREGISTER_FN;
- __jit_debug_register_code ();
-
- __jit_debug_descriptor.relevant_entry = prev_entry;
- free (entry);
- }
+ /* Now unregister them all in reverse order. */
+ while (__jit_debug_descriptor.relevant_entry != NULL)
+ {
+ struct jit_code_entry *const entry =
+ __jit_debug_descriptor.relevant_entry;
+ struct jit_code_entry *const prev_entry = entry->prev_entry;
+
+ if (prev_entry != NULL)
+ {
+ prev_entry->next_entry = NULL;
+ entry->prev_entry = NULL;
+ }
+ else
+ __jit_debug_descriptor.first_entry = NULL;
+
+ /* Notify GDB. */
+ __jit_debug_descriptor.action_flag = JIT_UNREGISTER_FN;
+ __jit_debug_register_code ();
+
+ __jit_debug_descriptor.relevant_entry = prev_entry;
+ free (entry);
}
+
WAIT_FOR_GDB; return 0; /* gdb break here 2 */
}

View File

@ -27,7 +27,7 @@ Version: 7.11
# The release always contains a leading reserved number, start it at 1.
# `upstream' is not a part of `name' to stay fully rpm dependencies compatible for the testing.
Release: 66%{?dist}
Release: 67%{?dist}
License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ and GPLv2+ with exceptions and GPL+ and LGPLv2+ and BSD and Public Domain and GFDL
Group: Development/Debuggers
@ -549,6 +549,7 @@ Patch1073: gdb-opcodes-clflushopt-test.patch
# [testsuite] Fix false selftest.exp FAIL from system readline-6.3+ (Patrick Palka).
Patch1075: gdb-testsuite-readline63-sigint.patch
Patch1119: gdb-testsuite-readline63-sigint-revert.patch
# [aarch64] Fix hardware watchpoints (RH BZ 1261564).
#=fedoratest
@ -560,6 +561,9 @@ Patch1117: gdb-rhbz1318049-gdb-p-container-internal-error.patch
# Add messages suggesting more recent RHEL gdbserver (RH BZ 1321114).
Patch1118: gdb-container-rh-pkg.patch
# [testsuite] Fix 7.11 regression: gdb.dwarf2/dw2-undefined-ret-addr.exp
Patch1120: gdb-testsuite-dw2-undefined-ret-addr.patch
%if 0%{!?rhel:1} || 0%{?rhel} > 6
# RL_STATE_FEDORA_GDB would not be found for:
# Patch642: gdb-readline62-ask-more-rh.patch
@ -864,12 +868,14 @@ find -name "*.info*"|xargs rm -f
%patch642 -p1
%patch337 -p1
%patch331 -p1
%patch1075 -p1
%patch1113 -p1
%patch1117 -p1
%patch1118 -p1
%patch1120 -p1
%patch1075 -p1
%if 0%{?rhel:1} && 0%{?rhel} <= 7
%patch1119 -p1
%patch1044 -p1
%endif
@ -1385,6 +1391,9 @@ then
fi
%changelog
* Fri Apr 8 2016 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.11-67.fc24
- [testsuite] Fix several false FAILs.
* Wed Apr 6 2016 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.11-66.fc24
- Import upstream 7.11 branch stable fixes.