[source]
same_as = "../os-test"

[build]
dependencies = [
    "gettext",
    "libarchive",
    "libiconv",
]
template = "custom"
script = """
DYNAMIC_INIT

# Copy source to /home/user/os-test
mkdir -p "${COOKBOOK_STAGE}/home/user/os-test"
cd "${COOKBOOK_STAGE}/home/user/os-test"
rsync -a "${COOKBOOK_SOURCE}/" "./"

# Pre-compile tests for Redox
make OS=Redox \
    CC="${CC_WRAPPER} ${GNU_TARGET}-gcc" \
    CFLAGS="-I${COOKBOOK_SYSROOT}/include" \
    CPPFLAGS="-I${COOKBOOK_SYSROOT}/include" \
    LDFLAGS="-L${COOKBOOK_SYSROOT}/lib" \
    EXTRA_LDFLAGS= \
    CC_FOR_BUILD="${CC_WRAPPER} cc" \
    CFLAGS_FOR_BUILD= \
    CPPFLAGS_FOR_BUILD= \
    LDFLAGS_FOR_BUILD= \
    -j "${COOKBOOK_MAKE_JOBS}" \
    all

skips=(
    # These tests hang
    basic/poll/poll
    basic/pthread/pthread_barrierattr_setpshared
    basic/pthread/pthread_condattr_setpshared
    basic/pthread/pthread_testcancel
    basic/sys_select/select
    basic/sys_time/select
    basic/sys_wait/waitpid
    signal/ppoll-block-sleep-raise-write
    signal/ppoll-block-sleep-write-raise
)

for skip in "${skips[@]}"
do
    mkdir -p out.known/redox/"$(dirname "${skip}")"
    echo "skipped" > out.known/redox/"${skip}.out"
done

cp -t out -R out.known/redox

# Create runner script
mkdir -p "${COOKBOOK_STAGE}/usr/bin"
cat > "${COOKBOOK_STAGE}/usr/bin/os-test-runner" <<EOF
#!/usr/bin/env bash
set -e
cd /home/user/os-test

echo "Ensuring executables are newer than sources"
find . -type f -perm /111 -exec touch '{}' ';'

echo "Ensuring outputs are newer than sources and executables"
find out -type f -exec touch '{}' ';'

make test
make html
make json
EOF
chmod +x "${COOKBOOK_STAGE}/usr/bin/os-test-runner"
"""

[package]
dependencies = [
    "gcc13",
    "gnu-binutils",
    "gnu-grep",
    "gnu-make",
    "libarchive",
    "sed",
]
