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
|
||||
|
||||
addons:
|
||||
apt:
|
||||
sourceline: 'ppa:team-gcc-arm-embedded/ppa'
|
||||
packages:
|
||||
- gcc-avr
|
||||
- avr-libc
|
||||
- wget
|
||||
|
||||
env:
|
||||
- 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
|
||||
install: ./scripts/travis-install.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