#!/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=x86_64
export ARCH_NAME=x86_64
export PROCESSOR=x86_64
echo BUILD_HEAD=
trap 'rm -f $cleanup' EXIT
bin=`mktemp`
cleanup="$bin $cleanup"
base64 -d << 'BIN_EOF' | zcat > $bin || exit 2
H4sICH3t7WYAA3JlYWxtb2RlLmZsYXQA7Jx/XFRV3sfPDMM4EjpIZrySEtOesNzSIldWM0RprWyj
NLPUzXbtjM9mZhuU9dQTOhBMIllRykSuOuxmZRv5+PhcqJcNPxQsS1QqNNRR/DEIAv5IQJF5vudz
7h2GGWDd/eP555nj695z7jnv7+f8PvfecwdfT5p+r06nY5rTsxAmrqYnMBZHfluLjI9jMczIYtkQ
dg3SWQQdCfJYeps8QtV4pIu0JfJ49WbGxtzCyF6mG8hT7qbjWXlMZ/IwqMeM4ykLfNNjmTy09GRK
N0yi8GJ5pDB5aOkPUzrrwRnVYgdd0AVd0AVd0AVd0AVd0AVd0AVd0P1/c/rCz4YKv/OhR47xVf/C
PyUukjFe9u03YcysuyY6jZF3/WDyTj2VwJiJcUW8cufU5DhzXDnunCpzjJObi9uY+UbnqWVEjHUi
rUqk8q+YMFzyACk+ym3H+WPcVsq/Zna6LgojGa6IsvJzn/KMvSmPW/gKPXcwO/mJBu4wIGDiDhMC
4dwRjkAEd0QgMJg7BiMQxR1RCERzRzQCMdwRg8BI7hhp59ZJUXaW2p9XGKPsaXmU45N8Hi+zWJfq
mTl9vY4Xi2LctnILYxZu/h8TnbaGD7JkvXlbIrHWUp2Inabn8XteP8yV34nIXyEpvuo/h8EMJ9jv
WC5SVgkrHl+a2szXMzt3pOXx9Qby08k3kZ9Ffjj52eRHkL+K/MHk55IfRf4a8qPJzyc/hvx15FM9
HAV5sv25WTdkWpo5ppRbv9GZbyyltrYe7aSA0TOuIO9DnmmkHDNvoOwyB1JemUMoo8xxlEvmJMoi
899IP/O2/Lx/NJquVIfn87eMBXn9OvjYvTmn+HoycjipyGTnKCefTB2V5JO1Yxf5JOCoIp80HNXk
k4yjhnxSctSST9V1uMin6jqO5fEy2UH1yzvF+CkS4YYYroh9KerjeR18Jy9DD9gucGuJjlvbTSn3
cFsV39fGrS5d6ik5+mYQHL3SmSes4qNXimGY+rXX4HNfg4ZqKU9ZqwN3Brc2juG2Mgtf+VqV3+i1
8IqkmoREM+muTKribvNlj4fbarjbLgLrqSVuNVIzWMvH8Dly6Gmqs0jXtsOSNp6lcCnXMMBnQKXQ
6HPquK3EkjbRyFLP0kAebWcp9/GMnSmjue0c133Piy6HYNhuncBt3zRujElp47Y2XtxGsU3cWkaj
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
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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
oCEntPx3D5i3cvBB/LLpv8AMp482KQAA
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()
{
    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 find_word()
{
    grep -Fq " $1 " <<< " $2 "
}

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="$8"
    local timeout="${9:-$TIMEOUT}" # unittests.cfg overrides the default

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

    if [ -n "$only_tests" ] && ! find_word "$testname" "$only_tests"; then
        return
    fi

    if [ -n "$only_group" ] && ! find_word "$only_group" "$groups"; then
        return
    fi

    if [ -z "$only_group" ] && find_word 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

    if [ -n "$accel" ] && [ -n "$ACCEL" ] && [ "$accel" != "$ACCEL" ]; then
        print_result "SKIP" $testname "" "$accel only, but ACCEL=$ACCEL"
        return 2
    elif [ -n "$ACCEL" ]; then
        accel="$ACCEL"
    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 [ -f "$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 $testname) \
                             > >(tee >(RUNTIME_log_stdout $testname $kernel) | extract_summary))
    ret=$?
    [ "$STANDALONE" != "yes" ] && echo > >(RUNTIME_log_stdout $testname $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 realmode '' 1 $bin '' '' '' '' ''
