Remove old autovect-branch by moving to "dead" directory.
[official-gcc.git] / old-autovect-branch / libjava / testsuite / libjava.jacks / jacks.exp
blob32529e3b08e735a15065e2cae88caadc65a9009d
1 # Run the Jacks test suite.
2 # See http://www-124.ibm.com/developerworks/oss/cvs/jikes/~checkout~/jacks/jacks.html
4 proc load_gcc_lib { filename } {
5 global srcdir
6 load_file $srcdir/../../gcc/testsuite/lib/$filename
9 load_gcc_lib target-libpath.exp
11 proc gcj_jacks_setup_xfail {ary} {
12 upvar $ary array
13 global srcdir
15 set fd [open $srcdir/libjava.jacks/jacks.xfail]
16 while {! [eof $fd]} {
17 set array([gets $fd]) {}
19 close $fd
22 proc gcj_jacks_write {filename} {
23 global GCJ_UNDER_TEST
24 global libgcj_jar
25 global libjava_libgcc_s_path
26 global ld_library_path
28 set gcjl [split $GCJ_UNDER_TEST]
29 set gcj_cmd [lindex $gcjl 0]
30 set rest [join [lreplace $gcjl 0 0]]
31 append rest " -C"
33 set fd [open $filename w]
34 puts $fd "set JAVAC $gcj_cmd"
35 puts $fd "set JAVA_CLASSPATH \"$libgcj_jar\""
36 puts $fd "set JAVAC_FLAGS [list $rest]"
37 puts $fd "set JAVA [list [libjava_find_gij]]"
39 # Without an explicit limit on the heap size, tests depending on
40 # an OutOfMemoryError (e.g. "15.9.4-runtime-creation-2") can result
41 # in a lot of unnecessary thrashing.
42 puts $fd "set JAVA_FLAGS \"-mx=64m\""
44 puts $fd "set JAVAC_ENCODING_FLAG --encoding="
45 puts $fd "set JAVAC_DEPRECATION_FLAG -Wdeprecated"
46 puts $fd "set tcltest::testConstraints(encoding) 1"
47 puts $fd "set tcltest::testConstraints(gcj) 1"
48 puts $fd "set tcltest::testConstraints(assert) 1"
49 # "Time-consuming JVM limitation tests".
50 # puts $fd "set tcltest::testConstraints(jvm) 1"
51 close $fd
53 set ld_library_path $libjava_libgcc_s_path
54 set_ld_library_path_env_vars
57 proc gcj_jacks_parse {file} {
58 if {[catch {open $file} fd]} {
59 verbose "couldn't parse Jacks output: $fd"
60 return
63 verbose "Reading jacks.xfail"
64 gcj_jacks_setup_xfail xfails
66 while {! [eof $fd]} {
67 set line [gets $fd]
68 if {[string match RESULT* $line]} {
69 set linelist [split $line]
70 set test [lindex $linelist 1]
71 if {[info exists xfails($test)]} {
72 setup_xfail "*-*-*"
74 if {[lindex $linelist 2] == "PASSED"} {
75 pass $test
76 } else {
77 fail $test
82 close $fd
85 proc gcj_jacks_run {} {
86 global srcdir
88 if {! [file isdirectory $srcdir/libjava.jacks/jacks]} {
89 # No tests.
90 verbose "Jacks tests not found"
91 return
94 # Jacks forces us to do this. You can't run it from a separate
95 # tree.
96 verbose "Copying Jacks..."
97 catch {system "rm -rf jacks"}
98 catch {system "cp -r $srcdir/libjava.jacks/jacks jacks"}
100 set here [pwd]
101 cd jacks
103 verbose "Writing Jacks setup file"
104 gcj_jacks_write gcj_setup
106 verbose "Running Jacks..."
107 # Just ignore error exits from the jacks program.
108 # It will always error exit for us, since don't completely pass.
109 # At the moment jacks has a hardcoded call to tclsh8.3. To override this,
110 # we check here on the version and launch the script directly with the
111 # tclsh$tcl_ver.
112 set tcl_ver [info tclversion]
113 if {[package vcompare $tcl_ver 8.3] >= 0 } {
114 if {[catch {exec tclsh$tcl_ver jacks gcj} msg]} {
115 send_log "Couldn't run jacks: $msg\n"
116 return
118 gcj_jacks_parse logging/gcj.log
119 } else {
120 send_log "No suitable tclsh found, you need at least version 8.3 or up.\n"
121 return
124 cd $here
127 gcj_jacks_run