From e7e477962c35aaf73d81e74b7f7f2ca40bc98b7a Mon Sep 17 00:00:00 2001 From: Daniel Agar Date: Thu, 22 Aug 2019 15:11:32 -0400 Subject: [PATCH] snapdragon fix sanity test and add to Jenkins hardware --- .ci/Jenkinsfile-hardware_snapdragon | 41 +++++++++++++ boards/atlflight/eagle/CMakeLists.txt | 10 ++++ .../scripts}/px4_snapflight_sanitytest.sh | 58 +++++++------------ 3 files changed, 73 insertions(+), 36 deletions(-) create mode 100644 .ci/Jenkinsfile-hardware_snapdragon rename {Tools => boards/atlflight/eagle/scripts}/px4_snapflight_sanitytest.sh (83%) diff --git a/.ci/Jenkinsfile-hardware_snapdragon b/.ci/Jenkinsfile-hardware_snapdragon new file mode 100644 index 0000000000..39d2b0998d --- /dev/null +++ b/.ci/Jenkinsfile-hardware_snapdragon @@ -0,0 +1,41 @@ +#!/usr/bin/env groovy + +pipeline { + agent none + stages { + stage('Build and Verify') { + + agent { + label 'snapdragon' + } + steps { + sh 'export' + sh 'make distclean' + sh 'ccache -z' + sh 'git fetch --tags' + sh 'make eagle_default' + sh 'ccache -s' + // sanity check + sh 'adb devices' + sh 'make eagle_default sanity' + } + options { + timeout(time: 30, unit: 'MINUTES') + } + + } + + } // stages + environment { + CCACHE_DIR = '/tmp/ccache' + CI = true + ARM_CROSS_GCC_ROOT="/home/jenkins/Qualcomm/ARM_Tools/gcc-4.9-2014.11" + HEXAGON_ARM_SYSROOT="/home/jenkins/Qualcomm/qrlinux_sysroot" + HEXAGON_SDK_ROOT="/home/jenkins/Qualcomm/Hexagon_SDK/3.0" + HEXAGON_TOOLS_ROOT="/home/jenkins/Qualcomm/HEXAGON_Tools/7.2.12/Tools" + } + options { + buildDiscarder(logRotator(numToKeepStr: '20', artifactDaysToKeepStr: '30')) + timeout(time: 60, unit: 'MINUTES') + } +} diff --git a/boards/atlflight/eagle/CMakeLists.txt b/boards/atlflight/eagle/CMakeLists.txt index d508e4c6d8..79a0d0e2da 100644 --- a/boards/atlflight/eagle/CMakeLists.txt +++ b/boards/atlflight/eagle/CMakeLists.txt @@ -62,4 +62,14 @@ else() USES_TERMINAL ) + add_custom_target(sanity + COMMAND ./px4_snapflight_sanitytest.sh -i -t + COMMAND cat px4.log + COMMAND cat minidm.log + DEPENDS px4 + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/scripts + COMMENT "uploading px4" + USES_TERMINAL + ) + endif() diff --git a/Tools/px4_snapflight_sanitytest.sh b/boards/atlflight/eagle/scripts/px4_snapflight_sanitytest.sh similarity index 83% rename from Tools/px4_snapflight_sanitytest.sh rename to boards/atlflight/eagle/scripts/px4_snapflight_sanitytest.sh index d62ca20e78..24705af69e 100755 --- a/Tools/px4_snapflight_sanitytest.sh +++ b/boards/atlflight/eagle/scripts/px4_snapflight_sanitytest.sh @@ -37,12 +37,12 @@ readonly EXIT_ERROR=3 # List of expected strings from the apps proc declare -a appsproc_strings_present=( - "on udp port 14556 remote port 14550" + "on udp port 14556 remote port 14550" ) # List of unexpected strings from the apps proc declare -a appsproc_strings_absent=( - "ERROR" + "ERROR" "Getting Bulk data from fastRPC link" "Segmentation fault" ) @@ -65,8 +65,9 @@ result=$RESULT_PASS # Default mini-dm path (needs to be installed in this location or overriden through cmd line minidmPath=~/Qualcomm/Hexagon_SDK/3.0/tools/debug/mini-dm/Linux_Debug + # Default workspace path (parent directory of the script location) -workspace=`pwd`/.. +workspace=`pwd`/../../../.. verifypx4test() { @@ -78,7 +79,7 @@ verifypx4test() { fi echo -e "Verifying test results..." - + # verify the presence of expected stings in the apps proc console log for lineString in "${appsproc_strings_present[@]}" do @@ -126,14 +127,14 @@ verifypx4test() { result=$RESULT_FAIL fi done - + echo -e "Verification complete." - + if [ $result -eq $RESULT_FAIL ]; then echo -e "PX4 test result: FAIL" else echo -e "PX4 test result: PASS" - fi + fi } installpx4() { @@ -150,32 +151,17 @@ installpx4() { # Wait a bit longer after bootup, before copying binaries to the target. sleep 30 adb devices - + echo -e "Now installing PX4 binaries..." # Copy binaries to the target if [ $mode == 0 ]; then # copy default binaries echo -e "Copying the PX4 binaries from the eagle_default build tree..." - adb push $workspace/build/qurt_eagle_default/src/firmware/qurt/libpx4.so /usr/share/data/adsp - adb push $workspace/build/qurt_eagle_default/src/firmware/qurt/libpx4muorb_skel.so /usr/share/data/adsp - adb push $workspace/build/posix_eagle_default/src/firmware/posix/px4 /home/linaro + adb push $workspace/build/atlflight_eagle_qurt-default/platforms/qurt/libpx4.so /usr/share/data/adsp + adb push $workspace/build/atlflight_eagle_qurt-default/platforms/qurt/libpx4muorb_skel.so /usr/share/data/adsp + adb push $workspace/build/atlflight_eagle_default/bin/px4 /home/linaro adb push $workspace/posix-configs/eagle/flight/px4.config /usr/share/data/adsp adb push $workspace/posix-configs/eagle/flight/mainapp.config /home/linaro - elif [ $mode == 1 ]; then - # copy legacy binaries - echo -e "Copying the PX4 binaries from the eagle_legacy build tree..." - adb push $workspace/build/qurt_eagle_legacy/src/firmware/qurt/libpx4.so /usr/share/data/adsp - adb push $workspace/build/qurt_eagle_legacy/src/firmware/qurt/libpx4muorb_skel.so /usr/share/data/adsp - adb push $workspace/build/posix_eagle_legacy/src/firmware/posix/px4 /home/linaro - adb push $workspace/posix-configs/eagle/200qx/px4.config /usr/share/data/adsp - adb push $workspace/posix-configs/eagle/200qx/mainapp.config /home/linaro - else - echo -e "Copying the PX4 binaries from the excelsior_legacy build tree..." - adb push $workspace/build/qurt_excelsior_legacy/src/firmware/qurt/libpx4.so /usr/lib/rfsa/adsp - adb push $workspace/build/qurt_excelsior_legacy/src/firmware/qurt/libpx4muorb_skel.so /usr/lib/rfsa/adsp - adb push $workspace/build/posix_excelsior_legacy/src/firmware/posix/px4 /home/root - adb push $workspace/posix-configs/excelsior/px4.config /usr/lib/rfsa/adsp - adb push $workspace/posix-configs/excelsior/mainapp.config /home/root fi echo -e "Installation complete." @@ -188,13 +174,13 @@ testpx4() { echo -e "SKIPPING test" return 0; fi - + echo -e "Starting PX4 test..." - + # Remove previous instances of the file rm px4.log | true rm minidm.log | true - + # Start mini-dm echo -e "Starting mini-dm..." ${minidmPath}/mini-dm > minidm.log & @@ -207,7 +193,7 @@ testpx4() { exit $EXIT_ERROR fi - + # Start PX4 echo -e "Starting PX4..." if [ $mode == 2 ]; then @@ -224,19 +210,19 @@ testpx4() { echo "[ERROR] PX4 is not running on target!" exit $EXIT_ERROR fi - + # Stop the PX4 process on target adb shell "ps -eaf | grep px4 | grep -v grep | awk '{print $2}' | tr -s ' ' | cut -d' ' -f2 | xargs kill" sleep 5 - + # Stop the mini-dm killall mini-dm - + echo -e "PX4 test complete." - + # Verify the results verifypx4test - + echo -e "For more information, see px4.log and minidm.log." } @@ -281,7 +267,7 @@ while getopts "m:l:ith" opt; usage exit 0 ;; - :) + :) echo "Option -$OPTARG requires an argument" >&2 exit 1;; ?)