autobuild: tiny version

Allow to run AUTOBUILD test in two versions:
* full - original one
* tiny - minimalistic, currently only check format and
         check so deps

We want to reduce first phase of per-patch (called Pre-Tests)
by running only basic tests. To accomplish that we will run
autobuild test in tiny version. Full version will be executed
in second phase of per-patch (called Tests).

Signed-off-by: Pawel Piatek <pawelx.piatek@intel.com>
Change-Id: I87d503ec272080ab238cf5129c44f92d8bb690ed
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14481
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: Karol Latecki <karol.latecki@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Krzysztof Karas <krzysztof.karas@intel.com>
Reviewed-by: Michal Berger <michal.berger@intel.com>
This commit is contained in:
Pawel Piatek 2022-09-12 23:48:08 +02:00 committed by Tomasz Zawadzki
parent e802c16570
commit f658f463a4
7 changed files with 36 additions and 23 deletions

View File

@ -335,8 +335,9 @@ function build_doc() {
function autobuild_test_suite() { function autobuild_test_suite() {
run_test "autobuild_check_format" ./scripts/check_format.sh run_test "autobuild_check_format" ./scripts/check_format.sh
run_test "autobuild_external_code" $rootdir/test/external_code/test_make.sh $rootdir
run_test "autobuild_check_so_deps" $rootdir/test/make/check_so_deps.sh $1 run_test "autobuild_check_so_deps" $rootdir/test/make/check_so_deps.sh $1
if [[ $SPDK_TEST_AUTOBUILD == 'full' ]]; then
run_test "autobuild_external_code" $rootdir/test/external_code/test_make.sh $rootdir
./configure $config_params --without-shared ./configure $config_params --without-shared
$MAKE $MAKEFLAGS $MAKE $MAKEFLAGS
run_test "autobuild_generated_files_check" porcelain_check run_test "autobuild_generated_files_check" porcelain_check
@ -344,6 +345,7 @@ function autobuild_test_suite() {
run_test "autobuild_make_install" $MAKE $MAKEFLAGS install DESTDIR="$SPDK_WORKSPACE" prefix=/usr run_test "autobuild_make_install" $MAKE $MAKEFLAGS install DESTDIR="$SPDK_WORKSPACE" prefix=/usr
run_test "autobuild_make_uninstall" test_make_uninstall run_test "autobuild_make_uninstall" test_make_uninstall
run_test "autobuild_build_doc" build_doc run_test "autobuild_build_doc" build_doc
fi
} }
function unittest_build() { function unittest_build() {
@ -363,12 +365,17 @@ if [ -n "$SPDK_TEST_NATIVE_DPDK" ]; then
run_test "build_native_dpdk" build_native_dpdk run_test "build_native_dpdk" build_native_dpdk
fi fi
./configure $config_params if [[ -z $SPDK_TEST_AUTOBUILD ]] || [[ $SPDK_TEST_AUTOBUILD == 'full' ]]; then
echo "** START ** Info for Hostname: $HOSTNAME" ./configure $config_params
uname -a echo "** START ** Info for Hostname: $HOSTNAME"
$MAKE cc_version uname -a
$MAKE cxx_version $MAKE cc_version
echo "** END ** Info for Hostname: $HOSTNAME" $MAKE cxx_version
echo "** END ** Info for Hostname: $HOSTNAME"
elif [[ $SPDK_TEST_AUTOBUILD != 'tiny' ]]; then
echo "ERROR: supported values for SPDK_TEST_AUTOBUILD are 'full' and 'tiny'"
exit 1
fi
if [[ $SPDK_TEST_OCF -eq 1 ]]; then if [[ $SPDK_TEST_OCF -eq 1 ]]; then
run_test "autobuild_ocf_precompile" ocf_precompile run_test "autobuild_ocf_precompile" ocf_precompile
@ -378,7 +385,7 @@ if [[ $SPDK_TEST_FUZZER -eq 1 ]]; then
run_test "autobuild_llvm_precompile" llvm_precompile run_test "autobuild_llvm_precompile" llvm_precompile
fi fi
if [[ $SPDK_TEST_AUTOBUILD -eq 1 ]]; then if [[ -n $SPDK_TEST_AUTOBUILD ]]; then
run_test "autobuild" autobuild_test_suite $1 run_test "autobuild" autobuild_test_suite $1
elif [[ $SPDK_TEST_UNITTEST -eq 1 ]]; then elif [[ $SPDK_TEST_UNITTEST -eq 1 ]]; then
run_test "unittest_build" unittest_build run_test "unittest_build" unittest_build

View File

@ -22,4 +22,7 @@ $rootdir/autobuild.sh "$conf"
if ((SPDK_TEST_UNITTEST == 1 || SPDK_RUN_FUNCTIONAL_TEST == 1)); then if ((SPDK_TEST_UNITTEST == 1 || SPDK_RUN_FUNCTIONAL_TEST == 1)); then
sudo -E $rootdir/autotest.sh "$conf" sudo -E $rootdir/autotest.sh "$conf"
fi fi
$rootdir/autopackage.sh "$conf"
if [[ $SPDK_TEST_AUTOBUILD != 'tiny' ]]; then
$rootdir/autopackage.sh "$conf"
fi

View File

@ -2,7 +2,7 @@
SPDK_RUN_VALGRIND=1 SPDK_RUN_VALGRIND=1
SPDK_RUN_FUNCTIONAL_TEST=1 SPDK_RUN_FUNCTIONAL_TEST=1
SPDK_TEST_UNITTEST=1 SPDK_TEST_UNITTEST=1
SPDK_TEST_AUTOBUILD=1 SPDK_TEST_AUTOBUILD="full"
SPDK_TEST_ISAL=1 SPDK_TEST_ISAL=1
SPDK_TEST_ISCSI=0 SPDK_TEST_ISCSI=0
SPDK_TEST_ISCSI_INITIATOR=0 SPDK_TEST_ISCSI_INITIATOR=0

View File

@ -77,7 +77,7 @@ export SPDK_RUN_VALGRIND
export SPDK_RUN_FUNCTIONAL_TEST export SPDK_RUN_FUNCTIONAL_TEST
: ${SPDK_TEST_UNITTEST=0} : ${SPDK_TEST_UNITTEST=0}
export SPDK_TEST_UNITTEST export SPDK_TEST_UNITTEST
: ${SPDK_TEST_AUTOBUILD=0} : ${SPDK_TEST_AUTOBUILD=""}
export SPDK_TEST_AUTOBUILD export SPDK_TEST_AUTOBUILD
: ${SPDK_TEST_RELEASE_BUILD=0} : ${SPDK_TEST_RELEASE_BUILD=0}
export SPDK_TEST_RELEASE_BUILD export SPDK_TEST_RELEASE_BUILD
@ -422,8 +422,8 @@ function get_config_params() {
fi fi
if [[ $SPDK_TEST_UNITTEST -eq 0 && \ if [[ $SPDK_TEST_UNITTEST -eq 0 && \
$SPDK_TEST_SCANBUILD -eq 0 && \ $SPDK_TEST_SCANBUILD -eq 0 && -z \
$SPDK_TEST_AUTOBUILD -eq 0 ]]; then $SPDK_TEST_AUTOBUILD ]]; then
config_params+=' --disable-unit-tests' config_params+=' --disable-unit-tests'
fi fi

View File

@ -101,7 +101,7 @@ function install_refspdk() {
cat > $HOME/autorun-spdk.conf <<- EOF cat > $HOME/autorun-spdk.conf <<- EOF
SPDK_BUILD_SHARED_OBJECT=1 SPDK_BUILD_SHARED_OBJECT=1
SPDK_TEST_AUTOBUILD=1 SPDK_TEST_AUTOBUILD="full"
SPDK_TEST_UNITTEST=1 SPDK_TEST_UNITTEST=1
SPDK_TEST_BLOCKDEV=1 SPDK_TEST_BLOCKDEV=1
SPDK_TEST_PMDK=1 SPDK_TEST_PMDK=1

View File

@ -173,7 +173,7 @@ if [[ ! -e ~/autorun-spdk.conf ]]; then
SPDK_RUN_VALGRIND=1 SPDK_RUN_VALGRIND=1
SPDK_TEST_CRYPTO=1 SPDK_TEST_CRYPTO=1
SPDK_RUN_FUNCTIONAL_TEST=1 SPDK_RUN_FUNCTIONAL_TEST=1
SPDK_TEST_AUTOBUILD=1 SPDK_TEST_AUTOBUILD="full"
SPDK_TEST_UNITTEST=1 SPDK_TEST_UNITTEST=1
SPDK_TEST_ISCSI=1 SPDK_TEST_ISCSI=1
SPDK_TEST_ISCSI_INITIATOR=1 SPDK_TEST_ISCSI_INITIATOR=1

View File

@ -287,7 +287,10 @@ if [ "$SPDK_TEST_OCF" -eq 1 ]; then
config_params="$config_params --with-ocf=$rootdir/ocf.a" config_params="$config_params --with-ocf=$rootdir/ocf.a"
fi fi
$MAKE $MAKEFLAGS clean if [[ -f $rootdir/mk/spdk.common.mk ]]; then
$MAKE $MAKEFLAGS clean
fi
./configure $config_params --with-shared ./configure $config_params --with-shared
# By setting SPDK_NO_LIB_DEPS=1, we ensure that we won't create any link dependencies. # By setting SPDK_NO_LIB_DEPS=1, we ensure that we won't create any link dependencies.
# Then we can be sure we get a valid accounting of the symbol dependencies we have. # Then we can be sure we get a valid accounting of the symbol dependencies we have.