source [file join [file dirname [file normalize [info script]]] tclbuildtest.tcl]

package require tclbuildtest

::tclbuildtest::sandbox {
    foreach t {{} openmp mpi} {
        foreach b {{} static} {
            test [list c $t real double $b] {
                run [build [require mumps-[xyz]] c_example.c]
            }
            foreach s {real complex} {
                foreach p {single double} {
                    test [list fortran $t $p $s $b] {
                        if {[constraint? complex]} {set input input_simpletest_cmplx} else {set input input_simpletest_real}
                        run [build [require mumps-[xyz]] [x]simpletest.F] < $input
                    }
                }
            }
        }
    }
}