浏览代码

only run tests when build was without warnings

Steffen Jaeckel 11 年之前
父节点
当前提交
a06e40aa17
共有 1 个文件被更改,包括 15 次插入1 次删除
  1. 15 1
      build.sh

+ 15 - 1
build.sh

@@ -1,9 +1,23 @@
 #!/bin/bash
 echo "$1 ($2, $3)..."
+
 make clean 1>/dev/null 2>/dev/null
+
 echo -n "building..."
-CFLAGS="$2 $CFLAGS $4" EXTRALIBS="$5" make -f $3 test tv_gen 1>gcc_1.txt 2>gcc_2.txt || (echo "build $1 failed see gcc_2.txt for more information" && cat gcc_2.txt && exit 1)
+
+CFLAGS="$2 $CFLAGS $4" EXTRALIBS="$5" make -f $3 test tv_gen 1>gcc_1.txt 2>gcc_2.txt
+mret=$?
+cnt=$(wc -l < gcc_2.txt)
+# ignore 2 lines since ar prints to stderr instead of stdout and ar is called for 
+# $(LIBNAME) and testprof/$(LIBTEST_S)
+if [[ $mret -ne 0 ]] || [[ $cnt -gt 2 ]]; then
+   echo "build $1 failed! printing gcc_2.txt now for convenience"
+   cat gcc_2.txt
+   exit 1
+fi
+
 echo -n "testing..."
+
 if [ -a test ] && [ -f test ] && [ -x test ]; then
    ((./test >test_std.txt 2>test_err.txt && ./tv_gen > tv.txt) && echo "$1 test passed." && echo "y" > testok.txt) || (echo "$1 test failed, look at test_err.txt" && exit 1)
    if find *_tv.txt -type f 1>/dev/null 2>/dev/null ; then