[RHEL-6] Regression test for RH BZ 947564.
This commit is contained in:
		
							parent
							
								
									cf0b61abc0
								
							
						
					
					
						commit
						9dd2140456
					
				
							
								
								
									
										138
									
								
								gdb-rhbz947564-findvar-assertion-frame-failed-testcase.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										138
									
								
								gdb-rhbz947564-findvar-assertion-frame-failed-testcase.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,138 @@ | |||||||
|  | Index: gdb-7.5.91.20130407/gdb/testsuite/gdb.threads/tls-rhbz947564.cc
 | ||||||
|  | ===================================================================
 | ||||||
|  | --- /dev/null
 | ||||||
|  | +++ gdb-7.5.91.20130407/gdb/testsuite/gdb.threads/tls-rhbz947564.cc
 | ||||||
|  | @@ -0,0 +1,53 @@
 | ||||||
|  | +#include <iostream>
 | ||||||
|  | +#include <pthread.h>
 | ||||||
|  | +
 | ||||||
|  | +class x
 | ||||||
|  | +  {
 | ||||||
|  | +  public:
 | ||||||
|  | +    int n;
 | ||||||
|  | +
 | ||||||
|  | +    x() : n(0) {}
 | ||||||
|  | +  };
 | ||||||
|  | +
 | ||||||
|  | +class y
 | ||||||
|  | +  {
 | ||||||
|  | +  public:
 | ||||||
|  | +    int v;
 | ||||||
|  | +
 | ||||||
|  | +    y() : v(0) {}
 | ||||||
|  | +    static __thread x *xp;
 | ||||||
|  | +  };
 | ||||||
|  | +
 | ||||||
|  | +__thread x *y::xp;
 | ||||||
|  | +
 | ||||||
|  | +static void
 | ||||||
|  | +foo (y *yp)
 | ||||||
|  | +{
 | ||||||
|  | +  yp->v = 1;   /* foo_marker */
 | ||||||
|  | +}
 | ||||||
|  | +
 | ||||||
|  | +static void *
 | ||||||
|  | +bar (void *unused)
 | ||||||
|  | +{
 | ||||||
|  | +  x xinst;
 | ||||||
|  | +  y::xp= &xinst;
 | ||||||
|  | +
 | ||||||
|  | +  y yy;
 | ||||||
|  | +  foo(&yy);
 | ||||||
|  | +
 | ||||||
|  | +  return NULL;
 | ||||||
|  | +}
 | ||||||
|  | +
 | ||||||
|  | +int
 | ||||||
|  | +main(int argc, char *argv[])
 | ||||||
|  | +{
 | ||||||
|  | +  pthread_t t[2];
 | ||||||
|  | +
 | ||||||
|  | +  pthread_create (&t[0], NULL, bar, NULL);
 | ||||||
|  | +  pthread_create (&t[1], NULL, bar, NULL);
 | ||||||
|  | +
 | ||||||
|  | +  pthread_join (t[0], NULL);
 | ||||||
|  | +  pthread_join (t[1], NULL);
 | ||||||
|  | +
 | ||||||
|  | +  return 0;
 | ||||||
|  | +}
 | ||||||
|  | Index: gdb-7.5.91.20130407/gdb/testsuite/gdb.threads/tls-rhbz947564.exp
 | ||||||
|  | ===================================================================
 | ||||||
|  | --- /dev/null
 | ||||||
|  | +++ gdb-7.5.91.20130407/gdb/testsuite/gdb.threads/tls-rhbz947564.exp
 | ||||||
|  | @@ -0,0 +1,75 @@
 | ||||||
|  | +# Copyright (C) 2013 Free Software Foundation, Inc.
 | ||||||
|  | +
 | ||||||
|  | +# This program is free software; you can redistribute it and/or modify
 | ||||||
|  | +# it under the terms of the GNU General Public License as published by
 | ||||||
|  | +# the Free Software Foundation; either version 3 of the License, or
 | ||||||
|  | +# (at your option) any later version.
 | ||||||
|  | +#
 | ||||||
|  | +# This program is distributed in the hope that it will be useful,
 | ||||||
|  | +# but WITHOUT ANY WARRANTY; without even the implied warranty of
 | ||||||
|  | +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | ||||||
|  | +# GNU General Public License for more details.
 | ||||||
|  | +#
 | ||||||
|  | +# You should have received a copy of the GNU General Public License
 | ||||||
|  | +# along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 | ||||||
|  | +
 | ||||||
|  | +set testfile tls-rhbz947564
 | ||||||
|  | +set srcfile ${testfile}.cc
 | ||||||
|  | +set binfile ${objdir}/${subdir}/${testfile}
 | ||||||
|  | +
 | ||||||
|  | +if [istarget "*-*-linux"] then {
 | ||||||
|  | +    set target_cflags "-D_MIT_POSIX_THREADS"
 | ||||||
|  | +} else {
 | ||||||
|  | +    set target_cflags ""
 | ||||||
|  | +}
 | ||||||
|  | +
 | ||||||
|  | +if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable [list c++ debug]] != "" } {
 | ||||||
|  | +    return -1
 | ||||||
|  | +}
 | ||||||
|  | +
 | ||||||
|  | +gdb_exit
 | ||||||
|  | +gdb_start
 | ||||||
|  | +gdb_reinitialize_dir $srcdir/$subdir
 | ||||||
|  | +
 | ||||||
|  | +gdb_load ${binfile}
 | ||||||
|  | +
 | ||||||
|  | +if { ![runto_main] } {
 | ||||||
|  | +    fail "Can't run to function main"
 | ||||||
|  | +    return 0
 | ||||||
|  | +}
 | ||||||
|  | +
 | ||||||
|  | +gdb_breakpoint "foo"
 | ||||||
|  | +gdb_continue_to_breakpoint "foo" ".* foo_marker .*"
 | ||||||
|  | +
 | ||||||
|  | +proc get_xp_val {try} {
 | ||||||
|  | +    global expect_out
 | ||||||
|  | +    global gdb_prompt
 | ||||||
|  | +    global hex
 | ||||||
|  | +
 | ||||||
|  | +    set xp_val ""
 | ||||||
|  | +    gdb_test_multiple "print *yp" "print yp value" {
 | ||||||
|  | +	-re { = \{v = 0, static xp = (0x[0-9a-f]+)\}.* } {
 | ||||||
|  | +	    pass "print $try value of *yp"
 | ||||||
|  | +	    set xp_val $expect_out(1,string)
 | ||||||
|  | +	}
 | ||||||
|  | +	-re "$gdb_prompt $" {
 | ||||||
|  | +	    fail "print $try value of *yp"
 | ||||||
|  | +	}
 | ||||||
|  | +	timeout {
 | ||||||
|  | +	    fail "print $try value of *yp (timeout)"
 | ||||||
|  | +	}
 | ||||||
|  | +    }
 | ||||||
|  | +    return $xp_val
 | ||||||
|  | +}
 | ||||||
|  | +
 | ||||||
|  | +set first_run [get_xp_val "first"]
 | ||||||
|  | +
 | ||||||
|  | +gdb_test "continue" "Breakpoint \[0-9\]+, foo \\\(yp=$hex\\\) at.*"
 | ||||||
|  | +
 | ||||||
|  | +set second_run [get_xp_val "second"]
 | ||||||
|  | +
 | ||||||
|  | +if { $first_run != $second_run } {
 | ||||||
|  | +    pass "different values for TLS variable"
 | ||||||
|  | +} else {
 | ||||||
|  | +    fail "different values for TLS variable"
 | ||||||
|  | +}
 | ||||||
							
								
								
									
										11
									
								
								gdb.spec
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								gdb.spec
									
									
									
									
									
								
							| @ -34,7 +34,7 @@ Version: 7.5.91.%{snap} | |||||||
| 
 | 
 | ||||||
| # The release always contains a leading reserved number, start it at 1. | # 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. | # `upstream' is not a part of `name' to stay fully rpm dependencies compatible for the testing. | ||||||
| Release: 18%{?dist} | Release: 19%{?dist} | ||||||
| 
 | 
 | ||||||
| License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ and GPLv2+ with exceptions and GPL+ and LGPLv2+ and BSD and Public Domain | License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ and GPLv2+ with exceptions and GPL+ and LGPLv2+ and BSD and Public Domain | ||||||
| Group: Development/Debuggers | Group: Development/Debuggers | ||||||
| @ -557,6 +557,11 @@ Patch816: gdb-rhbz795424-bitpos-25of25.patch | |||||||
| Patch817: gdb-rhbz795424-bitpos-25of25-test.patch | Patch817: gdb-rhbz795424-bitpos-25of25-test.patch | ||||||
| Patch818: gdb-rhbz795424-bitpos-lazyvalue.patch | Patch818: gdb-rhbz795424-bitpos-lazyvalue.patch | ||||||
| 
 | 
 | ||||||
|  | # Import regression test for `gdb/findvar.c:417: internal-error: | ||||||
|  | # read_var_value: Assertion `frame' failed.' (RH BZ 947564) from RHEL 6.5. | ||||||
|  | #=fedoratest | ||||||
|  | Patch832: gdb-rhbz947564-findvar-assertion-frame-failed-testcase.patch | ||||||
|  | 
 | ||||||
| %if 0%{!?rhel:1} || 0%{?rhel} > 6 | %if 0%{!?rhel:1} || 0%{?rhel} > 6 | ||||||
| # RL_STATE_FEDORA_GDB would not be found for: | # RL_STATE_FEDORA_GDB would not be found for: | ||||||
| # Patch642: gdb-readline62-ask-more-rh.patch | # Patch642: gdb-readline62-ask-more-rh.patch | ||||||
| @ -875,6 +880,7 @@ find -name "*.info*"|xargs rm -f | |||||||
| %patch816 -p1 | %patch816 -p1 | ||||||
| %patch817 -p1 | %patch817 -p1 | ||||||
| %patch818 -p1 | %patch818 -p1 | ||||||
|  | %patch832 -p1 | ||||||
| 
 | 
 | ||||||
| %patch393 -p1 | %patch393 -p1 | ||||||
| %if 0%{!?el5:1} || 0%{?scl:1} | %if 0%{!?el5:1} || 0%{?scl:1} | ||||||
| @ -1374,6 +1380,9 @@ fi | |||||||
| %endif # 0%{!?el5:1} || "%{_target_cpu}" == "noarch" | %endif # 0%{!?el5:1} || "%{_target_cpu}" == "noarch" | ||||||
| 
 | 
 | ||||||
| %changelog | %changelog | ||||||
|  | * Mon Apr 22 2013 Sergio Durigan Junior <sergiodj@redhat.com> - 7.5.91.20130407-19.fc19 | ||||||
|  | - [RHEL-6] Regression test for RH BZ 947564. | ||||||
|  | 
 | ||||||
| * Thu Apr 11 2013 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.5.91.20130407-18.fc19 | * Thu Apr 11 2013 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.5.91.20130407-18.fc19 | ||||||
| - Provide man page for gcore.1 and gdb-add-index.1 (BZ 881892). | - Provide man page for gcore.1 and gdb-add-index.1 (BZ 881892). | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user