123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- # Tests for .jar files.
- # Compile a single .jar file to an executable.
- # Returns 0 on failure.
- proc gcj_jar_link {jarfile mainclass} {
- }
- proc gcj_jar_compile_one {jarfile mainclass} {
- set base [file rootname [file tail $jarfile]]
- set out [file rootname $jarfile].out
- if {! [gcj_link $base $mainclass [list $jarfile]]} {
- return
- }
- gcj_invoke $base $out {}
- }
- proc gcj_jar_interpret {jarfile} {
- global INTERPRETER srcdir
- set gij [libjava_find_gij]
- set errname [dg-trim-dirname $srcdir $jarfile]
- # libjava_find_gij will return "" if it couldn't find the
- # program; in this case we want to skip the test.
- if {$INTERPRETER != "yes" || $gij == ""} {
- untested "$errname execution - gij test"
- untested "$errname output - gij test"
- return
- }
- set opts(_) {}
- set out [file rootname $jarfile].out
- libjava_invoke $errname "gij test" opts $gij {} $out \
- "" -jar $jarfile
- }
- proc gcj_jar_run {} {
- global srcdir subdir env
- foreach jar [lsort [glob -nocomplain ${srcdir}/${subdir}/*.jar]] {
- set xff [file rootname $jar].xfail
- set main {}
- set interp 1
- foreach item [libjava_read_xfail $xff] {
- if {[string match main=* $item]} {
- set main [string range $item 5 end]
- break
- } elseif {$item == "no-interpret"} {
- set interp 0
- }
- }
- gcj_jar_compile_one $jar $main
- if {$interp} {
- gcj_jar_interpret $jar
- }
- }
- # When we succeed we remove all our clutter.
- eval gcj_cleanup [glob -nocomplain -- ${main}.*] [list $main ]
- # Reset CLASSPATH that we do not look into testsuite/libjava.jar for *.jar
- # files which do not belong to the libgcj itself.
- set env(CLASSPATH) ""
- return 1
- }
- gcj_jar_run
|