Skip to content

Commit

Permalink
Merge pull request #2488 from phiros/travis_add_static_test_group
Browse files Browse the repository at this point in the history
travis: add static tests as a matrix build target
  • Loading branch information
miri64 committed Feb 24, 2015
2 parents 3e2a7a4 + e9e9a1c commit 845fe86
Show file tree
Hide file tree
Showing 3 changed files with 73 additions and 37 deletions.
1 change: 1 addition & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ language: c
cache: apt

env:
- NPROC_MAX=8 BUILDTEST_MCU_GROUP=static-tests
- NPROC_MAX=8 BUILDTEST_MCU_GROUP=avr8
- NPROC_MAX=8 BUILDTEST_MCU_GROUP=msp430
- NPROC_MAX=8 BUILDTEST_MCU_GROUP=x86
Expand Down
45 changes: 28 additions & 17 deletions dist/tools/travis-scripts/build_and_test.sh
Original file line number Diff line number Diff line change
@@ -1,27 +1,39 @@
#!/bin/bash
set -e
#
# Copyright (C) 2015 Philipp Rosenkranz <philipp.rosenkranz@fu-berlin.de>
#
# This file is subject to the terms and conditions of the GNU Lesser
# General Public License v2.1. See the file LICENSE in the top level
# directory for more details.
#

make -s -C ./examples/default info-concurrency
git rebase riot/master || git rebase --abort
set -e

./dist/tools/whitespacecheck/check.sh master || exit
if [[ $BUILDTEST_MCU_GROUP ]]
then
if [ "$BUILDTEST_MCU_GROUP" == "static-tests" ]
then
make -s -C ./examples/default info-concurrency
git rebase riot/master || git rebase --abort

./dist/tools/licenses/check.sh master --diff-filter=MR --error-exitcode=0 || exit
./dist/tools/licenses/check.sh master --diff-filter=AC || exit
./dist/tools/whitespacecheck/check.sh master || exit

./dist/tools/doccheck/check.sh master || exit
./dist/tools/licenses/check.sh master --diff-filter=MR --error-exitcode=0 || exit
./dist/tools/licenses/check.sh master --diff-filter=AC || exit

./dist/tools/externc/check.sh master || exit
./dist/tools/doccheck/check.sh master || exit

# TODO:
# Remove all but `master` parameters to cppcheck (and remove second
# invocation) once all warnings of cppcheck have been taken care of
# in master.
./dist/tools/cppcheck/check.sh master --diff-filter=MR --error-exitcode=0 || exit
./dist/tools/cppcheck/check.sh master --diff-filter=AC || exit
./dist/tools/externc/check.sh master || exit

if [[ $BUILDTEST_MCU_GROUP ]]
then
# TODO:
# Remove all but `master` parameters to cppcheck (and remove second
# invocation) once all warnings of cppcheck have been taken care of
# in master.
./dist/tools/cppcheck/check.sh master --diff-filter=MR --error-exitcode=0 || exit
./dist/tools/cppcheck/check.sh master --diff-filter=AC || exit
./dist/tools/pr_check/pr_check.sh riot/master
exit 0
fi
if [ "$BUILDTEST_MCU_GROUP" == "x86" ]
then

Expand All @@ -32,5 +44,4 @@ then
# - make -C ./tests/unittests all test BOARD=qemu-i386 || exit
fi
./dist/tools/compile_test/compile_test.py
./dist/tools/pr_check/pr_check.sh riot/master
fi
64 changes: 44 additions & 20 deletions dist/tools/travis-scripts/get-pkg-list.py
Original file line number Diff line number Diff line change
@@ -1,36 +1,60 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-

# Copyright (C) 2015 Philipp Rosenkranz <philipp.rosenkranz@fu-berlin.de>
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
# 02110-1301 USA

import os

arm_mcu_groups = ["arm7", "cortex_m0", "cortex_m3", "cortex_m3_2", "cortex_m4"]
msp_mcu_groups = ["msp430"]
x86_mcu_groups = ["x86"]
avr8_mcu_groups = ["avr8"]
known_mcu_groups = arm_mcu_groups + msp_mcu_groups + x86_mcu_groups + avr8_mcu_groups
static_tests_groups = ["static-tests"]
known_mcu_groups = arm_mcu_groups + msp_mcu_groups + x86_mcu_groups + \
avr8_mcu_groups + static_tests_groups

common_pkgs = ["pcregrep", "libpcre3", "python3", "cppcheck", "doxygen"]
arm_pkgs = ["gcc-arm-none-eabi"]
msp_pkgs = ["gcc-msp430"]
x86_pkgs = ["qemu-system-x86", "g++-multilib", "gcc-multilib", \
"build-essential"]
avr8_pkgs = ["gcc-avr", "binutils-avr", "avr-libc"]
all_mcu_pkgs = arm_pkgs + msp_pkgs + x86_pkgs + avr8_pkgs
common_pkgs = ["pcregrep", "libpcre3", "python3"]
arm_pkgs = ["gcc-arm-none-eabi"]
msp_pkgs = ["gcc-msp430"]
x86_pkgs = ["qemu-system-x86", "g++-multilib", "gcc-multilib",
"build-essential"]
avr8_pkgs = ["gcc-avr", "binutils-avr", "avr-libc"]
static_tests_pkgs = ["doxygen", "cppcheck"]
all_mcu_pkgs = arm_pkgs + msp_pkgs + \
x86_pkgs + avr8_pkgs + static_tests_pkgs


pkgs_to_install = common_pkgs
if "BUILDTEST_MCU_GROUP" in os.environ:
mcu_group = os.environ["BUILDTEST_MCU_GROUP"]
if mcu_group not in known_mcu_groups:
pkgs_to_install += all_mcu_pkgs
elif mcu_group in arm_mcu_groups:
pkgs_to_install += arm_pkgs
elif mcu_group in msp_mcu_groups:
pkgs_to_install += msp_pkgs
elif mcu_group in x86_mcu_groups:
pkgs_to_install += x86_pkgs
elif mcu_group in avr8_mcu_groups:
pkgs_to_install += avr8_pkgs
mcu_group = os.environ["BUILDTEST_MCU_GROUP"]
if mcu_group not in known_mcu_groups:
pkgs_to_install += all_mcu_pkgs
elif mcu_group in arm_mcu_groups:
pkgs_to_install += arm_pkgs
elif mcu_group in msp_mcu_groups:
pkgs_to_install += msp_pkgs
elif mcu_group in x86_mcu_groups:
pkgs_to_install += x86_pkgs
elif mcu_group in avr8_mcu_groups:
pkgs_to_install += avr8_pkgs
elif mcu_group in static_tests_groups:
pkgs_to_install += static_tests_pkgs
else:
pkgs_to_install += all_mcu_pkgs
pkgs_to_install += all_mcu_pkgs

print " ".join(pkgs_to_install)

0 comments on commit 845fe86

Please sign in to comment.