#!/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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
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 selftest-vectors-user selftest 1 $bin -append\ \'vectors-user\' '' '' '' ''
