#!/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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
k3isTfzVfwBxaoc0eF8BAA==
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 micro-bench nodefault\,micro-bench 2 $bin '' arm64 '' kvm ''
