Skip to contentSkip to conversation

travis.yml: Prevent 'script' section from premature exit

kvm-unit-tests Wainer dos Santos Moschetta 2 participants 3 messages Jan 13, 2020 – Jan 14, 2020 KVM

lore
Share & tools
lore
#0 lore raw

The 'script' section finishes its execution prematurely whenever a shell's exit is called. If the intention is to force Travis to flag a build/test failure then the correct approach is erroring any build command. In this change, it executes a sub-shell process and exit 1, so that Travis capture the return code and interpret it as a build error.

---
 .travis.yml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
.travis.yml +2 -2
index 091d071..a4405c3 100644
@@ -119,5 +119,5 @@ before_script:
 script:
   - make -j3
   - ACCEL="${ACCEL:-tcg}" ./run_tests.sh -v $TESTS | tee results.txt
-  - if grep -q FAIL results.txt ; then exit 1 ; fi
-  - if ! grep -q PASS results.txt ; then exit 1 ; fi
+  - if grep -q FAIL results.txt ; then $(exit 1) ; fi
+  - if ! grep -q PASS results.txt ; then $(exit 1) ; fi
Signature · 1 line
2.23.0
#1 lore raw
Quoted 17 lines · Wainer dos Santos Moschetta

The 'script' section finishes its execution prematurely whenever a shell's exit is called. If the intention is to force Travis to flag a build/test failure then the correct approach is erroring any build command. In this change, it executes a sub-shell process and exit 1, so that Travis capture the return code and interpret it as a build error.

---
 .travis.yml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
.travis.yml +0 -0
index 091d071..a4405c3 100644

.travis.yml before_script: · line 123

Quoted 7 lines
.travis.yml +2 -2
@@ -119,5 +119,5 @@ before_script:
 script:
   - make -j3
   - ACCEL="${ACCEL:-tcg}" ./run_tests.sh -v $TESTS | tee results.txt
-  - if grep -q FAIL results.txt ; then exit 1 ; fi
-  - if ! grep -q PASS results.txt ; then exit 1 ; fi
+  - if grep -q FAIL results.txt ; then $(exit 1) ; fi
+  - if ! grep -q PASS results.txt ; then $(exit 1) ; fi

Basically a good idea, but I think we can even simplify these two lines into:

grep -q PASS results.txt && ! grep -q FAIL results.txt

If you agree, could you update your patch and send a v2?

Thanks,
Thomas

#2 lore raw
Quoted 28 lines · Thomas Huth
Quoted 17 lines · Wainer dos Santos Moschetta

The 'script' section finishes its execution prematurely whenever a shell's exit is called. If the intention is to force Travis to flag a build/test failure then the correct approach is erroring any build command. In this change, it executes a sub-shell process and exit 1, so that Travis capture the return code and interpret it as a build error.

---
  .travis.yml | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)
.travis.yml +0 -0
index 091d071..a4405c3 100644

.travis.yml before_script: · line 123

Quoted 7 lines
.travis.yml +2 -2
@@ -119,5 +119,5 @@ before_script:
  script:
    - make -j3
    - ACCEL="${ACCEL:-tcg}" ./run_tests.sh -v $TESTS | tee results.txt
-  - if grep -q FAIL results.txt ; then exit 1 ; fi
-  - if ! grep -q PASS results.txt ; then exit 1 ; fi
+  - if grep -q FAIL results.txt ; then $(exit 1) ; fi
+  - if ! grep -q PASS results.txt ; then $(exit 1) ; fi

Basically a good idea, but I think we can even simplify these two lines into:

Quoted 1 line
  grep -q PASS results.txt && ! grep -q FAIL results.txt

Indeed this is a better idea.

Quoted 2 lines

If you agree, could you update your patch and send a v2?

Sure, I will send the v2 with your proposed changes. Thanks!

- Wainer

Quoted 3 lines

Thanks,
Thomas