#!/bin/bash
export STANDALONE=yes
export ENVIRON_DEFAULT=yes
export HOST=$(uname -m | sed -e 's/i.86/i386/;s/arm.*/arm/;s/ppc64.*/ppc64/')
export PRETTY_PRINT_STACKS=no
export ARCH=arm
export ARCH_NAME=arm
export PROCESSOR=cortex-a15
echo BUILD_HEAD=
trap 'rm -f $cleanup' EXIT
ERRATATXT=`mktemp`
cleanup="$ERRATATXT $cleanup"
base64 -d << 'BIN_EOF' | zcat > $ERRATATXT || exit 2
H4sICIvjOl4AA2VycmF0YS50eHQAvZE/b8IwEMX3fIqTMtPWTnAabwywtF27Ro45iEXOifwnIt++
VoFKRS1VF9769O737i5ffJdc3NZf/k/KctADkQlwlgQy1lAkOKCz2MOVJPhIpNyckoxDh0fYmr0J
PjkTOm8Gex25JLP8HgvVWOwqxWtRl0+nwuVD/Uulk68ciVLCy/ubhJGihI05wmrldFdw0LPuMd0o
2oAOlNbofVa1oi1FwZh6Xl4YjN1ifA5PoMczbE2xVwEhdAjrVwZjN3sIhhLD4d74BPOZ0JVabjVy
3hZfGP4fzC5t4lTqDMbCYaJm9No0kx5jM9j7/OMDNZHCJsYCAAA=
BIN_EOF
chmod +x $ERRATATXT
export ERRATATXT
bin=`mktemp`
cleanup="$bin $cleanup"
base64 -d << 'BIN_EOF' | zcat > $bin || exit 2
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
4R6ljvs1NncS7hVzv/Abx7IsxRgnAQA=
BIN_EOF
chmod +x $bin
RUNTIME_arch_run=`mktemp`
cleanup="$RUNTIME_arch_run $cleanup"
base64 -d << 'BIN_EOF' | zcat > $RUNTIME_arch_run || exit 2
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
BIN_EOF
chmod +x $RUNTIME_arch_run
exec {stdout}>&1
RUNTIME_log_stdout () { cat >&$stdout; }
RUNTIME_log_stderr () { cat >&2; }
: "${RUNTIME_arch_run?}"
: ${MAX_SMP:=$(getconf _NPROCESSORS_ONLN)}
: ${TIMEOUT:=90s}

PASS() { echo -ne "\e[32mPASS\e[0m"; }
SKIP() { echo -ne "\e[33mSKIP\e[0m"; }
FAIL() { echo -ne "\e[31mFAIL\e[0m"; }

extract_summary()
{
    local cr=$'\r'
    tail -3 | grep '^SUMMARY: ' | sed 's/^SUMMARY: /(/;s/'"$cr"'\{0,1\}$/)/'
}

# We assume that QEMU is going to work if it tried to load the kernel
premature_failure()
{
    local log="$(eval $(get_cmdline _NO_FILE_4Uhere_) 2>&1)"

    echo "$log" | grep "_NO_FILE_4Uhere_" |
        grep -q -e "could not \(load\|open\) kernel" -e "error loading" &&
        return 1

    RUNTIME_log_stderr <<< "$log"

    echo "$log"
    return 0
}

get_cmdline()
{
    local kernel=$1
    echo "TESTNAME=$testname TIMEOUT=$timeout ACCEL=$accel $RUNTIME_arch_run $kernel -smp $smp $opts"
}

skip_nodefault()
{
    [ "$run_all_tests" = "yes" ] && return 1
    [ "$STANDALONE" != "yes" ] && return 0

    while true; do
        read -r -p "Test marked not to be run by default, are you sure (y/N)? " yn
        case $yn in
            "Y" | "y" | "Yes" | "yes")
                return 1
                ;;
            "" | "N" | "n" | "No" | "no" | "q" | "quit" | "exit")
                return 0
                ;;
        esac
    done
}

function print_result()
{
    # output test results in a TAP format
    # https://testanything.org/tap-version-13-specification.html

    local status="$1"
    local testname="$2"
    local summary="$3"
    local reason="$4"

    if [ -z "$reason" ]; then
        echo "`$status` $testname $summary"
    else
        echo "`$status` $testname ($reason)"
    fi
}

function run()
{
    local testname="$1"
    local groups="$2"
    local smp="$3"
    local kernel="$4"
    local opts="$5"
    local arch="$6"
    local check="${CHECK:-$7}"
    local accel="${ACCEL:-$8}"
    local timeout="${9:-$TIMEOUT}" # unittests.cfg overrides the default

    if [ -z "$testname" ]; then
        return
    fi

    if [ -n "$only_tests" ] && ! grep -qw "$testname" <<<$only_tests; then
        return
    fi

    if [ -n "$only_group" ] && ! grep -qw "$only_group" <<<$groups; then
        return
    fi

    if [ -z "$only_group" ] && grep -qw "nodefault" <<<$groups &&
            skip_nodefault; then
        print_result "SKIP" $testname "" "test marked as manual run only"
        return;
    fi

    if [ -n "$arch" ] && [ "$arch" != "$ARCH" ]; then
        print_result "SKIP" $testname "" "$arch only"
        return 2
    fi

    # check a file for a particular value before running a test
    # the check line can contain multiple files to check separated by a space
    # but each check parameter needs to be of the form <path>=<value>
    for check_param in "${check[@]}"; do
        path=${check_param%%=*}
        value=${check_param#*=}
        if [ "$path" ] && [ "$(cat $path)" != "$value" ]; then
            print_result "SKIP" $testname "" "$path not equal to $value"
            return 2
        fi
    done

    last_line=$(premature_failure > >(tail -1)) && {
        print_result "SKIP" $testname "" "$last_line"
        return 77
    }

    cmdline=$(get_cmdline $kernel)
    if grep -qw "migration" <<<$groups ; then
        cmdline="MIGRATION=yes $cmdline"
    fi
    if [ "$verbose" = "yes" ]; then
        echo $cmdline
    fi

    # extra_params in the config file may contain backticks that need to be
    # expanded, so use eval to start qemu.  Use "> >(foo)" instead of a pipe to
    # preserve the exit status.
    summary=$(eval $cmdline 2> >(RUNTIME_log_stderr) \
                             > >(tee >(RUNTIME_log_stdout $kernel) | extract_summary))
    ret=$?
    [ "$STANDALONE" != "yes" ] && echo > >(RUNTIME_log_stdout $kernel)

    if [ $ret -eq 0 ]; then
        print_result "PASS" $testname "$summary"
    elif [ $ret -eq 77 ]; then
        print_result "SKIP" $testname "$summary"
    elif [ $ret -eq 124 ]; then
        print_result "FAIL" $testname "" "timeout; duration=$timeout"
    elif [ $ret -gt 127 ]; then
        print_result "FAIL" $testname "" "terminated on SIG$(kill -l $(($ret - 128)))"
    else
        print_result "FAIL" $testname "$summary"
    fi

    return $ret
}

#
# Probe for MAX_SMP, in case it's less than the number of host cpus.
#
# This probing currently only works for ARM, as x86 bails on another
# error first. Also, this probing isn't necessary for any ARM hosts
# running kernels later than v4.3, i.e. those including ef748917b52
# "arm/arm64: KVM: Remove 'config KVM_ARM_MAX_VCPUS'". So, at some
# point when maintaining the while loop gets too tiresome, we can
# just remove it...
while $RUNTIME_arch_run _NO_FILE_4Uhere_ -smp $MAX_SMP \
		|& grep -qi 'exceeds max CPUs'; do
	MAX_SMP=$((MAX_SMP >> 1))
done
run pci-test pci 1 $bin '' '' '' '' ''
