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 4ba5a34..1fc6f62 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)