libjava.compile test fixes.
* lib/libjava.exp (libjava_tcompile): New proc. (test_libjava_from_source): Use it. (test_libjava_from_javac): Likewise. (find_javac): New proc. (bytecompile_file): Use it. (test_libjava_from_javac): Handle `xfail-gcjC' tag. If no-exec set, then don't link even if program has a `main'. * libjava.compile/static_3.xfail: New file. * libjava.compile/weirddecl.xfail: New file. * libjava.compile/static_2.xfail: New file. * libjava.compile/not_a_redef.xfail: New file. * libjava.compile/inner_1.xfail: New file. * libjava.compile/assignment_2.xfail: New file. * libjava.compile/assignment.xfail: New file. * libjava.compile/abstr.xfail: New file. * libjava.compile/PR375.xfail: New file. * libjava.compile/PR374.java: New file. * libjava.compile/PR238.xfail: New file. * libjava.compile/PR208.xfail: New file. * libjava.compile/PR207.xfail: New file. From-SVN: r38296
This commit is contained in:
parent
325de66c4c
commit
0254608834
|
@ -1,3 +1,27 @@
|
||||||
|
2000-12-15 Tom Tromey <tromey@redhat.com>
|
||||||
|
|
||||||
|
* lib/libjava.exp (libjava_tcompile): New proc.
|
||||||
|
(test_libjava_from_source): Use it.
|
||||||
|
(test_libjava_from_javac): Likewise.
|
||||||
|
(find_javac): New proc.
|
||||||
|
(bytecompile_file): Use it.
|
||||||
|
(test_libjava_from_javac): Handle `xfail-gcjC' tag. If no-exec
|
||||||
|
set, then don't link even if program has a `main'.
|
||||||
|
|
||||||
|
* libjava.compile/static_3.xfail: New file.
|
||||||
|
* libjava.compile/weirddecl.xfail: New file.
|
||||||
|
* libjava.compile/static_2.xfail: New file.
|
||||||
|
* libjava.compile/not_a_redef.xfail: New file.
|
||||||
|
* libjava.compile/inner_1.xfail: New file.
|
||||||
|
* libjava.compile/assignment_2.xfail: New file.
|
||||||
|
* libjava.compile/assignment.xfail: New file.
|
||||||
|
* libjava.compile/abstr.xfail: New file.
|
||||||
|
* libjava.compile/PR375.xfail: New file.
|
||||||
|
* libjava.compile/PR374.java: New file.
|
||||||
|
* libjava.compile/PR238.xfail: New file.
|
||||||
|
* libjava.compile/PR208.xfail: New file.
|
||||||
|
* libjava.compile/PR207.xfail: New file.
|
||||||
|
|
||||||
2000-11-30 Tom Tromey <tromey@cygnus.com>
|
2000-11-30 Tom Tromey <tromey@cygnus.com>
|
||||||
|
|
||||||
* libjava.lang/instinit.java: Don't extend `foo'.
|
* libjava.lang/instinit.java: Don't extend `foo'.
|
||||||
|
|
|
@ -10,6 +10,19 @@ if ![info exists tmpdir] {
|
||||||
set tmpdir "/tmp"
|
set tmpdir "/tmp"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# This is like `target_compile' but it does some surgery to work
|
||||||
|
# around stupid DejaGNU bugs. In particular DejaGNU has very poor
|
||||||
|
# quoting, so for instance a `$' will be re-evaluated at spawn time.
|
||||||
|
# We don't want that.
|
||||||
|
proc libjava_tcompile {source destfile type options} {
|
||||||
|
# This strange-looking expression really does quote the `$'.
|
||||||
|
regsub -all -- {\$} $source {\$} source
|
||||||
|
regsub -all -- {\$} $destfile {\$} destfile
|
||||||
|
verbose "Now source = $source"
|
||||||
|
verbose "Now destfile = $destfile"
|
||||||
|
return [target_compile $source $destfile $type $options]
|
||||||
|
}
|
||||||
|
|
||||||
# Read an `xfail' file if it exists. Returns a list of xfail tokens.
|
# Read an `xfail' file if it exists. Returns a list of xfail tokens.
|
||||||
proc libjava_read_xfail {file} {
|
proc libjava_read_xfail {file} {
|
||||||
if {! [file exists $file]} {
|
if {! [file exists $file]} {
|
||||||
|
@ -46,12 +59,8 @@ proc find_gcjh {} {
|
||||||
return [libjava_find_program gcjh]
|
return [libjava_find_program gcjh]
|
||||||
}
|
}
|
||||||
|
|
||||||
proc bytecompile_file { file objdir {classpath {}} } {
|
proc find_javac {} {
|
||||||
global env
|
global SUN_JAVAC GCJ_UNDER_TEST env
|
||||||
global SUN_JAVAC
|
|
||||||
global GCJ_UNDER_TEST
|
|
||||||
set dirname [file dirname $file]
|
|
||||||
|
|
||||||
# If JDK doesn't run on your platform but some other
|
# If JDK doesn't run on your platform but some other
|
||||||
# JDK-compatible javac does, you may set SUN_JAVAC to point to it.
|
# JDK-compatible javac does, you may set SUN_JAVAC to point to it.
|
||||||
# One of the most important properties of a SUN_JAVAC is that it
|
# One of the most important properties of a SUN_JAVAC is that it
|
||||||
|
@ -60,14 +69,21 @@ proc bytecompile_file { file objdir {classpath {}} } {
|
||||||
# those that have. For example, Pizza won't do it, but you can
|
# those that have. For example, Pizza won't do it, but you can
|
||||||
# use `kaffe sun.tools.javac.Main', if you have Sun's classes.zip
|
# use `kaffe sun.tools.javac.Main', if you have Sun's classes.zip
|
||||||
# in the kaffe's default search path.
|
# in the kaffe's default search path.
|
||||||
if ![info exists SUN_JAVAC] {
|
if {![info exists SUN_JAVAC]} {
|
||||||
if [info exists env(SUN_JAVAC)] {
|
if {[info exists env(SUN_JAVAC)]} {
|
||||||
set SUN_JAVAC $env(SUN_JAVAC)
|
set SUN_JAVAC $env(SUN_JAVAC)
|
||||||
} else {
|
} else {
|
||||||
set SUN_JAVAC "$GCJ_UNDER_TEST -C"
|
set SUN_JAVAC "$GCJ_UNDER_TEST -C"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return $SUN_JAVAC
|
||||||
|
}
|
||||||
|
|
||||||
|
proc bytecompile_file { file objdir {classpath {}} } {
|
||||||
|
global env
|
||||||
|
set dirname [file dirname $file]
|
||||||
|
|
||||||
|
set javac [find_javac]
|
||||||
catch {unset env(CLASSPATH)}
|
catch {unset env(CLASSPATH)}
|
||||||
if {$classpath != ""} then {
|
if {$classpath != ""} then {
|
||||||
set env(CLASSPATH) $classpath
|
set env(CLASSPATH) $classpath
|
||||||
|
@ -75,7 +91,7 @@ proc bytecompile_file { file objdir {classpath {}} } {
|
||||||
if {[catch {
|
if {[catch {
|
||||||
set here [pwd]
|
set here [pwd]
|
||||||
cd $dirname
|
cd $dirname
|
||||||
set q [eval exec "$SUN_JAVAC [list $file] -d $objdir 2>@ stdout"]
|
set q [eval exec "$javac [list $file] -d $objdir 2>@ stdout"]
|
||||||
cd $here
|
cd $here
|
||||||
# "return" a result
|
# "return" a result
|
||||||
set q $q
|
set q $q
|
||||||
|
@ -338,7 +354,7 @@ proc test_libjava_from_source { options srcfile compile_args inpfile resultfile
|
||||||
}
|
}
|
||||||
|
|
||||||
set x [prune_warnings \
|
set x [prune_warnings \
|
||||||
[target_compile $srcfile "$executable" $target $args]]
|
[libjava_tcompile $srcfile "$executable" $target $args]]
|
||||||
if {[info exists opts(xfail-gcj)]} {
|
if {[info exists opts(xfail-gcj)]} {
|
||||||
setup_xfail *-*-*
|
setup_xfail *-*-*
|
||||||
}
|
}
|
||||||
|
@ -449,9 +465,15 @@ proc test_libjava_from_javac { options srcfile compile_args inpfile resultfile e
|
||||||
|
|
||||||
# bytecompile files with Sun's compiler for now.
|
# bytecompile files with Sun's compiler for now.
|
||||||
set bc_ok [bytecompile_file $srcfile $objdir]
|
set bc_ok [bytecompile_file $srcfile $objdir]
|
||||||
# FIXME: assumes we are using javac to compile to bytecode.
|
|
||||||
# This is not always the case.
|
set javac [find_javac]
|
||||||
if {[info exists opts(xfail-javac)]} {
|
# This is an ugly heuristic but it will have to do.
|
||||||
|
if {[string match *gcj* $javac]} {
|
||||||
|
set tag gcjC
|
||||||
|
} else {
|
||||||
|
set tag javac
|
||||||
|
}
|
||||||
|
if {[info exists opts(xfail-$tag)]} {
|
||||||
setup_xfail *-*-*
|
setup_xfail *-*-*
|
||||||
}
|
}
|
||||||
if {! $bc_ok} then {
|
if {! $bc_ok} then {
|
||||||
|
@ -481,12 +503,12 @@ proc test_libjava_from_javac { options srcfile compile_args inpfile resultfile e
|
||||||
verbose "jvscan is $jvscan"
|
verbose "jvscan is $jvscan"
|
||||||
set main_name [string trim \
|
set main_name [string trim \
|
||||||
[prune_warnings \
|
[prune_warnings \
|
||||||
[target_compile $srcfile "" none \
|
[libjava_tcompile $srcfile "" none \
|
||||||
"compiler=$jvscan additional_flags=--print-main"]]]
|
"compiler=$jvscan additional_flags=--print-main"]]]
|
||||||
verbose "main name is $main_name"
|
verbose "main name is $main_name"
|
||||||
set class_out [string trim \
|
set class_out [string trim \
|
||||||
[prune_warnings \
|
[prune_warnings \
|
||||||
[target_compile $srcfile "" none \
|
[libjava_tcompile $srcfile "" none \
|
||||||
"compiler=$jvscan additional_flags=--list-class"]]]
|
"compiler=$jvscan additional_flags=--list-class"]]]
|
||||||
verbose "class list is $class_out"
|
verbose "class list is $class_out"
|
||||||
|
|
||||||
|
@ -519,14 +541,13 @@ proc test_libjava_from_javac { options srcfile compile_args inpfile resultfile e
|
||||||
set opts(no-exec) x
|
set opts(no-exec) x
|
||||||
}
|
}
|
||||||
set largs {}
|
set largs {}
|
||||||
if {$main_name == ""} {
|
|
||||||
if {! [info exists opts(no-exec)]} {
|
if {[info exists opts(no-exec)]} {
|
||||||
perror "No `main' given in program $errname"
|
set type object
|
||||||
return
|
set mode compile
|
||||||
} else {
|
} elseif {$main_name == ""} {
|
||||||
set type object
|
perror "No `main' given in program $errname"
|
||||||
set mode compile
|
return
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
set type executable
|
set type executable
|
||||||
lappend largs "additional_flags=--main=$main_name"
|
lappend largs "additional_flags=--main=$main_name"
|
||||||
|
@ -554,14 +575,14 @@ proc test_libjava_from_javac { options srcfile compile_args inpfile resultfile e
|
||||||
foreach c_file $class_files {
|
foreach c_file $class_files {
|
||||||
set executable [file rootname [file tail $c_file]].o
|
set executable [file rootname [file tail $c_file]].o
|
||||||
set x [prune_warnings \
|
set x [prune_warnings \
|
||||||
[target_compile $c_file "$executable" $type $args]]
|
[libjava_tcompile $c_file "$executable" $type $args]]
|
||||||
if {$x != ""} {
|
if {$x != ""} {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
set x [prune_warnings \
|
set x [prune_warnings \
|
||||||
[target_compile $class_files "$executable" $type $args]]
|
[libjava_tcompile $class_files "$executable" $type $args]]
|
||||||
}
|
}
|
||||||
if {[info exists opts(xfail-byte)]} {
|
if {[info exists opts(xfail-byte)]} {
|
||||||
setup_xfail *-*-*
|
setup_xfail *-*-*
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
no-link
|
||||||
|
xfail-byte
|
|
@ -0,0 +1,2 @@
|
||||||
|
no-link
|
||||||
|
xfail-byte
|
|
@ -0,0 +1 @@
|
||||||
|
no-link
|
|
@ -0,0 +1,2 @@
|
||||||
|
xfail-gcj
|
||||||
|
xfail-gcjC
|
|
@ -0,0 +1 @@
|
||||||
|
xfail-gcj
|
|
@ -1 +1,2 @@
|
||||||
no-link
|
no-link
|
||||||
|
xfail-byte
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
xfail-gcj
|
||||||
|
xfail-gcjC
|
|
@ -0,0 +1,2 @@
|
||||||
|
xfail-gcj
|
||||||
|
xfail-gcjC
|
|
@ -0,0 +1 @@
|
||||||
|
xfail-gcj
|
|
@ -0,0 +1 @@
|
||||||
|
no-link
|
|
@ -0,0 +1 @@
|
||||||
|
no-link
|
|
@ -0,0 +1 @@
|
||||||
|
no-link
|
|
@ -0,0 +1,3 @@
|
||||||
|
no-link
|
||||||
|
xfail-gcj
|
||||||
|
xfail-gcjC
|
Loading…
Reference in New Issue