metadata:
    name: multinode-target
    format: "Lava-Test-Shell Test Definition 1.0"
    description: "Run android test that requires host side. Target side.
                  The value put in params section in this file is default, user can overwrite them by the values in JSON file.
                  Test can be used with different host side tests"
    maintainer:
        -  milosz.wasilewski@linaro.org
    os:
        - android
    devices:
        - panda
        - panda-es
        - vexpress-a9
        - vexpress-tc2
        - juno
        - mn-nexus9
    scope:
        - functional
        - performance

params:
    TEST_NAME: "android-cts-5.0-armv8"
    # ADB_LINK parameter is used to pass proper device
    # identification to the host side. Default is ETH
    # which means adb-over-ethernet is used
    ADB_LINK: "ETH"
    # timeout value to wait until the ip ia available for ping LAVA_SERVER_IP
    PING_TIMEOUT: 10

run:
    steps:
        - cat /system/build.prop
        - getprop
        - SERIALNO=$(getprop ro.serialno)
        - IPADDR=$(getprop dhcp.eth0.ipaddress)
        - if [ -z "${IPADDR}" ]; then
        - IPADDR=$(ifconfig eth0|grep "inet addr:")
        - IPADDR=${IPADDR#*:}
        - IPADDR=${IPADDR%% *}
        - fi
        - if [ $ADB_LINK != "ETH" ] && [ ! -z $SERIALNO ]
        - then
        - IPADDR=$SERIALNO
        - fi
        - if [ $ADB_LINK = "ETH" ] && [ ! -z $IPADDR ]
        - then
        - cat /proc/sys/kernel/printk > /data/local/tmp/kmsg_levels
        - echo '1 1 1 1' > /proc/sys/kernel/printk
        - getprop service.adb.tcp.port
        - setprop service.adb.tcp.port 5555
        - setprop service.adb.root 1
        - stop adbd
        - start adbd
        - ping_count=0
        - while ! LC_ALL=C ping -W1 -c1 ${LAVA_SERVER_IP} ; do
        - sleep 1; ping_count=$((ping_count + 1)); [ ${ping_count} -ge ${PING_TIMEOUT} ] && exit 1
        - done
        - fi
        - if [ -z $SERIALNO ] && [ -z $IPADDR ]
        - then
        # if there is no serial number or IP address available, _MISSING_ is passed to the host
        - IPADDR="_MISSING_"
        - fi
        - lava-send $TEST_NAME-send-ip ipaddr=$IPADDR
        - if [ -f /data/local/tmp/kmsg_levels ]
        - then
        - cat /data/local/tmp/kmsg_levels > /proc/sys/kernel/printk
        - fi
        # sleep here to allow for output of kernel messages
        - sleep 10
        - lava-sync $TEST_NAME-finished
        - sleep 10
        - lava-test-case test-finished --shell true
