1 # Run the Jacks test suite.
2 # See http://www-124.ibm.com/developerworks/oss/cvs/jikes/~checkout~/jacks/jacks.html
4 proc gcj_jacks_write {filename} {
7 set gcjl [split $GCJ_UNDER_TEST]
8 set gcj_cmd [lindex $gcjl 0]
9 set rest [join [lreplace $gcjl 0 0]]
12 set fd [open $filename w]
13 puts $fd "set JAVAC $gcj_cmd"
14 puts $fd "set JAVA_CLASSPATH \"\""
15 puts $fd "set JAVAC_FLAGS [list $rest]"
16 puts $fd "set JAVA [list [libjava_find_gij]]"
17 puts $fd "set JAVA_FLAGS \"\""
18 puts $fd "set JAVAC_ENCODING_FLAG --encoding="
19 puts $fd "set tcltest::testConstraints(encoding) 1"
20 puts $fd "set tcltest::testConstraints(gcj) 1"
21 # "Time-consuming JVM limitation tests".
22 # puts $fd "set tcltest::testConstraints(jvm) 1"
26 proc gcj_jacks_parse {file} {
27 if {[catch {open $file} fd]} {
28 verbose "couldn't parse Jacks output: $fd"
34 if {[string match RESULT* $line]} {
35 set linelist [split $line]
36 if {[lindex $linelist 2] == "PASSED"} {
37 pass [lindex $linelist 1]
39 fail [lindex $linelist 1]
47 proc gcj_jacks_run {} {
50 if {! [file isdirectory $srcdir/libjava.jacks/jacks]} {
52 verbose "Jacks tests not found"
56 # Jacks forces us to do this. You can't run it from a separate
58 verbose "Copying Jacks..."
59 catch {system "rm -rf jacks"}
60 catch {system "cp -r $srcdir/libjava.jacks/jacks jacks"}
65 verbose "Writing Jacks setup file"
66 gcj_jacks_write gcj_setup
68 verbose "Running Jacks..."
69 if {[catch {exec ./jacks gcj} msg]} {
70 verbose "jacks invocation failure: $msg"
75 gcj_jacks_parse logging/gcj.log