aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.travis.yml13
-rwxr-xr-xscripts/travis-build.sh40
-rwxr-xr-xscripts/travis-install.sh33
-rw-r--r--test/configs/beaglebone.config2
-rwxr-xr-xtest/travis-build.sh35
5 files changed, 76 insertions, 47 deletions
diff --git a/.travis.yml b/.travis.yml
index a7230a03..ba0dec67 100644
--- a/.travis.yml
+++ b/.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
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
diff --git a/test/configs/beaglebone.config b/test/configs/beaglebone.config
deleted file mode 100644
index 9e56034b..00000000
--- a/test/configs/beaglebone.config
+++ /dev/null
@@ -1,2 +0,0 @@
-# Base config file for beaglebone
-CONFIG_MACH_PRU=y
diff --git a/test/travis-build.sh b/test/travis-build.sh
deleted file mode 100755
index 58be7768..00000000
--- a/test/travis-build.sh
+++ /dev/null
@@ -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