From e1b871ecc12b6c2a7b62a64ffbbd0714ab8d5c56 Mon Sep 17 00:00:00 2001 From: Keith Seitz Date: Thu, 24 May 2007 20:40:47 +0000 Subject: java-interp.h (_Jv_InterpFrame::get_pc): Only deduct one when pc_ptr is non-NULL. * include/java-interp.h (_Jv_InterpFrame::get_pc): Only deduct one when pc_ptr is non-NULL. * prims.cc (parse_init_args): Enable JVMTI with agentlib and agentpath options. * testsuite/lib/libjava.exp (exec_gij): Add new addl_flags parameter. * testsuite/libjava.jvmti/jvmti-interp.exp (gij_jvmti_test_one): Pass '-agentlib:dummyagent' when executing gij. (gij_jvmti_run): Build dummy JVMTI agent before running tests, and remove it when finished. * testsuite/libjava.jvmti/dummyagent.c: New file. From-SVN: r125040 --- libjava/testsuite/lib/libjava.exp | 8 ++++---- libjava/testsuite/libjava.jvmti/dummyagent.c | 9 +++++++++ libjava/testsuite/libjava.jvmti/jvmti-interp.exp | 21 ++++++++++++++++----- 3 files changed, 29 insertions(+), 9 deletions(-) create mode 100644 libjava/testsuite/libjava.jvmti/dummyagent.c (limited to 'libjava/testsuite') diff --git a/libjava/testsuite/lib/libjava.exp b/libjava/testsuite/lib/libjava.exp index 09d4f09..c684bf6 100644 --- a/libjava/testsuite/lib/libjava.exp +++ b/libjava/testsuite/lib/libjava.exp @@ -1,4 +1,4 @@ -# Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2006 Free Software Foundation +# Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2006, 2007 Free Software Foundation proc load_gcc_lib { filename } { global srcdir @@ -494,7 +494,7 @@ proc gcj_invoke {program expectFile ld_library_additions} { } } -proc exec_gij {jarfile expectFile ld_library_additions} { +proc exec_gij {jarfile expectFile {ld_library_additions {}} {addl_flags {}}} { global env global libjava_ld_library_path global ld_library_path @@ -512,9 +512,9 @@ proc exec_gij {jarfile expectFile ld_library_additions} { set gij [libjava_find_gij] set classname [file rootname [file tail $jarfile]] - puts "LD_LIBRARY_PATH=. $gij -cp $jarfile $classname" + puts "LD_LIBRARY_PATH=. $gij -cp $jarfile $addl_flags $classname" - set result [libjava_load $gij "-cp $jarfile $classname"] + set result [libjava_load $gij "-cp $jarfile $addl_flags $classname"] set status [lindex $result 0] set output [lindex $result 1] diff --git a/libjava/testsuite/libjava.jvmti/dummyagent.c b/libjava/testsuite/libjava.jvmti/dummyagent.c new file mode 100644 index 0000000..9e704a0 --- /dev/null +++ b/libjava/testsuite/libjava.jvmti/dummyagent.c @@ -0,0 +1,9 @@ +#include + +JNIEXPORT jint JNICALL +Agent_OnLoad (JavaVM *vm, char *options, void *reserved) +{ + // nothing -- this is just a stub to get JVMTI properly + // initialized +} + diff --git a/libjava/testsuite/libjava.jvmti/jvmti-interp.exp b/libjava/testsuite/libjava.jvmti/jvmti-interp.exp index 73a0582..c99dd34 100644 --- a/libjava/testsuite/libjava.jvmti/jvmti-interp.exp +++ b/libjava/testsuite/libjava.jvmti/jvmti-interp.exp @@ -133,7 +133,8 @@ proc gij_jvmti_test_one {file} { libjava_arguments set jarfile [file join [file dirname $file] $main.jar] - if {! [exec_gij $jarfile [file rootname $file].out {}]} { + set gij_flags {-agentlib:dummyagent} + if {! [exec_gij $jarfile [file rootname $file].out {} $gij_flags]} { return 0 } @@ -151,14 +152,24 @@ proc gij_jvmti_run {} { # For now we only test JVMTI on native builds. if {$build_triplet == $host_triplet} { - catch { lsort [glob -nocomplain ${srcdir}/${subdir}/interp/*.jar] \ - } srcfiles + + # Build our dummy JVMTI agent library + if {![gcj_jni_compile_c_to_so [file join $srcdir $subdir dummyagent.c]]} { + fail "compiling dummy JVMTI agent" + } else { + pass "compiling dummy JVMTI agent" + + catch {lsort [glob -nocomplain ${srcdir}/${subdir}/interp/*.jar]} \ + srcfiles foreach x $srcfiles { - gij_jvmti_test_one $x + gij_jvmti_test_one $x } + + gcj_cleanup libdummyagent.so + } } else { - verbose "JVMTI tests not run in cross-compilation environment" + verbose "JVMTI tests not run in cross-compilation environment" } } -- cgit v1.1