selftests, bpftool: Set EXIT trap after usage function
authorQuentin Monnet <quentin.monnet@netronome.com>
Tue, 19 Nov 2019 10:50:09 +0000 (10:50 +0000)
committerAlexei Starovoitov <ast@kernel.org>
Mon, 25 Nov 2019 00:58:45 +0000 (16:58 -0800)
The trap on EXIT is used to clean up any temporary directory left by the
build attempts. It is not needed when the user simply calls the script
with its --help option, and may not be needed either if we add checks
(e.g. on the availability of bpftool files) before the build attempts.

Let's move this trap and related variables lower down in the code, so
that we don't accidentally change the value returned from the script
on early exits at pre-checks.

Signed-off-by: Quentin Monnet <quentin.monnet@netronome.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Reviewed-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Link: https://lore.kernel.org/bpf/20191119105010.19189-2-quentin.monnet@netronome.com
tools/testing/selftests/bpf/test_bpftool_build.sh

index 4ba5a34bff568b0009a661e77fb07ed36ed00fbc..1fc6f6247f9b1bc03f0d33ed25c7696b9d550a14 100755 (executable)
@@ -1,18 +1,6 @@
 #!/bin/bash
 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
 
-ERROR=0
-TMPDIR=
-
-# If one build fails, continue but return non-0 on exit.
-return_value() {
-       if [ -d "$TMPDIR" ] ; then
-               rm -rf -- $TMPDIR
-       fi
-       exit $ERROR
-}
-trap return_value EXIT
-
 case $1 in
        -h|--help)
                echo -e "$0 [-j <n>]"
@@ -20,7 +8,7 @@ case $1 in
                echo -e ""
                echo -e "\tOptions:"
                echo -e "\t\t-j <n>:\tPass -j flag to 'make'."
-               exit
+               exit 0
                ;;
 esac
 
@@ -33,6 +21,18 @@ SCRIPT_REL_DIR=$(dirname $SCRIPT_REL_PATH)
 KDIR_ROOT_DIR=$(realpath $PWD/$SCRIPT_REL_DIR/../../../../)
 cd $KDIR_ROOT_DIR
 
+ERROR=0
+TMPDIR=
+
+# If one build fails, continue but return non-0 on exit.
+return_value() {
+       if [ -d "$TMPDIR" ] ; then
+               rm -rf -- $TMPDIR
+       fi
+       exit $ERROR
+}
+trap return_value EXIT
+
 check() {
        local dir=$(realpath $1)