From 28d70eaf0cf566d4d2bb4338c1ebcd5c071f3b43 Mon Sep 17 00:00:00 2001 From: Kevin O'Connor Date: Mon, 26 Feb 2018 14:20:11 -0500 Subject: test: Update travis build to include a basic klippy host test Move the travis installation steps from the travis-build.sh script to a new script (scripts/travis-install.sh). Move the travis-build.sh script to the scripts/ directory as well. The data dictionaries built in the compile tests are useful during host software testing, so run all the compile tests sequentially in a single VM and save the data dictionaries after each build. Also, build all the config files found in the test/configs/ directory. Create the python virtualenv environment during the install phase and invoke the klippy.py host software in the build phase to perform a basic host software sanity check. Signed-off-by: Kevin O'Connor --- scripts/travis-build.sh | 40 ++++++++++++++++++++++++++++++++++++++++ scripts/travis-install.sh | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 73 insertions(+) create mode 100755 scripts/travis-build.sh create mode 100755 scripts/travis-install.sh (limited to 'scripts') diff --git a/scripts/travis-build.sh b/scripts/travis-build.sh new file mode 100755 index 00000000..d03d66bd --- /dev/null +++ b/scripts/travis-build.sh @@ -0,0 +1,40 @@ +#!/bin/bash +# Test script for travis-ci.org continuous integration. + +# Stop script early on any error; check variables; be verbose +set -eux + +# Paths to tools installed by travis-install.sh +export PATH=${PWD}/gcc-arm-none-eabi-7-2017-q4-major/bin:${PATH} +PYTHON=${PWD}/python-env/bin/python + + +###################################################################### +# Run compile tests for several different MCU types +###################################################################### + +DICTDIR=${PWD}/dict +mkdir -p ${DICTDIR} + +for TARGET in test/configs/*.config ; do + echo "=============== Test compile $TARGET" + make clean + make distclean + unset CC + cp ${TARGET} .config + make olddefconfig + make V=1 + cp out/klipper.dict ${DICTDIR}/$(basename ${TARGET} .config).dict +done + + +###################################################################### +# Verify klippy host software +###################################################################### + +HOSTDIR=${PWD}/hosttest +mkdir -p ${HOSTDIR} + +echo "=============== Test invoke klippy" +$PYTHON klippy/klippy.py config/example.cfg -i /dev/null -o ${HOSTDIR}/output -v -d ${DICTDIR}/atmega2560-16mhz.dict +$PYTHON klippy/parsedump.py ${DICTDIR}/atmega2560-16mhz.dict ${HOSTDIR}/output > ${HOSTDIR}/output-parsed diff --git a/scripts/travis-install.sh b/scripts/travis-install.sh new file mode 100755 index 00000000..759a8c01 --- /dev/null +++ b/scripts/travis-install.sh @@ -0,0 +1,33 @@ +#!/bin/bash +# Build setup script for travis-ci.org continuous integration testing. +# See travis-build.sh for the actual test steps. + +# Stop script early on any error; check variables; be verbose +set -eux + + +###################################################################### +# Install embedded arm gcc +###################################################################### + +echo "=============== Install embedded arm gcc" +GCC_ARM_URL="https://developer.arm.com/-/media/Files/downloads/gnu-rm/7-2017q4/gcc-arm-none-eabi-7-2017-q4-major-linux.tar.bz2" +GCC_ARM_SHA="96a029e2ae130a1210eaa69e309ea40463028eab18ba19c1086e4c2dafe69a6a gcc-arm-none-eabi-7-2017-q4-major-linux.tar.bz2" +GCC_ARM_FILE="$(basename ${GCC_ARM_URL})" + +wget "$GCC_ARM_URL" +FOUND_SHA=`sha256sum "$GCC_ARM_FILE"` +if [ "$FOUND_SHA" != "$GCC_ARM_SHA" ]; then + echo "ERROR: Mismatch on gcc arm sha256" + exit -1 +fi +tar xf "$GCC_ARM_FILE" + + +###################################################################### +# Create python virtualenv environment +###################################################################### + +echo "=============== Install python virtualenv" +virtualenv python-env +./python-env/bin/pip install cffi==1.6.0 pyserial==3.2.1 greenlet==0.4.10 -- cgit v1.2.3-70-g09d2