require glibc_${PV}.bb

# handle PN differences
FILESEXTRAPATHS_prepend := "${THISDIR}/glibc:"

# strip provides
PROVIDES = ""
# setup depends
INHIBIT_DEFAULT_DEPS = ""

python () {
    libc = d.getVar("PREFERRED_PROVIDER_virtual/libc")
    libclocale = d.getVar("PREFERRED_PROVIDER_virtual/libc-locale")
    if libc != "glibc" or libclocale != "glibc-locale":
        raise bb.parse.SkipRecipe("glibc-testsuite requires that virtual/libc is glibc")
}

DEPENDS += "glibc-locale libgcc gcc-runtime"

# remove the initial depends
DEPENDS_remove = "libgcc-initial"

inherit qemu

SRC_URI += "file://check-test-wrapper"

DEPENDS += "${@'qemu-native' if d.getVar('TOOLCHAIN_TEST_TARGET') == 'user' else ''}"

TOOLCHAIN_TEST_TARGET ??= "user"
TOOLCHAIN_TEST_HOST ??= "localhost"
TOOLCHAIN_TEST_HOST_USER ??= "root"
TOOLCHAIN_TEST_HOST_PORT ??= "2222"

do_check[dirs] += "${B}"
do_check[nostamp] = "1"
do_check () {
    chmod 0755 ${WORKDIR}/check-test-wrapper

    # clean out previous test results
    oe_runmake tests-clean
    # makefiles don't clean entirely (and also sometimes fails due to too many args)
    find ${B} -type f -name "*.out" -delete
    find ${B} -type f -name "*.test-result" -delete
    find ${B}/catgets -name "*.cat" -delete
    find ${B}/conform -name "symlist-*" -delete
    [ ! -e ${B}/timezone/testdata ] || rm -rf ${B}/timezone/testdata

    oe_runmake -i \
        QEMU_SYSROOT="${RECIPE_SYSROOT}" \
        QEMU_OPTIONS="${@qemu_target_binary(d)} ${QEMU_OPTIONS}" \
        SSH_HOST="${TOOLCHAIN_TEST_HOST}" \
        SSH_HOST_USER="${TOOLCHAIN_TEST_HOST_USER}" \
        SSH_HOST_PORT="${TOOLCHAIN_TEST_HOST_PORT}" \
        test-wrapper="${WORKDIR}/check-test-wrapper ${TOOLCHAIN_TEST_TARGET}" \
        check
}
addtask do_check after do_compile

inherit nopackages
deltask do_stash_locale
