OSDN Git Service

* libjava.jacks/jacks.exp (gcj_jacks_write): Enable "assert"
[pf3gnuchains/gcc-fork.git] / libjava / testsuite / libjava.jacks / jacks.exp
1 # Run the Jacks test suite.
2 # See http://www-124.ibm.com/developerworks/oss/cvs/jikes/~checkout~/jacks/jacks.html
3
4 proc gcj_jacks_setup_xfail {ary} {
5   upvar $ary array
6   global srcdir
7
8   set fd [open $srcdir/libjava.jacks/jacks.xfail]
9   while {! [eof $fd]} {
10     set array([gets $fd]) {}
11   }
12   close $fd
13 }
14
15 proc gcj_jacks_write {filename} {
16   global GCJ_UNDER_TEST
17   global libgcj_jar
18   global libjava_libgcc_s_path
19   global original_ld_library_path
20
21   set gcjl [split $GCJ_UNDER_TEST]
22   set gcj_cmd [lindex $gcjl 0]
23   set rest [join [lreplace $gcjl 0 0]]
24   append rest " -C"
25
26   set fd [open $filename w]
27   puts $fd "set JAVAC $gcj_cmd"
28   puts $fd "set JAVA_CLASSPATH \"$libgcj_jar\""
29   puts $fd "set JAVAC_FLAGS [list $rest]"
30   puts $fd "set JAVA [list [libjava_find_gij]]"
31   puts $fd "set JAVA_FLAGS \"\""
32   puts $fd "set JAVAC_ENCODING_FLAG --encoding="
33   puts $fd "set tcltest::testConstraints(encoding) 1"
34   puts $fd "set tcltest::testConstraints(gcj) 1"
35   puts $fd "set tcltest::testConstraints(assert) 1"
36   # "Time-consuming JVM limitation tests".
37   # puts $fd "set tcltest::testConstraints(jvm) 1"
38   close $fd
39
40   setenv LD_LIBRARY_PATH $libjava_libgcc_s_path:$original_ld_library_path
41 }
42
43 proc gcj_jacks_parse {file} {
44   if {[catch {open $file} fd]} {
45     verbose "couldn't parse Jacks output: $fd"
46     return
47   }
48
49   verbose "Reading jacks.xfail"
50   gcj_jacks_setup_xfail xfails
51
52   while {! [eof $fd]} {
53     set line [gets $fd]
54     if {[string match RESULT* $line]} {
55       set linelist [split $line]
56       set test [lindex $linelist 1]
57       if {[info exists xfails($test)]} {
58         setup_xfail "*-*-*"
59       }
60       if {[lindex $linelist 2] == "PASSED"} {
61         pass $test
62       } else {
63         fail $test
64       }
65     }
66   }
67
68   close $fd
69 }
70
71 proc gcj_jacks_run {} {
72   global srcdir
73
74   if {! [file isdirectory $srcdir/libjava.jacks/jacks]} {
75     # No tests.
76     verbose "Jacks tests not found"
77     return
78   }
79
80   # Jacks forces us to do this.  You can't run it from a separate
81   # tree.
82   verbose "Copying Jacks..."
83   catch {system "rm -rf jacks"}
84   catch {system "cp -r $srcdir/libjava.jacks/jacks jacks"}
85
86   set here [pwd]
87   cd jacks
88
89   verbose "Writing Jacks setup file"
90   gcj_jacks_write gcj_setup
91
92   verbose "Running Jacks..."
93   # Just ignore error exits from the jacks program.
94   # It will always error exit for us, since don't completely pass.
95   catch {exec ./jacks gcj} msg
96
97   gcj_jacks_parse logging/gcj.log
98
99   cd $here
100 }
101
102 gcj_jacks_run