summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrea Canciani <ranma42@gmail.com>2015-03-12 17:02:02 +0100
committerBryce Harrington <bryce@osg.samsung.com>2015-03-13 13:18:32 -0700
commitb19b06c46318e2fe80e2c36175075d11bf4a04ee (patch)
treeea8ceda749338c6aa09b8145cc038dea2bbb8cc6
parentec0153940d694c71324ed0d9cf895ac49ed19674 (diff)
Harden make-cairo-test-constructors.sh
The make-cairo-test-constructors.sh script executes several commands without checking their success. This can lead to undetected errors, like those fixed in 86fad78fcd2bf987249890aea4eabcce02a58f45. The script now exits with an error status if no file is input. Moreover, it sets the '-e' flag, so that if a command fails, the whole script is immediately terminated with an error. In the Makefile.am, the script result is now checked and the target file is removed upon error. This ensures that the 'cairo-test-constructors.c' target completes succesfully only if no error occurred. Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
-rw-r--r--test/Makefile.am2
-rw-r--r--test/make-cairo-test-constructors.sh4
2 files changed, 4 insertions, 2 deletions
diff --git a/test/Makefile.am b/test/Makefile.am
index 950629b39..b2fcd275d 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -81,7 +81,7 @@ noinst_SCRIPTS = check-refs.sh
TESTS += cairo-test-suite$(EXEEXT)
cairo-test-constructors.c: Makefile $(test_sources) make-cairo-test-constructors.sh
- (cd $(srcdir) && sh ./make-cairo-test-constructors.sh $(test_sources)) > $@
+ (cd $(srcdir) && sh ./make-cairo-test-constructors.sh $(test_sources)) > $@ || (rm $@ ; exit 1)
cairo_test_suite_SOURCES = \
$(cairo_test_suite_sources) \
diff --git a/test/make-cairo-test-constructors.sh b/test/make-cairo-test-constructors.sh
index cb1391e73..a03d61c19 100644
--- a/test/make-cairo-test-constructors.sh
+++ b/test/make-cairo-test-constructors.sh
@@ -1,8 +1,10 @@
#! /bin/sh
+set -e
+
if test $# -eq 0; then
echo "$0: no input files." >&2
- exit 0
+ exit 1
fi
cat <<HERE