#%Module
if {[info exists env(TESTSUITE_HIDE_AUTO_LOADED)]} {
    switch -- $env(TESTSUITE_HIDE_AUTO_LOADED) {
        load_vr1 {
            variant bar 0 1 2
        }
    }
}
if {[info exists env(TESTSUITE_LOGGER)]} {
    switch -- $env(TESTSUITE_LOGGER) {
        load_dep_and_alias - dep_break - dep_unk - logger_cmd_out_msg - logger_cmd_err_msg -\
        logger_cmd_exit_code - logger_cmd_crash - logger_cmd_silent_crash {
            module-whatis [module-info name]
            set-alias albar bar
            module load foo/1.0
        }
        load_dep_and_break {
            module load foo/1.0
            break
        }
        load_dep_and_unk {
            module load foo/1.0
            unk
        }
    }
}
if {[info exists env(TESTSUITE_CONFLICT_UNLOAD)]} {
    switch -- $env(TESTSUITE_CONFLICT_UNLOAD) {
        urequn_of_conun_is_direct_reqlo1 - urequn_of_conun_is_direct_reqlo2 -\
        urequn_of_conun_is_indirect_reqlo1 {
            module load foo/1.0
        }
        depun_of_conun_is_reqlo1 - depun_of_conun_is_reqlo2 {
            module load conun/1
        }
        depre_of_conun_is_reqlo1 - depre_of_conun_is_reqlo2 -\
        depre_of_conun_is_conflict_of_reqlo1 {
            conflict conun/1
        }
        depre_of_conun_is_reqlo_unload_break1 {
            conflict conun/1
            if {[module-info mode unload]} {
                break
            }
        }
        depun_of_conun_is_sticky1 - depun_of_conun_is_super_sticky1 {
            conflict bar
            module load conun
        }
    }
}
if {[info exists env(TESTSUITE_LOADABLE_DEPRE)]} {
    switch -- $env(TESTSUITE_LOADABLE_DEPRE) {
        conflict_with_variant - prereq_with_variant_or_and -\
        sticky_as_extra_tag {
            variant --default val1 var val1 val2 val3
            conflict bar
        }
    }
}
if {[info exists env(TESTSUITE_PROVIDE)]} {
    switch -- $env(TESTSUITE_PROVIDE) {
        duplicate_with_ext {
            provide foo/1
        }
        duplicate_with_ext_family {
            family foo
        }
        duplicate_with_ext_family2 {
            family quux
        }
    }
}
if {[info exists env(TESTSUITE_LCOMPAT)]} {
    switch -- $env(TESTSUITE_LCOMPAT) {
        depon_spec1 - allo_spec1 - prall_spec1 {
            variant foo val1 val2 val3
        }
    }
}
if {[info exists env(TESTSUITE_RELATIVE_MODULEPATH)]} {
    switch -- $env(TESTSUITE_RELATIVE_MODULEPATH) {
        load1 {
            module load foo/1.0
        }
        prereq1 {
            prereq foo/1.0
        }
        depon1 {
            depends-on foo/1.0
        }
        isused1 {
            setenv TS_ISUSED_RAW [is-used $env(MODULEPATH)]
            setenv TS_ISUSED_DOT [is-used ./$env(MODULEPATH)]
            setenv TS_ISUSED_SLASH [is-used $env(MODULEPATH)/]
            setenv TS_ISUSED_REL [is-used ..]
            setenv TS_ISUSED_UNK [is-used [file tail $env(MODULEPATH)]]
        }
    }
}
