autobuild.sh: simplify and unify test suite.

We have added a lot of flags to this script over time to try and shorten
parts of it that take a long time or modify the way we make and
whatnot.

In the test framework today we really have two settings, we either want
to run the entire autobuild package with all the bells and whistles, or
we just want to make the code and get on with the rest of the tests. I
believe this change can save between 1 and 3 minutes on each of the
functional test suites.

Change-Id: I7519e8320aa16b57f09f633f866dc36cb494aa80
Signed-off-by: Seth Howell <seth.howell@intel.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/478483
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Paul Luse <paul.e.luse@intel.com>
Community-CI: SPDK CI Jenkins <sys_sgci@intel.com>
This commit is contained in:
Seth Howell 2019-12-19 08:57:30 -07:00 committed by Tomasz Zawadzki
parent cbc1e069ee
commit 2f476a638f
5 changed files with 17 additions and 31 deletions

View File

@ -114,6 +114,17 @@ function build_doc {
rm -rf "$rootdir"/doc/output rm -rf "$rootdir"/doc/output
} }
function autobuild_test_suite {
run_test "autobuild_check_format" ./scripts/check_format.sh
run_test "autobuild_check_so_deps" $rootdir/test/make/check_so_deps.sh
run_test "scanbuild_make" $scanbuild $MAKE $MAKEFLAGS && rm -rf $out/scan-build-tmp || make_fail_cleanup
run_test "autobuild_generated_files_check" porcelain_check
run_test "autobuild_header_dependency_check" header_dependency_check
run_test "autobuild_make_install" $MAKE $MAKEFLAGS install DESTDIR=/tmp/spdk prefix=/usr
run_test "autobuild_make_uninstall" test_make_uninstall
run_test "autobuild_build_doc" build_doc
}
if [ $SPDK_RUN_VALGRIND -eq 1 ]; then if [ $SPDK_RUN_VALGRIND -eq 1 ]; then
run_test "valgrind" echo "using valgrind" run_test "valgrind" echo "using valgrind"
fi fi
@ -126,33 +137,12 @@ if [ $SPDK_RUN_UBSAN -eq 1 ]; then
run_test "ubsan" echo "using ubsan" run_test "ubsan" echo "using ubsan"
fi fi
timing_enter autobuild
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
fi fi
if [ $SPDK_RUN_CHECK_FORMAT -eq 1 ]; then if [ "$SPDK_TEST_AUTOBUILD" -eq 1 ]; then
run_test "autobuild_check_format" ./scripts/check_format.sh run_test "autobuild" autobuild_test_suite
fi
$MAKE $MAKEFLAGS clean
if [ $SPDK_BUILD_SHARED_OBJECT -eq 1 ]; then
run_test "autobuild_check_so_deps" $rootdir/test/make/check_so_deps.sh
fi
run_test "configure" ./configure $config_params
if [ $SPDK_RUN_SCANBUILD -eq 1 ] && hash scan-build; then
run_test "scanbuild_make" $scanbuild $MAKE $MAKEFLAGS && rm -rf $out/scan-build-tmp || make_fail_cleanup
else else
run_test "make" $MAKE $MAKEFLAGS run_test "make" $MAKE $MAKEFLAGS
fi fi
run_test "autobuild_generated_files_check" porcelain_check
run_test "autobuild_header_dependency_check" header_dependency_check
run_test "autobuild_make_install" $MAKE $MAKEFLAGS install DESTDIR=/tmp/spdk prefix=/usr
run_test "autobuild_make_uninstall" test_make_uninstall
if [ $SPDK_BUILD_DOC -eq 1 ] && hash doxygen; then
run_test "autobuild_build_doc" build_doc
fi
timing_exit autobuild

View File

@ -1,10 +1,8 @@
# assign a value of 1 to all of the pertinent tests # assign a value of 1 to all of the pertinent tests
SPDK_BUILD_DOC=1
SPDK_RUN_CHECK_FORMAT=1
SPDK_RUN_SCANBUILD=1
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_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

@ -49,11 +49,10 @@ export RUN_NIGHTLY_FAILING
: ${SPDK_BUILD_DOC=0}; export SPDK_BUILD_DOC : ${SPDK_BUILD_DOC=0}; export SPDK_BUILD_DOC
: ${SPDK_BUILD_PACKAGE=0}; export SPDK_BUILD_PACKAGE : ${SPDK_BUILD_PACKAGE=0}; export SPDK_BUILD_PACKAGE
: ${SPDK_BUILD_SHARED_OBJECT=0}; export SPDK_BUILD_SHARED_OBJECT : ${SPDK_BUILD_SHARED_OBJECT=0}; export SPDK_BUILD_SHARED_OBJECT
: ${SPDK_RUN_CHECK_FORMAT=0}; export SPDK_RUN_CHECK_FORMAT
: ${SPDK_RUN_SCANBUILD=0}; export SPDK_RUN_SCANBUILD
: ${SPDK_RUN_VALGRIND=0}; export SPDK_RUN_VALGRIND : ${SPDK_RUN_VALGRIND=0}; export SPDK_RUN_VALGRIND
: ${SPDK_RUN_FUNCTIONAL_TEST=0}; export SPDK_RUN_FUNCTIONAL_TEST : ${SPDK_RUN_FUNCTIONAL_TEST=0}; export SPDK_RUN_FUNCTIONAL_TEST
: ${SPDK_TEST_UNITTEST=0}; export SPDK_TEST_UNITTEST : ${SPDK_TEST_UNITTEST=0}; export SPDK_TEST_UNITTEST
: ${SPDK_TEST_AUTOBUILD=0}; export SPDK_TEST_AUTOBUILD
: ${SPDK_TEST_ISAL=0}; export SPDK_TEST_ISAL : ${SPDK_TEST_ISAL=0}; export SPDK_TEST_ISAL
: ${SPDK_TEST_ISCSI=0}; export SPDK_TEST_ISCSI : ${SPDK_TEST_ISCSI=0}; export SPDK_TEST_ISCSI
: ${SPDK_TEST_ISCSI_INITIATOR=0}; export SPDK_TEST_ISCSI_INITIATOR : ${SPDK_TEST_ISCSI_INITIATOR=0}; export SPDK_TEST_ISCSI_INITIATOR

View File

@ -639,13 +639,11 @@ wait
if [ ! -e ~/autorun-spdk.conf ]; then if [ ! -e ~/autorun-spdk.conf ]; then
cat > ~/autorun-spdk.conf << EOF cat > ~/autorun-spdk.conf << EOF
# assign a value of 1 to all of the pertinent tests # assign a value of 1 to all of the pertinent tests
SPDK_BUILD_DOC=1
SPDK_BUILD_SHARED_OBJECT=1 SPDK_BUILD_SHARED_OBJECT=1
SPDK_RUN_CHECK_FORMAT=1
SPDK_RUN_SCANBUILD=1
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_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

@ -100,6 +100,7 @@ if [ "$SPDK_TEST_OCF" -eq 1 ]; then
config_params="$config_params --with-ocf=$rootdir/build/ocf.a" config_params="$config_params --with-ocf=$rootdir/build/ocf.a"
fi fi
$MAKE $MAKEFLAGS clean
./configure $config_params --with-shared ./configure $config_params --with-shared
$MAKE $MAKEFLAGS $MAKE $MAKEFLAGS