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 <kevin@koconnor.net>
This commit is contained in:
40
scripts/travis-build.sh
Executable file
40
scripts/travis-build.sh
Executable file
@@ -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
|
||||
33
scripts/travis-install.sh
Executable file
33
scripts/travis-install.sh
Executable file
@@ -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
|
||||
Reference in New Issue
Block a user