global srcdir subdir

catch "glob -nocomplain ${srcdir}/${subdir}/*.out" srcfiles
verbose "srcfiles are $srcfiles"

set prefix ""
foreach x $srcfiles {
    regsub "\\.out$" $x "" prefix
    set bname [file tail $prefix]

    if [file exists $srcdir/$subdir/${bname}.xpo] {
	set resfile "$srcdir/$subdir/${bname}.xpo"
	set options "regexp_match"
    } else {
	set resfile "${prefix}.out"
	set options ""
    }

    if [file exists ${prefix}.inp] {
	set inpfile ${prefix}.inp
    } else {
	set inpfile ""
    }

    set args [libjava_read_xfail $srcdir/$subdir/$bname.xfail]

    verbose "inpfile is $inpfile"

    test_libjava $options "${prefix}.java" "" $inpfile $resfile $args
    test_libjava $options "${prefix}.java" "-O" $inpfile $resfile $args
}

# Local Variables:
# tcl-indent-level:4
# End:
