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:
parent
5d635c5252
commit
28d70eaf0c
13
.travis.yml
13
.travis.yml
|
@ -1,20 +1,13 @@
|
||||||
|
# This is a travis-ci.org continuous integration configuration file.
|
||||||
language: c
|
language: c
|
||||||
|
|
||||||
addons:
|
addons:
|
||||||
apt:
|
apt:
|
||||||
sourceline: 'ppa:team-gcc-arm-embedded/ppa'
|
|
||||||
packages:
|
packages:
|
||||||
- gcc-avr
|
- gcc-avr
|
||||||
- avr-libc
|
- avr-libc
|
||||||
- wget
|
- wget
|
||||||
|
|
||||||
env:
|
install: ./scripts/travis-install.sh
|
||||||
- TARGET=atmega2560-16mhz
|
|
||||||
- TARGET=atmega328-16mhz
|
|
||||||
# - TARGET=beaglebone needs pru-gcc (not out of the box available on Ubuntu)
|
|
||||||
- TARGET=hostsimulator
|
|
||||||
- TARGET=linuxprocess
|
|
||||||
- TARGET=sam3x8e GCC_SRC=https://developer.arm.com/-/media/Files/downloads/gnu-rm/7-2017q4/gcc-arm-none-eabi-7-2017-q4-major-linux.tar.bz2 GCC_DIR=gcc-arm-none-eabi-7-2017-q4-major
|
|
||||||
|
|
||||||
script: ./test/travis-build.sh
|
|
||||||
|
|
||||||
|
script: ./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
|
|
@ -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
|
|
@ -1,2 +0,0 @@
|
||||||
# Base config file for beaglebone
|
|
||||||
CONFIG_MACH_PRU=y
|
|
|
@ -1,35 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
set -eux
|
|
||||||
if [ -z ${TARGET+x} ]; then
|
|
||||||
if [ -z ${1+x} ]; then
|
|
||||||
echo "Need a TARGET as environment variable or first parameter!"
|
|
||||||
exit 1
|
|
||||||
else
|
|
||||||
TARGET="$1"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Target is '$TARGET'"
|
|
||||||
make clean
|
|
||||||
make distclean
|
|
||||||
unset CC
|
|
||||||
cp test/configs/${TARGET}.config .config
|
|
||||||
make olddefconfig
|
|
||||||
|
|
||||||
if [ ! -z ${GCC_SRC+x} ]; then
|
|
||||||
if [ -z ${GCC_DIR+x} ]; then
|
|
||||||
echo "Need a GCC_DIR together with GCC_SRC!"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
if [ -e "$GCC_DIR" ]; then
|
|
||||||
echo "Reusing GCC in '$GCC_DIR'"
|
|
||||||
else
|
|
||||||
echo "Getting GCC from '$GCC_SRC'"
|
|
||||||
wget "$GCC_SRC"
|
|
||||||
echo "Unpacking GCC to '$GCC_DIR'"
|
|
||||||
tar xf $(basename "$GCC_SRC")
|
|
||||||
fi
|
|
||||||
export PATH=$GCC_DIR/bin:$PATH
|
|
||||||
fi
|
|
||||||
|
|
||||||
make V=1
|
|
Loading…
Reference in New Issue