aboutsummaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2018-02-26 14:20:11 -0500
committerKevin O'Connor <kevin@koconnor.net>2018-02-26 14:58:49 -0500
commit28d70eaf0cf566d4d2bb4338c1ebcd5c071f3b43 (patch)
treec35d371a24bc2d8170d5d0f47f41ec616c4f2aa8 /scripts
parent5d635c525270149d45e0e33316f6986336c02e35 (diff)
downloadkutter-28d70eaf0cf566d4d2bb4338c1ebcd5c071f3b43.tar.gz
kutter-28d70eaf0cf566d4d2bb4338c1ebcd5c071f3b43.tar.xz
kutter-28d70eaf0cf566d4d2bb4338c1ebcd5c071f3b43.zip
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>
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/travis-build.sh40
-rwxr-xr-xscripts/travis-install.sh33
2 files changed, 73 insertions, 0 deletions
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