From f0b6256490b20e00e3d252b92b3775a4caaa1295 Mon Sep 17 00:00:00 2001 From: Anton Maklakov Date: Wed, 28 Jun 2017 11:40:54 +0800 Subject: [PATCH] build: Fix test for the first time 'make clean' and error handling in build_examples Now the tests do not pass Before we had incorrect code of the error code checking in build_examples.sh for that case and did nothing in test_build_system.sh. --- tools/ci/build_examples.sh | 10 +++++++--- tools/ci/test_build_system.sh | 3 +++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/tools/ci/build_examples.sh b/tools/ci/build_examples.sh index 04a1ebf82..c87c141a7 100755 --- a/tools/ci/build_examples.sh +++ b/tools/ci/build_examples.sh @@ -50,6 +50,7 @@ die() { export BATCH_BUILD=1 export V=0 # only build verbose if there's an error +shopt -s lastpipe # Workaround for Bash to use variables in loops (http://mywiki.wooledge.org/BashFAQ/024) RESULT=0 FAILED_EXAMPLES="" @@ -113,9 +114,12 @@ build_example () { # build non-verbose first local BUILDLOG=$(mktemp -t examplebuild.XXXX.log) ( - make clean defconfig - make all 2>&1 | tee "${BUILDLOG}" - ) || { RESULT=$?; FAILED_EXAMPLES+=" ${EXAMPLE_NAME}"; make V=1; } # verbose output for errors + make clean defconfig &> >(tee -a "${BUILDLOG}") && + make all &> >(tee -a "${BUILDLOG}") + ) || { + RESULT=$?; FAILED_EXAMPLES+=" ${EXAMPLE_NAME}" + make V=1 clean defconfig && make V=1 # verbose output for errors + } popd if grep ": warning:" "${BUILDLOG}" 2>&1 >> "${LOG_WARNINGS}"; then diff --git a/tools/ci/test_build_system.sh b/tools/ci/test_build_system.sh index cc7cc9e12..c4da2f8e9 100755 --- a/tools/ci/test_build_system.sh +++ b/tools/ci/test_build_system.sh @@ -48,6 +48,9 @@ function run_tests() print_status "Updating template config..." make defconfig || exit $? + print_status "Try to clean fresh directory..." + make clean || exit $? + BOOTLOADER_BINS="bootloader/bootloader.elf bootloader/bootloader.bin" APP_BINS="app-template.elf app-template.bin"