From f263ebdd7fb886c51ae6716863ad1c079e4eff1f Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Wed, 6 Nov 2002 01:02:19 +0000 Subject: [PATCH] * libjava.jacks/jacks.exp: New file. From-SVN: r58850 --- libjava/testsuite/ChangeLog | 4 ++ libjava/testsuite/libjava.jacks/jacks.exp | 81 +++++++++++++++++++++++ 2 files changed, 85 insertions(+) create mode 100644 libjava/testsuite/libjava.jacks/jacks.exp diff --git a/libjava/testsuite/ChangeLog b/libjava/testsuite/ChangeLog index b7c1548f70e..7cdad4a06a5 100644 --- a/libjava/testsuite/ChangeLog +++ b/libjava/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2002-11-05 Tom Tromey + + * libjava.jacks/jacks.exp: New file. + 2002-11-04 Tom Tromey * libjava.compile/pr7912.java: New file. diff --git a/libjava/testsuite/libjava.jacks/jacks.exp b/libjava/testsuite/libjava.jacks/jacks.exp new file mode 100644 index 00000000000..4e49503ec92 --- /dev/null +++ b/libjava/testsuite/libjava.jacks/jacks.exp @@ -0,0 +1,81 @@ +# Run the Jacks test suite. +# See http://www-124.ibm.com/developerworks/oss/cvs/jikes/~checkout~/jacks/jacks.html + +proc gcj_jacks_write {filename} { + global GCJ_UNDER_TEST + + set gcjl [split $GCJ_UNDER_TEST] + set gcj_cmd [lindex $gcjl 0] + set rest [join [lreplace $gcjl 0 0]] + append rest " -C" + + set fd [open $filename w] + puts $fd "set JAVAC $gcj_cmd" + puts $fd "set JAVA_CLASSPATH \"\"" + puts $fd "set JAVAC_FLAGS [list $rest]" + puts $fd "set JAVA [list [libjava_find_gij]]" + puts $fd "set JAVA_FLAGS \"\"" + puts $fd "set JAVAC_ENCODING_FLAG --encoding=" + puts $fd "set tcltest::testConstraints(encoding) 1" + puts $fd "set tcltest::testConstraints(gcj) 1" + # "Time-consuming JVM limitation tests". + # puts $fd "set tcltest::testConstraints(jvm) 1" + close $fd +} + +proc gcj_jacks_parse {file} { + if {[catch {open $file} fd]} { + verbose "couldn't parse Jacks output: $fd" + return + } + + while {! [eof $fd]} { + set line [gets $fd] + if {[string match RESULT* $line]} { + set linelist [split $line] + if {[lindex $linelist 2] == "PASSED"} { + pass [lindex $linelist 1] + } else { + fail [lindex $linelist 1] + } + } + } + + close $fd +} + +proc gcj_jacks_run {} { + global srcdir + + if {! [file isdirectory $srcdir/libjava.jacks/jacks]} { + # No tests. + verbose "Jacks tests not found" + return + } + + # Jacks forces us to do this. You can't run it from a separate + # tree. + verbose "Copying Jacks..." + catch {system "rm -rf jacks"} + catch {system "cp -r $srcdir/libjava.jacks/jacks jacks"} + + set here [pwd] + cd jacks + + verbose "Writing Jacks setup file" + gcj_jacks_write gcj_setup + + verbose "Running Jacks..." + if {[catch {exec ./jacks gcj} msg]} { + verbose "jacks invocation failure: $msg" + fail "running jacks" + } else { + pass "running jacks" + + gcj_jacks_parse logging/gcj.log + } + + cd $here +} + +gcj_jacks_run -- 2.30.2