#!/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=arm64
export ARCH_NAME=aarch64
export PROCESSOR=cortex-a57
echo BUILD_HEAD=
trap 'rm -f $cleanup' EXIT
bin=`mktemp`
cleanup="$bin $cleanup"
base64 -d << 'BIN_EOF' | zcat > $bin || exit 2
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
+J7E8yRnFcfzb2R68Vr4WwEA
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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
AaJdQPN3KwAA
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 timer timer 1 $bin '' arm64 '' '' 10s
