selftests: gen_kselftest_tar.sh: Do not clobber kselftest/
authorKees Cook <keescook@chromium.org>
Wed, 30 Oct 2019 19:46:08 +0000 (12:46 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 26 Jan 2020 09:01:06 +0000 (10:01 +0100)
[ Upstream commit ea1bf0bb18c0bd627d7b551196453ff2fff44225 ]

The default installation location for gen_kselftest_tar.sh was still
"kselftest/" which collides with the existing directory. Instead, this
moves the installation target into "kselftest_install/kselftest/" and
adjusts the tar creation accordingly. This also adjusts indentation and
logic to be consistent.

Fixes: 42d46e57ec97 ("selftests: Extract single-test shell logic from lib.mk")
Signed-off-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
tools/testing/selftests/gen_kselftest_tar.sh
tools/testing/selftests/kselftest_install.sh

index a27e2ee..8b2b608 100755 (executable)
@@ -38,16 +38,21 @@ main()
        esac
        fi
 
-       install_dir=./kselftest
+       # Create working directory.
+       dest=`pwd`
+       install_work="$dest"/kselftest_install
+       install_name=kselftest
+       install_dir="$install_work"/"$install_name"
+       mkdir -p "$install_dir"
 
-# Run install using INSTALL_KSFT_PATH override to generate install
-# directory
-./kselftest_install.sh
-tar $copts kselftest${ext} $install_dir
-echo "Kselftest archive kselftest${ext} created!"
+       # Run install using INSTALL_KSFT_PATH override to generate install
+       # directory
+       ./kselftest_install.sh "$install_dir"
+       (cd "$install_work"; tar $copts "$dest"/kselftest${ext} $install_name)
+       echo "Kselftest archive kselftest${ext} created!"
 
-# clean up install directory
-rm -rf kselftest
+       # clean up top-level install work directory
+       rm -rf "$install_work"
 }
 
 main "$@"
index e2e1911..407af7d 100755 (executable)
@@ -6,30 +6,30 @@
 # Author: Shuah Khan <shuahkh@osg.samsung.com>
 # Copyright (C) 2015 Samsung Electronics Co., Ltd.
 
-install_loc=`pwd`
-
 main()
 {
-       if [ $(basename $install_loc) !=  "selftests" ]; then
+       base_dir=`pwd`
+       install_dir="$base_dir"/kselftest_install
+
+       # Make sure we're in the selftests top-level directory.
+       if [ $(basename "$base_dir") !=  "selftests" ]; then
                echo "$0: Please run it in selftests directory ..."
                exit 1;
        fi
+
+       # Only allow installation into an existing location.
        if [ "$#" -eq 0 ]; then
-               echo "$0: Installing in default location - $install_loc ..."
+               echo "$0: Installing in default location - $install_dir ..."
        elif [ ! -d "$1" ]; then
                echo "$0: $1 doesn't exist!!"
                exit 1;
        else
-               install_loc=$1
-               echo "$0: Installing in specified location - $install_loc ..."
+               install_dir="$1"
+               echo "$0: Installing in specified location - $install_dir ..."
        fi
 
-       install_dir=$install_loc/kselftest_install
-
-# Create install directory
-       mkdir -p $install_dir
-# Build tests
-       KSFT_INSTALL_PATH=$install_dir make install
+       # Build tests
+       KSFT_INSTALL_PATH="$install_dir" make install
 }
 
 main "$@"