#!/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 pci-test pci 1 $bin '' '' '' '' ''
