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