Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(345)

Unified Diff: gdb/testsuite/gdb.base/jit.exp

Issue 124383005: GDB 7.6.50 (Closed) Base URL: http://git.chromium.org/native_client/nacl-gdb.git@upstream
Patch Set: Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « gdb/testsuite/gdb.base/interrupt-noterm.exp ('k') | gdb/testsuite/gdb.base/jit-main.c » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: gdb/testsuite/gdb.base/jit.exp
diff --git a/gdb/testsuite/gdb.base/jit.exp b/gdb/testsuite/gdb.base/jit.exp
index 3034e6ada3340bc561e3c72f94336910bcc2508a..d04f176630bd858db7c4e49c5b09400103e7a4d2 100644
--- a/gdb/testsuite/gdb.base/jit.exp
+++ b/gdb/testsuite/gdb.base/jit.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2012 Free Software Foundation, Inc.
+# Copyright 2011-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
@@ -28,70 +28,98 @@ if {[get_compiler_info]} {
# test running programs
#
-set testfile jit-main
-set srcfile ${testfile}.c
-set binfile ${objdir}/${subdir}/${testfile}
-if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
- untested jit.exp
- return -1
-}
+proc compile_jit_test {testname options} {
+ global testfile srcfile binfile srcdir subdir
+ global solib_testfile solib_srcfile solib_binfile solib_binfile_test_msg
+ global solib_binfile_target
+
+ set testfile jit-main
+ set srcfile ${testfile}.c
+ set binfile [standard_output_file $testfile]
+ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" \
+ executable [concat debug $options]] != "" } {
+ untested $testname
+ return -1
+ }
+
+ set solib_testfile "jit-solib"
+ set solib_srcfile "${srcdir}/${subdir}/${solib_testfile}.c"
+ set solib_binfile [standard_output_file ${solib_testfile}.so]
+ set solib_binfile_test_msg "SHLIBDIR/${solib_testfile}.so"
+
+ # Note: compiling without debug info: the library goes through
+ # symbol renaming by munging on its symbol table, and that
+ # wouldn't work for .debug sections. Also, output for "info
+ # function" changes when debug info is present.
+ if { [gdb_compile_shlib ${solib_srcfile} ${solib_binfile} {-fPIC}] != "" } {
+ untested $testname
+ return -1
+ }
-set solib_testfile "jit-solib"
-set solib_srcfile "${srcdir}/${subdir}/${solib_testfile}.c"
-set solib_binfile "${objdir}/${subdir}/${solib_testfile}.so"
-set solib_binfile_test_msg "SHLIBDIR/${solib_testfile}.so"
+ if {[is_remote target]} {
+ set solib_binfile_target [gdb_download ${solib_binfile}]
+ } else {
+ set solib_binfile_target $solib_binfile
+ }
-# Note: compiling without debug info: the library goes through symbol
-# renaming by munging on its symbol table, and that wouldn't work for .debug
-# sections. Also, output for "info function" changes when debug info is resent.
-if { [gdb_compile_shlib ${solib_srcfile} ${solib_binfile} {-fPIC}] != "" } {
- untested jit.exp
- return -1
+ return 0
}
-set solib_binfile_target [gdb_download ${solib_binfile}]
+proc one_jit_test {count match_str} {
+ with_test_prefix "one_jit_test-$count" {
+ global verbose testfile solib_binfile_target solib_binfile_test_msg
-proc one_jit_test {count match_str} { with_test_prefix "one_jit_test-$count" {
- global verbose testfile solib_binfile_target solib_binfile_test_msg
+ clean_restart $testfile
- clean_restart $testfile
+ # This is just to help debugging when things fail
+ if {$verbose > 0} {
+ gdb_test "set debug jit 1"
+ }
- # This is just to help debugging when things fail
- if {$verbose > 0} {
- gdb_test "set debug jit 1"
- }
+ if { ![runto_main] } {
+ fail "Can't run to main"
+ return
+ }
- if { ![runto_main] } {
- fail "Can't run to main"
- return
- }
+ gdb_breakpoint [gdb_get_line_number "break here 0"]
+ gdb_continue_to_breakpoint "break here 0"
- gdb_breakpoint [gdb_get_line_number "break here 0"]
- gdb_continue_to_breakpoint "break here 0"
+ # Poke desired values directly into inferior instead of using "set args"
+ # because "set args" does not work under gdbserver.
+ gdb_test_no_output "set var argc = 2"
+ gdb_test_no_output "set var libname = \"$solib_binfile_target\"" "set var libname = \"$solib_binfile_test_msg\""
+ gdb_test_no_output "set var count = $count"
- # Poke desired values directly into inferior instead of using "set args"
- # because "set args" does not work under gdbserver.
- gdb_test_no_output "set var argc = 2"
- gdb_test_no_output "set var libname = \"$solib_binfile_target\"" "set var libname = \"$solib_binfile_test_msg\""
- gdb_test_no_output "set var count = $count"
+ gdb_breakpoint [gdb_get_line_number "break here 1"]
+ gdb_continue_to_breakpoint "break here 1"
- gdb_breakpoint [gdb_get_line_number "break here 1"]
- gdb_continue_to_breakpoint "break here 1"
+ gdb_test "info function jit_function" "$match_str"
- gdb_test "info function jit_function" "$match_str"
+ # This is just to help debugging when things fail
+ if {$verbose > 0} {
+ gdb_test "maintenance print objfiles"
+ gdb_test "maintenance info break"
+ }
- # This is just to help debugging when things fail
- if {$verbose > 0} {
- gdb_test "maintenance print objfiles"
- gdb_test "maintenance info break"
+ gdb_breakpoint [gdb_get_line_number "break here 2"]
+ gdb_continue_to_breakpoint "break here 2"
+ # All jit librares must have been unregistered
+ gdb_test "info function jit_function" \
+ "All functions matching regular expression \"jit_function\":"
}
+}
- gdb_breakpoint [gdb_get_line_number "break here 2"]
- gdb_continue_to_breakpoint "break here 2"
- # All jit librares must have been unregistered
- gdb_test "info function jit_function" \
- "All functions matching regular expression \"jit_function\":"
-}}
-
+if {[compile_jit_test jit.exp {}] < 0} {
+ return
+}
one_jit_test 1 "${hex} jit_function_0000"
one_jit_test 2 "${hex} jit_function_0000\[\r\n\]+${hex} jit_function_0001"
+
+with_test_prefix PIE {
+ if {[compile_jit_test "jit.exp PIE tests" \
+ {additional_flags=-fPIE ldflags=-pie}] < 0} {
+ return
+ }
+
+ one_jit_test 1 "${hex} jit_function_0000"
+}
« no previous file with comments | « gdb/testsuite/gdb.base/interrupt-noterm.exp ('k') | gdb/testsuite/gdb.base/jit-main.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698