diff options
-rw-r--r-- | libjava/testsuite/ChangeLog | 3 | ||||
-rw-r--r-- | libjava/testsuite/lib/libjava.exp | 33 |
2 files changed, 23 insertions, 13 deletions
diff --git a/libjava/testsuite/ChangeLog b/libjava/testsuite/ChangeLog index a3082b8..fbf93e6 100644 --- a/libjava/testsuite/ChangeLog +++ b/libjava/testsuite/ChangeLog @@ -1,5 +1,8 @@ 2000-03-07 Tom Tromey <tromey@cygnus.com> + * lib/libjava.exp (test_libjava_from_javac): Removed hack for + interfaces. Fail if jv-scan reports a parse error. + Test for PR gcj/162: * libjava.lang/PR162.out: New file. * libjava.lang/PR162.java: New file. diff --git a/libjava/testsuite/lib/libjava.exp b/libjava/testsuite/lib/libjava.exp index 8f047ae..c561a3a 100644 --- a/libjava/testsuite/lib/libjava.exp +++ b/libjava/testsuite/lib/libjava.exp @@ -495,20 +495,27 @@ proc test_libjava_from_javac { options srcfile compile_args inpfile resultfile e [target_compile $srcfile "" none \ "compiler=$jvscan additional_flags=--list-class"]] verbose "class list is $class_out" - # FIXME: As of Wed Feb 24 1999, `jv-scan --list-class' prints - # nothing if the file contains an interface and not a class. I - # believe this is a jv-scan bug. - if {$class_out == ""} then { - set class_files \ - [list $objdir/[file rootname [file tail $srcfile]].class] - } else { - # Turn "a b" into "a.class b.class". - # Also, turn "foo.bar" into "foo/bar.class". - set class_files {} - foreach file [split [string trim $class_out]] { - set file [join [split $file .] /] - lappend class_files $objdir/$file.class + + if {[string match "*parse error*" $main_name] + || [string match "*parse error*" $class_out]} { + # Do the remaining fails. + setup_xfail "*-*-*" + fail "$errname compilation from bytecode" + if {! [info exists opts(no-exec)]} { + setup_xfail "*-*-*" + fail "$errname execution from bytecode->native test" + setup_xfail "*-*-*" + fail "$errname output from bytecode->native test" } + return + } + + # Turn "a b" into "a.class b.class". + # Also, turn "foo.bar" into "foo/bar.class". + set class_files {} + foreach file [split [string trim $class_out]] { + set file [join [split $file .] /] + lappend class_files $objdir/$file.class } # Usually it is an error for a test program not to have a `main' |