linux/tools/testing/selftests/gen_kselftest_tar.sh
Veronika Kabatova a5f304670b selftests: introduce gen_tar Makefile target
The gen_kselftest_tar.sh always packages *all* selftests and doesn't
pass along any variables to `make install` to influence what should be
built. This can result in an early error on the command line ("Unknown
tarball format TARGETS=XXX"), or unexpected test failures as the
tarball contains tests people wanted to skip on purpose.

Since the makefile already contains all the logic, we can add a target
for packaging. Keep the default .gz target the script uses, and actually
extend the supported formats by using tar's autodetection.

To not break current workflows, keep the gen_kselftest_tar.sh script as
it is, with an added suggestion to use the makefile target instead.

Signed-off-by: Veronika Kabatova <vkabatov@redhat.com>
Reviewed-by: Stefano Brivio <sbrivio@redhat.com>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
2020-05-19 16:11:46 -06:00

64 lines
1.3 KiB
Bash
Executable File

#!/bin/bash
#
# SPDX-License-Identifier: GPL-2.0
# gen_kselftest_tar
# Generate kselftest tarball
# Author: Shuah Khan <shuahkh@osg.samsung.com>
# Copyright (C) 2015 Samsung Electronics Co., Ltd.
# main
main()
{
if [ "$#" -eq 0 ]; then
echo "$0: Generating default compression gzip"
copts="cvzf"
ext=".tar.gz"
else
case "$1" in
tar)
copts="cvf"
ext=".tar"
;;
targz)
copts="cvzf"
ext=".tar.gz"
;;
tarbz2)
copts="cvjf"
ext=".tar.bz2"
;;
tarxz)
copts="cvJf"
ext=".tar.xz"
;;
*)
echo "Unknown tarball format $1"
exit 1
;;
esac
fi
# 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 "$install_dir"
(cd "$install_work"; tar $copts "$dest"/kselftest${ext} $install_name)
# Don't put the message at the actual end as people may be parsing the
# "archive created" line in their scripts.
echo -e "\nConsider using 'make gen_tar' instead of this script\n"
echo "Kselftest archive kselftest${ext} created!"
# clean up top-level install work directory
rm -rf "$install_work"
}
main "$@"