# This harness is for tests that should be run at all optimisation levels.

load_lib gfortran-dg.exp
load_lib gcc-gdb-test.exp

# Disable on darwin until radr://7264615 is resolved.
if { [istarget *-*-darwin*] } {
  return
}

if { [istarget "powerpc-ibm-aix*"] } {
    set torture_execute_xfail "powerpc-ibm-aix*"
    return
}

dg-init

global GDB
if ![info exists ::env(GUALITY_GDB_NAME)] {
    if [info exists GDB] {
	set guality_gdb_name "$GDB"
    } elseif { [info exists rootme] && [file exists $rootme/../gdb/gdb] } {
	# If we're doing a combined build, and gdb is available, use it.
	set guality_gdb_name "$rootme/../gdb/gdb"
    } else {
	set guality_gdb_name "[transform gdb]"
    }
    setenv GUALITY_GDB_NAME "$guality_gdb_name"
}
report_gdb $::env(GUALITY_GDB_NAME) [info script]

global DG_TORTURE_OPTIONS
set guality_dg_torture_options [guality_minimal_options $DG_TORTURE_OPTIONS]
torture-init
set-torture-options \
    $guality_dg_torture_options \

gfortran-dg-runtest [lsort [glob $srcdir/$subdir/*.\[fF\]{,90,95,03,08} ]] "" ""

if [info exists guality_gdb_name] {
    unsetenv GUALITY_GDB_NAME
}

torture-finish
dg-finish
