Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 98e0f8ef authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Cert: Add a script to set up the on device cert test"

parents e05c7d38 2fbadea6
Loading
Loading
Loading
Loading
+157 −0
Original line number Diff line number Diff line
#!/bin/bash

DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"

function menu-adb() {
    TMP=$(adb devices -l | grep -v "List of device" | awk '{ print $1 }')
    # TODO(optedoblivion): If the device doesn't have a name (offline), it misnames them
    NTMP=$(adb devices -l | grep -v "List of device" | awk '{ print $6 }' | cut -d ':' -f 2)
    SERIALS=($TMP)
    DEVICES=($NTMP)
    LEN=${#SERIALS[@]}
    result=0
    if [ $LEN -lt 1 ]; then
        echo "No devices connected!"
        exit 1
    fi

    if [ "$LEN" == "" ]; then
        LEN=0
    fi

    answer=0

    DEVICE_NAME="$1 device"

    if [ $LEN -gt 1 ]; then
        echo "+-------------------------------------------------+" 1>&2
        echo "| Choose a ${DEVICE_NAME}:                         " 1>&2
        echo "+-------------------------------------------------+" 1>&2
        echo "|                                                 |" 1>&2
        let fixed_len=$LEN-1
        for i in `seq 0 $fixed_len`;
        do
            serial=${SERIALS[i]}
            device=${DEVICES[i]}
            echo "| $i) $serial $device" 1>&2
            ## TODO[MSB]: Find character count, fill with space and ending box wall
        done
        echo "|                                                 |" 1>&2
        echo "+-------------------------------------------------+" 1>&2
        echo 1>&2
        echo -n "Index number: " 1>&2
        read answer
    fi

    if [ $answer -ge $LEN ]; then
        echo
        echo "Please choose a correct index!" 1>&2
        echo
        exit 1
    fi

    SERIAL=${SERIALS[$answer]}
    echo $SERIAL
}

function UpFind {
    while [[ $PWD != / ]] ; do
        rc=$(find "$PWD" -maxdepth 1 "$@")
        if [ -n "$rc" ]; then
            echo $(dirname "$rc")
            return
        fi
        cd ..
    done
}


function get-android-root() {
    android_root=$(UpFind -name out -type d)
    if [[ -z $android_root ]] ; then
        echo
        echo "Needs to be ran in the android tree"
        echo
        exit 1
    fi
    echo "${android_root}"
}

function banner() {
    echo
    echo "GD On Device Cert Test"
    echo
}

## Main
banner

DRY_RUN=""
DO_BUILD=0
if [ $# -gt 0 ]; then
    for var in "$@"
    do
        if [ "$var" == "-h" ]; then
            echo
            echo "Usage: $0 [-h|-d]"
            echo
            echo "Available Options:"
            echo "=================="
            echo " -h | Help(this) Menu"
            echo " -d | Dry run; just prints commands"
            echo
            exit 0
        elif [ "$var" == "-d" ]; then
            DRY_RUN="echo"
        elif [ "$var" == "-b" ]; then
            DO_BUILD=1
        fi
    done
fi

## Verify devices connected and sane
DUT_SERIAL="$(menu-adb DUT)"
DUT_ADB="adb -s ${DUT_SERIAL}"
DUT_NAME="$(adb devices -l | grep -v "List of device" | grep ${DUT_SERIAL} | awk '{ print $6 }' | cut -d ':' -f 2)"

CERT_SERIAL="$(menu-adb CERT)"
CERT_ADB="adb -s ${CERT_SERIAL}"
CERT_NAME="$(adb devices -l | grep -v "List of device" | grep ${CERT_SERIAL} | awk '{ print $6 }' | cut -d ':' -f 2)"

if [ "${CERT_SERIAL}" == "${DUT_SERIAL}" ]; then
    echo
    echo "ERROR: CERT and DUT cannot be the same device, or you only have one device connected!"
    echo
    exit 1
fi

## Start builds
if [ $DO_BUILD == 1 ]; then
    $DRY_RUN cd $(get-android-root)
    $DRY_RUN . build/envsetup.sh
    #DUT
    $DRY_RUN lunch $DUT_NAME
    $DRY_RUN cd $(get-android-root)/packages/modules/Bluetooth/system/gd
    $DRY_RUN mma -j `cat /proc/cpuinfo | grep core | wc -l`
    $DRY_RUN cd $(get-android-root)
    # CERT
    $DRY_RUN lunch $CERT_NAME
    $DRY_RUN cd $(get-android-root)/packages/modules/Bluetooth/system/gd
    $DRY_RUN mma -j `cat /proc/cpuinfo | grep core | wc -l`
    $DRY_RUN cd $(get-android-root)
fi

## Set android devices in config
pushd .
cd "${DIR}"
# Reset in case user chooses different item in menu
git co android_devices_config.json
popd
$DRY_RUN sed -i "s/\"DUT\"/\"${DUT_SERIAL}\"/g" ${DIR}/android_devices_config.json
$DRY_RUN sed -i "s/\"CERT\"/\"${CERT_SERIAL}\"/g" ${DIR}/android_devices_config.json

## ACTS
#$DRY_RUN source $(get-android-root)/packages/modules/Bluetooth/system/gd/cert/set_up_acts.sh

## Start test
$DRY_RUN $(get-android-root)/packages/modules/Bluetooth/system/gd/cert/run_device_cert.sh