#!/bin/bash set -ex # Create variables file to use with lava-test-plans submit_for_testing.py function create_testing_variables_file () { cat << EOF > $1 "LAVA_JOB_PRIORITY": "$LAVA_JOB_PRIORITY" "PROJECT": "projects/lt-qcom/" "PROJECT_NAME": "lt-qcom" "OS_INFO": "kernel" "BUILD_URL": "$BUILD_URL" "BUILD_NUMBER": "$BUILD_NUMBER" "KERNEL_REPO": "$KERNEL_REPO" "KERNEL_BRANCH": "$KERNEL_BRANCH" "KERNEL_COMMIT": "$KERNEL_COMMIT" "KERNEL_DESCRIBE": "$KERNEL_DESCRIBE" "KERNEL_CONFIG": "$KERNEL_CONFIG" "TOOLCHAIN": "$KERNEL_TOOLCHAIN" "DEPLOY_OS": "oe" "BOOT_URL": "$BOOT_URL" "BOOT_URL_COMP": "$BOOT_URL_COMP" "LXC_BOOT_FILE": "$LXC_BOOT_FILE" "ROOTFS_URL": "$ROOTFS_URL" "ROOTFS_URL_COMP": "$ROOTFS_URL_COMP" "LXC_ROOTFS_FILE": "$LXC_ROOTFS_FILE" "SMOKE_TESTS": "$SMOKE_TESTS" "WLAN_DEVICE": "$WLAN_DEVICE" "ETH_DEVICE": "$ETH_DEVICE" "DEQP_FAIL_LIST": "$DEQP_FAIL_LIST" EOF } case "${MACHINE}" in apq8016-sbc|apq8096-db820c|sdm845-mtp|sdm845-db845c|qcs404-evb-4000|sm8150-mtp|sm8250-mtp|sm8350-mtp) export SMOKE_TESTS="pwd, uname -a, ip a, vmstat, lsblk, lscpu" export WLAN_DEVICE="wlan0" export ETH_DEVICE="eth0" if [ ${MACHINE} = "apq8016-sbc" ]; then export LAVA_DEVICE_TYPE="dragonboard-410c" export DEQP_FAIL_LIST="deqp-freedreno-a307-fails.txt" elif [ ${MACHINE} = "apq8096-db820c" ]; then export LAVA_DEVICE_TYPE="dragonboard-820c" export DEQP_FAIL_LIST="deqp-freedreno-a530-fails.txt" elif [ ${MACHINE} = "sdm845-db845c" ]; then export LAVA_DEVICE_TYPE="dragonboard-845c" export DEQP_FAIL_LIST="deqp-freedreno-a630-fails.txt" elif [ ${MACHINE} = "sdm845-mtp" ]; then export LAVA_DEVICE_TYPE="sdm845-mtp" elif [ ${MACHINE} = "qcs404-evb-4000" ]; then export LAVA_DEVICE_TYPE="qcs404-evb-4k" else export LAVA_DEVICE_TYPE="${MACHINE}" fi ;; *) echo "No LAVA test for ${MACHINE}" exit ;; esac rm -rf lava-test-plans if [ "$LAVA_TEST_PLANS_GIT_REPO" ]; then git clone --depth 1 $LAVA_TEST_PLANS_GIT_REPO lava-test-plans else git clone --depth 1 https://github.com/Linaro/lava-test-plans.git fi # lava-test-plans setup pushd lava-test-plans git rev-parse HEAD # TODO: workaround while project requirements file is created again if [ ! -f requirements.txt ]; then cat << EOF > requirements.txt requests ruamel.yaml Jinja2 docker configobj EOF fi pip3 install -r requirements.txt popd # Select which testcases will be send to LAVA # - bootrr on integration, mainline and release. # - smoke on integration, mainline and release with Dragonboard machines. case "${MACHINE}" in apq8016-sbc|apq8096-db820c|sdm845-db845c) SMOKE_TEST_CASE=true DESKTOP_TEST_CASE=true MULTIMEDIA_TEST_CASE=true ;; esac export LAVA_JOB_PRIORITY="high" export BOOT_URL=${PUBLISH_SERVER}${PUB_DEST}/${BOOT_FILE} export BOOT_URL_COMP= export LXC_BOOT_FILE=$(basename ${BOOT_URL}) create_testing_variables_file out/submit_for_testing_bootrr.yaml cd lava-test-plans ./submit_for_testing.py \ --device-type ${LAVA_DEVICE_TYPE} \ --build-number ${KERNEL_DESCRIBE} \ --lava-server ${LAVA_SERVER} \ --qa-server ${QA_SERVER} \ --qa-server-team qcomlt \ --qa-server-project ${QA_SERVER_PROJECT} \ --testplan-device-path lava_test_plans/projects/lt-qcom/devices \ ${DRY_RUN} \ --test-case testcases/kernel-bootrr.yaml \ --variables ../out/submit_for_testing_bootrr.yaml cd .. if [ $SMOKE_TEST_CASE = true ]; then export LAVA_JOB_PRIORITY="medium" export BOOT_URL=${PUBLISH_SERVER}${PUB_DEST}/${BOOT_ROOTFS_FILE} export BOOT_URL_COMP= export LXC_BOOT_FILE=$(basename ${BOOT_URL}) export ROOTFS_URL=${PUBLISH_SERVER}${PUB_DEST}/${ROOTFS_FILE} export ROOTFS_URL_COMP="gz" export LXC_ROOTFS_FILE=$(basename ${ROOTFS_FILE} .gz) create_testing_variables_file out/submit_for_testing_rootfs.yaml cd lava-test-plans ./submit_for_testing.py \ --device-type ${LAVA_DEVICE_TYPE} \ --build-number ${KERNEL_DESCRIBE} \ --lava-server ${LAVA_SERVER} \ --qa-server ${QA_SERVER} \ --qa-server-team qcomlt \ --qa-server-project ${QA_SERVER_PROJECT} \ --testplan-device-path lava_test_plans/projects/lt-qcom/devices \ ${DRY_RUN} \ --test-case testcases/kernel-smoke.yaml \ --variables ../out/submit_for_testing_rootfs.yaml cd .. fi if [ $DESKTOP_TEST_CASE = true ] || [ $MULTIMEDIA_TEST_CASE = true ]; then export LAVA_JOB_PRIORITY="medium" export BOOT_URL=${PUBLISH_SERVER}${PUB_DEST}/${BOOT_ROOTFS_FILE} export BOOT_URL_COMP= export LXC_BOOT_FILE=$(basename ${BOOT_URL}) export ROOTFS_URL=${PUBLISH_SERVER}${PUB_DEST}/${ROOTFS_DESKTOP_FILE} export ROOTFS_URL_COMP="gz" export LXC_ROOTFS_FILE=$(basename ${ROOTFS_DESKTOP_FILE} .gz) create_testing_variables_file out/submit_for_testing_rootfs_desktop.yaml fi if [ $DESKTOP_TEST_CASE = true ]; then cd lava-test-plans ./submit_for_testing.py \ --device-type ${LAVA_DEVICE_TYPE} \ --build-number ${KERNEL_DESCRIBE} \ --lava-server ${LAVA_SERVER} \ --qa-server ${QA_SERVER} \ --qa-server-team qcomlt \ --qa-server-project ${QA_SERVER_PROJECT} \ --testplan-device-path lava_test_plans/projects/lt-qcom/devices \ ${DRY_RUN} \ --test-case testcases/kernel-desktop.yaml \ --variables ../out/submit_for_testing_rootfs_desktop.yaml cd .. fi if [ $MULTIMEDIA_TEST_CASE = true ]; then cd lava-test-plans ./submit_for_testing.py \ --device-type ${LAVA_DEVICE_TYPE} \ --build-number ${KERNEL_DESCRIBE} \ --lava-server ${LAVA_SERVER} \ --qa-server ${QA_SERVER} \ --qa-server-team qcomlt \ --qa-server-project ${QA_SERVER_PROJECT} \ --testplan-device-path lava_test_plans/projects/lt-qcom/devices \ ${DRY_RUN} \ --test-case testcases/kernel-multimedia.yaml \ --variables ../out/submit_for_testing_rootfs_desktop.yaml cd .. fi