[cairo] [PATCH] Harden make-cairo-test-constructors.sh

Bryce Harrington bryce at osg.samsung.com
Fri Mar 13 13:22:16 PDT 2015


On Thu, Mar 12, 2015 at 05:02:02PM +0100, Andrea Canciani wrote:
> 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.
> ---
>  test/Makefile.am                     | 2 +-
>  test/make-cairo-test-constructors.sh | 4 +++-
>  2 files changed, 4 insertions(+), 2 deletions(-)

Thanks, applied:

   5182d9b..b19b06c  master -> master

Bryce
 
> diff --git a/test/Makefile.am b/test/Makefile.am
> index 950629b..b2fcd27 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 cb1391e..a03d61c 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
> -- 
> 1.9.5 (Apple Git-50.3)
> 
> -- 
> cairo mailing list
> cairo at cairographics.org
> http://lists.cairographics.org/mailman/listinfo/cairo


More information about the cairo mailing list