aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite/gdb.python/py-events.exp
diff options
context:
space:
mode:
authorKevin Pouget <kpouget@sourceware.org>2011-10-07 07:38:30 +0000
committerKevin Pouget <kpouget@sourceware.org>2011-10-07 07:38:30 +0000
commit20c168b5194d56e3f0f6a19db5905737463eadeb (patch)
treeacf80f3e61bd1be077b725981274275a3881d03c /gdb/testsuite/gdb.python/py-events.exp
parent8031b6f821f37552bc238e08af0cd5d9d2da9abd (diff)
downloadgdb-20c168b5194d56e3f0f6a19db5905737463eadeb.zip
gdb-20c168b5194d56e3f0f6a19db5905737463eadeb.tar.gz
gdb-20c168b5194d56e3f0f6a19db5905737463eadeb.tar.bz2
Allow Python notification of new object-file loadings.
* Makefile.in (SUBDIR_PYTHON_SRCS): Add py-newobjfilevent.c. (SUBDIR_PYTHON_OBS): Add py-newobjfileevent.o. Add build rule for this file. * python/py-event.h (emit_new_objfile_event): New prototype. (newobjfile): New Python event emitter. * python/py-evts.c (gdbpy_initialize_py_events): Add new_objfile to Python event registry. * python/py-inferior.c: Include objfiles.h (python_new_objfile): New function. (gdbpy_initialize_inferior): Add python_new_objfile to the new objfile observers. * python/py-newobjfileevent.c: New file. * python-internal.h (gdbpy_initialize_new_objfile_event): New prototype. * python/python.c (_initialize_python): Add gdbpy_initialize_new_objfile_event call. * NEWS: Add item for new Python event "gdb.newobjfile" 2011-10-06 Kevin Pouget <kevin.pouget@st.com> Allow Python notification of new object-file loadings. * gdb.texinfo (Events In Python): Document `gdb.NewObjFileEvent' event type. 2011-10-06 Kevin Pouget <kevin.pouget@st.com> Allow Python notification of new object-file loadings. * gdb.python/py-events.exp: Test newobjfile event. * gdb.python/py-events.py: Register newobjfile callback. * gdb.python/py-events.c: Add call to shared library * gdb.python/py-events-shlib.c: New file.
Diffstat (limited to 'gdb/testsuite/gdb.python/py-events.exp')
-rw-r--r--gdb/testsuite/gdb.python/py-events.exp26
1 files changed, 21 insertions, 5 deletions
diff --git a/gdb/testsuite/gdb.python/py-events.exp b/gdb/testsuite/gdb.python/py-events.exp
index 18419fa..e420389 100644
--- a/gdb/testsuite/gdb.python/py-events.exp
+++ b/gdb/testsuite/gdb.python/py-events.exp
@@ -19,23 +19,39 @@ if $tracelevel then {
load_lib gdb-python.exp
+set libfile "py-events-shlib"
+set libsrc $srcdir/$subdir/$libfile.c
+set lib_sl $objdir/$subdir/$libfile.so
+set lib_opts debug
+
set testfile "py-events"
set srcfile ${testfile}.c
set binfile ${objdir}/${subdir}/${testfile}
+set exec_opts [list debug shlib=$lib_sl]
set pyfile ${srcdir}/${subdir}/${testfile}.py
-if { [prepare_for_testing ${testfile}.exp ${testfile} ${srcfile}] } {
+if [get_compiler_info ${binfile}] {
return -1
}
+if { [gdb_compile_shlib $libsrc $lib_sl $lib_opts] != ""
+ || [gdb_compile $srcdir/$subdir/$srcfile $binfile executable $exec_opts] != ""} {
+ untested "Could not compile either $libsrc or $srcdir/$subdir/$srcfile."
+ return -1
+}
+
+# Start with a fresh gdb.
+clean_restart ${testfile}
+
if { [skip_python_tests] } { continue }
gdb_test_no_output "python execfile ('${pyfile}')" ""
-if ![runto_main ] then {
- fail "Can't run to main"
- return -1
-}
+gdb_test "Test_Newobj_Events" "New ObjectFile Event tester registered." "Register new objfile event handler"
+
+gdb_breakpoint "main" {temporary}
+
+gdb_test "run" ".*event type: new_objfile.*new objfile name.*" "New objfile notification"
gdb_test_no_output "set detach-on-fork off" ""