diff options
author | Sami Wagiaalla <swagiaal@redhat.com> | 2010-01-28 17:58:02 +0000 |
---|---|---|
committer | Sami Wagiaalla <swagiaal@redhat.com> | 2010-01-28 17:58:02 +0000 |
commit | df83a9bf8b0dc2e2553db096e6933a5be943cda6 (patch) | |
tree | 16383451442a298ad6d081fc696a655837386aea /gdb/testsuite/gdb.cp/nsusing.exp | |
parent | 1c4809636b0de9e160c8e711f82dabf66e0000a9 (diff) | |
download | gdb-df83a9bf8b0dc2e2553db096e6933a5be943cda6.zip gdb-df83a9bf8b0dc2e2553db096e6933a5be943cda6.tar.gz gdb-df83a9bf8b0dc2e2553db096e6933a5be943cda6.tar.bz2 |
2010-01-28 Sami Wagiaalla <swagiaal@redhat.com>
* gdb.cp/nsusing.exp: Added more tests.
* gdb.cp/nsrecurs.exp: Ditto.
* gdb.cp/nsusing.cc: Added test functions.
* gdb.cp/nsrecurs.cc: Ditto.
Diffstat (limited to 'gdb/testsuite/gdb.cp/nsusing.exp')
-rw-r--r-- | gdb/testsuite/gdb.cp/nsusing.exp | 131 |
1 files changed, 112 insertions, 19 deletions
diff --git a/gdb/testsuite/gdb.cp/nsusing.exp b/gdb/testsuite/gdb.cp/nsusing.exp index ef0237d..bd115c4 100644 --- a/gdb/testsuite/gdb.cp/nsusing.exp +++ b/gdb/testsuite/gdb.cp/nsusing.exp @@ -23,7 +23,8 @@ set bug_id 0 set testfile nsusing set srcfile ${testfile}.cc set binfile ${objdir}/${subdir}/${testfile} -if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } { +if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable \ + {debug c++}] != "" } { untested "Couldn't compile test program" return -1 } @@ -51,32 +52,94 @@ if ![runto_main] then { gdb_test "print _a" "= 1" +# Test that names are not printed when they +# are not imported + +gdb_breakpoint marker3 +gdb_continue_to_breakpoint "marker3" + +#send_gdb "break marker3\n" +#send_gdb "continue\n" + +gdb_test "print _a" "No symbol \"_a\" in current context." \ + "Print _a without import" + +gdb_exit +gdb_start +gdb_reinitialize_dir $srcdir/$subdir +gdb_load ${binfile} + + ############################################ -# test printing of namespace imported into +# test printing of namespace imported into # a scope containing the pc. +if ![runto_main] then { + perror "couldn't run to breakpoint main" + continue +} + gdb_breakpoint [gdb_get_line_number "marker1 stop"] gdb_continue_to_breakpoint "marker1 stop" gdb_test "print _a" "= 1" "print _a in a nested scope" + +gdb_exit +gdb_start +gdb_reinitialize_dir $srcdir/$subdir +gdb_load ${binfile} + +############################################ +# test printing of namespace imported into +# file scope. + + +if ![runto marker5] then { + perror "couldn't run to breakpoint marker5" + continue +} + +gdb_test "print cc" "= 3" + +gdb_exit +gdb_start +gdb_reinitialize_dir $srcdir/$subdir +gdb_load ${binfile} + + ############################################ # Test printing of namespace aliases -setup_kfail "gdb/7935" "*-*-*" if ![runto marker2] then { perror "couldn't run to breakpoint marker2" continue } -gdb_test "print B::a" "= 1" +setup_kfail "gdb/7935" "*-*-*" +gdb_test "print B::_a" "= 1" + +setup_kfail "gdb/7935" "*-*-*" +gdb_test "print _a" "No symbol \"_a\" in current context." \ + "print _a in namespace alias scope" + +setup_kfail "gdb/7935" "*-*-*" +gdb_test "print x" "No symbol \"x\" in current context." \ + "print x in namespace alias scope" + +gdb_exit +gdb_start +gdb_reinitialize_dir $srcdir/$subdir +gdb_load ${binfile} + ############################################ -# Test that names are not printed when they +# Test that names are not printed when they # are not imported -gdb_breakpoint "marker3" -gdb_continue_to_breakpoint "marker3" +if {![runto marker3]} { + perror "couldn't run to breakpoint marker3" +} # gcc-4-3 puts import statements for aliases in # the global scope instead of the corresponding @@ -84,37 +147,67 @@ gdb_continue_to_breakpoint "marker3" # this test off. This is fixed in gcc-4-4. if [test_compiler_info gcc-4-3-*] then { setup_xfail *-*-* } -gdb_test "print _a" "No symbol \"_a\" in current context." "Print _a without import" +gdb_test "print _a" "No symbol \"_a\" in current context." \ + "Print _a without import" ############################################ # Test printing of individually imported elements -setup_kfail "gdb/7936" "*-*-*" if ![runto marker4] then { perror "couldn't run to breakpoint marker4" continue } - -gdb_test "print x" "= 2" +setup_kfail "gdb/7936" "*-*-*" +gdb_test "print dx" "= 4" ############################################ -# test printing of namespace imported into -# file scope. +# Test printing of namespace aliases if ![runto marker5] then { perror "couldn't run to marker5" continue } -gdb_test "print cc" "= 3" +gdb_test "print efx" "= 5" ############################################ -# test printing of namespace imported into -# file scope. +# Test printing of variables imported from +# nested namespaces + +if ![runto I::marker7] then { + perror "couldn't run to breakpoint I::marker7" + continue +} + +gdb_test "print ghx" "= 6" + +############################################ +# Test that variables are not printed in a namespace +# that is sibling to the namespace containing an import + +if ![runto L::marker8] then { + perror "couldn't run to breakpoint L::marker8" + continue +} + +gdb_test "print jx" "= 44" + +gdb_breakpoint "K::marker9" +gdb_continue_to_breakpoint "K::marker9" + +gdb_test "print jx" "No symbol \"jx\" in current context." -if ![runto PQ::marker6] then { - perror "couldn't run to PQ::marker6" +############################################ +# Test that variables are only printed after the line +# containing the import + +if ![runto_main] then { + perror "couldn't run to breakpoint main" continue } -gdb_test "print ox" "No symbol \"ox\" in current context." +gdb_breakpoint [gdb_get_line_number "marker10 stop"] +gdb_continue_to_breakpoint "marker10 stop" + +# Assert that M::x is printed and not N::x +gdb_test "print x" "= 911" "print x (from M::x)" |