2015-09-21 21:48:40 +00:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
|
|
|
set -e
|
|
|
|
|
2019-05-09 11:22:41 +00:00
|
|
|
# If the configuration of tests is not provided, no tests will be carried out.
|
|
|
|
if [[ ! -f $1 ]]; then
|
|
|
|
echo "ERROR: SPDK test configuration not specified"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
2019-12-20 00:54:15 +00:00
|
|
|
rootdir=$(readlink -f $(dirname $0))
|
2015-09-21 21:48:40 +00:00
|
|
|
|
2019-12-20 00:54:15 +00:00
|
|
|
source "$1"
|
|
|
|
source "$rootdir/test/common/autotest_common.sh"
|
2021-03-31 09:25:00 +00:00
|
|
|
source "$rootdir/scripts/common.sh"
|
2015-10-05 17:54:32 +00:00
|
|
|
|
2021-05-26 08:56:42 +00:00
|
|
|
if [[ -n $EXTERNAL_MAKE_HUGEMEM ]]; then
|
|
|
|
export EXTERNAL_MAKE_HUGEMEM
|
|
|
|
fi
|
|
|
|
|
2020-03-04 16:42:17 +00:00
|
|
|
out=$output_dir
|
2020-10-20 12:11:59 +00:00
|
|
|
if [ -n "$SPDK_TEST_NATIVE_DPDK" ]; then
|
|
|
|
scanbuild_exclude=" --exclude $(dirname $SPDK_RUN_EXTERNAL_DPDK)"
|
|
|
|
else
|
|
|
|
scanbuild_exclude="--exclude $rootdir/dpdk/"
|
|
|
|
fi
|
|
|
|
scanbuild="scan-build -o $output_dir/scan-build-tmp $scanbuild_exclude --status-bugs"
|
2020-04-09 17:54:24 +00:00
|
|
|
config_params=$(get_config_params)
|
2020-03-04 16:42:17 +00:00
|
|
|
|
2020-04-15 09:44:07 +00:00
|
|
|
trap '[[ -d $SPDK_WORKSPACE ]] && rm -rf "$SPDK_WORKSPACE"' 0
|
|
|
|
|
|
|
|
SPDK_WORKSPACE=$(mktemp -dt "spdk_$(date +%s).XXXXXX")
|
|
|
|
export SPDK_WORKSPACE
|
|
|
|
|
2019-12-20 00:54:15 +00:00
|
|
|
umask 022
|
2015-10-08 19:40:44 +00:00
|
|
|
cd $rootdir
|
2015-09-21 21:48:40 +00:00
|
|
|
|
2019-12-20 00:54:15 +00:00
|
|
|
# Print some test system info out for the log
|
2016-12-16 17:14:48 +00:00
|
|
|
date -u
|
|
|
|
git describe --tags
|
2019-12-20 00:29:52 +00:00
|
|
|
|
2020-05-07 11:27:06 +00:00
|
|
|
function ocf_precompile() {
|
2018-11-02 00:00:24 +00:00
|
|
|
# We compile OCF sources ourselves
|
|
|
|
# They don't need to be checked with scanbuild and code coverage is not applicable
|
|
|
|
# So we precompile OCF now for further use as standalone static library
|
|
|
|
./configure $(echo $config_params | sed 's/--enable-coverage//g')
|
2019-01-21 09:05:59 +00:00
|
|
|
$MAKE $MAKEFLAGS include/spdk/config.h
|
2021-08-12 21:29:26 +00:00
|
|
|
CC=gcc CCAR=ar $MAKE $MAKEFLAGS -C lib/env_ocf exportlib O=$rootdir/ocf.a
|
2018-11-02 00:00:24 +00:00
|
|
|
# Set config to use precompiled library
|
2021-08-12 21:29:26 +00:00
|
|
|
config_params="$config_params --with-ocf=/$rootdir/ocf.a"
|
2019-12-20 00:29:52 +00:00
|
|
|
# need to reconfigure to avoid clearing ocf related files on future make clean.
|
|
|
|
./configure $config_params
|
|
|
|
}
|
2018-11-02 00:00:24 +00:00
|
|
|
|
2020-02-13 08:30:50 +00:00
|
|
|
function build_native_dpdk() {
|
|
|
|
local external_dpdk_dir
|
|
|
|
local external_dpdk_base_dir
|
2021-09-24 09:07:07 +00:00
|
|
|
local compiler_version
|
|
|
|
local compiler
|
2020-02-13 08:30:50 +00:00
|
|
|
|
2021-09-24 09:07:07 +00:00
|
|
|
compiler=${CC:-gcc}
|
|
|
|
if [[ $compiler != *clang* && $compiler != *gcc* ]]; then
|
|
|
|
echo "Unsupported compiler detected ($compiler), failing the test" >&2
|
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
compiler_version=$("$compiler" -dumpversion)
|
|
|
|
compiler_version=${compiler_version%%.*}
|
2020-02-13 08:30:50 +00:00
|
|
|
external_dpdk_dir="$SPDK_RUN_EXTERNAL_DPDK"
|
|
|
|
external_dpdk_base_dir="$(dirname $external_dpdk_dir)"
|
|
|
|
|
|
|
|
if [[ ! -d "$external_dpdk_base_dir" ]]; then
|
|
|
|
sudo mkdir -p "$external_dpdk_base_dir"
|
|
|
|
sudo chown -R $(whoami) "$external_dpdk_base_dir"/..
|
|
|
|
fi
|
|
|
|
orgdir=$PWD
|
|
|
|
|
|
|
|
rm -rf "$external_dpdk_base_dir"
|
|
|
|
git clone --branch $SPDK_TEST_NATIVE_DPDK --depth 1 http://dpdk.org/git/dpdk "$external_dpdk_base_dir"
|
2020-10-28 11:25:23 +00:00
|
|
|
git -C "$external_dpdk_base_dir" log --oneline -n 5
|
2020-10-16 07:52:56 +00:00
|
|
|
|
2021-04-21 16:34:08 +00:00
|
|
|
dpdk_cflags="-fPIC -g -fcommon"
|
2020-02-13 08:30:50 +00:00
|
|
|
dpdk_ldflags=""
|
|
|
|
|
2021-09-24 09:07:07 +00:00
|
|
|
if [[ $compiler == *gcc* && $compiler_version -ge 5 ]]; then
|
2021-04-21 16:34:08 +00:00
|
|
|
dpdk_cflags+=" -Werror"
|
|
|
|
fi
|
|
|
|
|
2021-09-24 09:07:07 +00:00
|
|
|
if [[ $compiler == *gcc* && $compiler_version -ge 10 ]]; then
|
2021-04-21 16:37:23 +00:00
|
|
|
dpdk_cflags+=" -Wno-stringop-overflow"
|
|
|
|
fi
|
|
|
|
|
2020-02-13 08:30:50 +00:00
|
|
|
# the drivers we use
|
2020-11-10 14:04:56 +00:00
|
|
|
# net/i40e driver is not really needed by us, but it's built as a workaround
|
|
|
|
# for DPDK issue: https://bugs.dpdk.org/show_bug.cgi?id=576
|
|
|
|
DPDK_DRIVERS=("bus" "bus/pci" "bus/vdev" "mempool/ring" "net/i40e" "net/i40e/base")
|
2020-02-13 08:30:50 +00:00
|
|
|
# all possible DPDK drivers
|
|
|
|
DPDK_ALL_DRIVERS=($(find "$external_dpdk_base_dir/drivers" -mindepth 1 -type d | sed -n "s#^$external_dpdk_base_dir/drivers/##p"))
|
|
|
|
|
|
|
|
if [[ "$SPDK_TEST_CRYPTO" -eq 1 ]]; then
|
|
|
|
git clone --branch v0.54 --depth 1 https://github.com/intel/intel-ipsec-mb.git "$external_dpdk_base_dir/intel-ipsec-mb"
|
|
|
|
cd "$external_dpdk_base_dir/intel-ipsec-mb"
|
2020-10-16 06:51:32 +00:00
|
|
|
$MAKE $MAKEFLAGS all SHARED=y EXTRA_CFLAGS=-fPIC
|
2020-02-13 08:30:50 +00:00
|
|
|
DPDK_DRIVERS+=("crypto")
|
|
|
|
DPDK_DRIVERS+=("crypto/aesni_mb")
|
|
|
|
DPDK_DRIVERS+=("crypto/qat")
|
|
|
|
DPDK_DRIVERS+=("compress/qat")
|
|
|
|
DPDK_DRIVERS+=("common/qat")
|
|
|
|
dpdk_cflags+=" -I$external_dpdk_base_dir/intel-ipsec-mb"
|
|
|
|
dpdk_ldflags+=" -L$external_dpdk_base_dir/intel-ipsec-mb"
|
2020-10-16 06:51:32 +00:00
|
|
|
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$external_dpdk_base_dir/intel-ipsec-mb
|
2020-02-13 08:30:50 +00:00
|
|
|
fi
|
|
|
|
|
|
|
|
if [[ "$SPDK_TEST_REDUCE" -eq 1 ]]; then
|
2020-10-15 10:57:23 +00:00
|
|
|
isal_dir="$external_dpdk_base_dir/isa-l"
|
|
|
|
git clone --branch v2.29.0 --depth 1 https://github.com/intel/isa-l.git "$isal_dir"
|
|
|
|
|
|
|
|
cd $isal_dir
|
2020-02-13 08:30:50 +00:00
|
|
|
./autogen.sh
|
2020-10-15 10:57:23 +00:00
|
|
|
./configure CFLAGS="-fPIC -g -O2" --enable-shared=yes --prefix="$isal_dir/build"
|
2020-02-13 08:30:50 +00:00
|
|
|
ln -s $PWD/include $PWD/isa-l
|
|
|
|
$MAKE $MAKEFLAGS all
|
2020-10-15 10:57:23 +00:00
|
|
|
$MAKE install
|
2020-02-13 08:30:50 +00:00
|
|
|
DPDK_DRIVERS+=("compress")
|
|
|
|
DPDK_DRIVERS+=("compress/isal")
|
|
|
|
DPDK_DRIVERS+=("compress/qat")
|
|
|
|
DPDK_DRIVERS+=("common/qat")
|
2021-09-21 17:20:49 +00:00
|
|
|
if ge "$(< "$external_dpdk_base_dir/VERSION")" 21.02.0; then
|
|
|
|
# SPDK enables REDUCE_MLX in case supported version of DPDK is detected
|
|
|
|
# so make sure proper libs are built.
|
|
|
|
DPDK_DRIVERS+=("bus/auxiliary")
|
|
|
|
DPDK_DRIVERS+=("common/mlx5")
|
|
|
|
DPDK_DRIVERS+=("common/mlx5/linux")
|
|
|
|
DPDK_DRIVERS+=("compress/mlx5")
|
|
|
|
fi
|
2020-10-15 10:57:23 +00:00
|
|
|
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:$isal_dir/build/lib/pkgconfig"
|
|
|
|
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$isal_dir/build/lib"
|
2020-02-13 08:30:50 +00:00
|
|
|
fi
|
|
|
|
|
|
|
|
# Use difference between DPDK_ALL_DRIVERS and DPDK_DRIVERS as a set of DPDK drivers we don't want or
|
|
|
|
# don't need to build.
|
|
|
|
DPDK_DISABLED_DRIVERS=($(sort <(printf "%s\n" "${DPDK_DRIVERS[@]}") <(printf "%s\n" "${DPDK_ALL_DRIVERS[@]}") | uniq -u))
|
|
|
|
|
|
|
|
cd $external_dpdk_base_dir
|
|
|
|
if [ "$(uname -s)" = "Linux" ]; then
|
2020-10-16 07:52:56 +00:00
|
|
|
# Fix for freeing device if not kernel driver configured.
|
|
|
|
# TODO: Remove once this is merged in upstream DPDK
|
|
|
|
if grep "20.08.0" $external_dpdk_base_dir/VERSION; then
|
2020-10-22 13:46:17 +00:00
|
|
|
wget https://github.com/spdk/dpdk/commit/64f1ced13f974e8b3d46b87c361a09eca68126f9.patch -O dpdk-pci.patch
|
|
|
|
wget https://github.com/spdk/dpdk/commit/c2c273d5c8fbf673623b427f8f4ab5af5ddf0e08.patch -O dpdk-qat.patch
|
2021-04-26 09:54:46 +00:00
|
|
|
elif grep "20.11\|21.02" $external_dpdk_base_dir/VERSION; then
|
|
|
|
wget https://github.com/karlatec/dpdk/commit/3219c0cfc38803aec10c809dde16e013b370bda9.patch -O dpdk-pci.patch
|
|
|
|
wget https://github.com/karlatec/dpdk/commit/adf8f7638de29bc4bf9ba3faf12bbdae73acda0c.patch -O dpdk-qat.patch
|
2021-07-20 08:32:16 +00:00
|
|
|
elif grep "21.05" $external_dpdk_base_dir/VERSION; then
|
|
|
|
wget https://github.com/karlatec/dpdk/commit/f95e331be3a1f856b816948990dd2afc67ea4020.patch -O dpdk-pci.patch
|
|
|
|
wget https://github.com/karlatec/dpdk/commit/6fd2fa906ffdcee04e6ce5da40e61cb841be9827.patch -O dpdk-qat.patch
|
2020-10-16 07:52:56 +00:00
|
|
|
else
|
2021-05-17 15:06:36 +00:00
|
|
|
wget https://github.com/karlatec/dpdk/commit/6fd2fa906ffdcee04e6ce5da40e61cb841be9827.patch -O dpdk-qat.patch
|
2020-10-16 07:52:56 +00:00
|
|
|
fi
|
|
|
|
git config --local user.name "spdk"
|
|
|
|
git config --local user.email "nomail@all.com"
|
2021-07-07 08:48:08 +00:00
|
|
|
if [[ -f dpdk-pci.patch ]]; then
|
|
|
|
git am dpdk-pci.patch
|
|
|
|
fi
|
2020-10-22 13:46:17 +00:00
|
|
|
git am dpdk-qat.patch
|
2020-02-13 08:30:50 +00:00
|
|
|
fi
|
|
|
|
|
|
|
|
meson build-tmp --prefix="$external_dpdk_dir" --libdir lib \
|
|
|
|
-Denable_docs=false -Denable_kmods=false -Dtests=false \
|
2020-10-16 06:51:32 +00:00
|
|
|
-Dc_link_args="$dpdk_ldflags" -Dc_args="$dpdk_cflags" \
|
2020-02-13 08:30:50 +00:00
|
|
|
-Dmachine=native -Ddisable_drivers=$(printf "%s," "${DPDK_DISABLED_DRIVERS[@]}")
|
|
|
|
ninja -C "$external_dpdk_base_dir/build-tmp" $MAKEFLAGS
|
|
|
|
ninja -C "$external_dpdk_base_dir/build-tmp" $MAKEFLAGS install
|
|
|
|
|
2020-10-16 06:51:32 +00:00
|
|
|
# Save this path. In tests are run using autorun.sh then autotest.sh
|
|
|
|
# script will be unaware of LD_LIBRARY_PATH and will fail tests.
|
|
|
|
echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH" > /tmp/spdk-ld-path
|
|
|
|
|
2020-02-13 08:30:50 +00:00
|
|
|
cd "$orgdir"
|
|
|
|
}
|
|
|
|
|
2020-05-07 11:27:06 +00:00
|
|
|
function make_fail_cleanup() {
|
2019-12-20 00:38:20 +00:00
|
|
|
if [ -d $out/scan-build-tmp ]; then
|
|
|
|
scanoutput=$(ls -1 $out/scan-build-tmp/)
|
|
|
|
mv $out/scan-build-tmp/$scanoutput $out/scan-build
|
|
|
|
rm -rf $out/scan-build-tmp
|
|
|
|
chmod -R a+rX $out/scan-build
|
|
|
|
fi
|
|
|
|
false
|
|
|
|
}
|
2018-03-19 20:29:11 +00:00
|
|
|
|
2020-05-07 11:27:06 +00:00
|
|
|
function scanbuild_make() {
|
2020-01-09 19:33:52 +00:00
|
|
|
pass=true
|
2021-03-10 16:34:06 +00:00
|
|
|
"$rootdir/configure" $config_params --without-shared
|
2020-01-09 19:33:52 +00:00
|
|
|
$scanbuild $MAKE $MAKEFLAGS > $out/build_output.txt && rm -rf $out/scan-build-tmp || make_fail_cleanup
|
2020-02-28 09:01:32 +00:00
|
|
|
xtrace_disable
|
2020-04-02 09:54:28 +00:00
|
|
|
|
|
|
|
rm -f $out/*files.txt
|
2020-03-14 01:27:05 +00:00
|
|
|
for ent in $(find app examples lib module test -type f | grep -vF ".h"); do
|
2020-02-05 14:06:39 +00:00
|
|
|
if [[ $ent == lib/env_ocf* ]]; then continue; fi
|
2020-01-09 19:33:52 +00:00
|
|
|
if file -bi $ent | grep -q 'text/x-c'; then
|
|
|
|
echo $ent | sed 's/\.cp\{0,2\}$//g' >> $out/all_c_files.txt
|
|
|
|
fi
|
|
|
|
done
|
2020-02-28 09:01:32 +00:00
|
|
|
xtrace_restore
|
2020-01-09 19:33:52 +00:00
|
|
|
|
2020-02-05 14:06:39 +00:00
|
|
|
grep -E "CC|CXX" $out/build_output.txt | sed 's/\s\s\(CC\|CXX\)\s//g' | sed 's/\.o//g' > $out/built_c_files.txt
|
|
|
|
cat $rootdir/test/common/skipped_build_files.txt >> $out/built_c_files.txt
|
|
|
|
|
|
|
|
sort -o $out/all_c_files.txt $out/all_c_files.txt
|
|
|
|
sort -o $out/built_c_files.txt $out/built_c_files.txt
|
|
|
|
# from comm manual:
|
|
|
|
# -2 suppress column 2 (lines unique to FILE2)
|
|
|
|
# -3 suppress column 3 (lines that appear in both files)
|
2020-02-12 12:40:44 +00:00
|
|
|
# comm may exit 1 if no lines were printed (undocumented, unreliable)
|
|
|
|
comm -2 -3 $out/all_c_files.txt $out/built_c_files.txt > $out/unbuilt_c_files.txt || true
|
2020-01-09 19:33:52 +00:00
|
|
|
|
|
|
|
if [ $(wc -l < $out/unbuilt_c_files.txt) -ge 1 ]; then
|
|
|
|
echo "missing files"
|
|
|
|
cat $out/unbuilt_c_files.txt
|
|
|
|
pass=false
|
|
|
|
fi
|
|
|
|
|
|
|
|
$pass
|
|
|
|
}
|
|
|
|
|
2020-05-07 11:27:06 +00:00
|
|
|
function porcelain_check() {
|
2019-12-20 00:49:11 +00:00
|
|
|
if [ $(git status --porcelain --ignore-submodules | wc -l) -ne 0 ]; then
|
|
|
|
echo "Generated files missing from .gitignore:"
|
|
|
|
git status --porcelain --ignore-submodules
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2019-12-20 00:52:48 +00:00
|
|
|
# Check that header file dependencies are working correctly by
|
|
|
|
# capturing a binary's stat data before and after touching a
|
|
|
|
# header file and re-making.
|
2020-05-07 11:27:06 +00:00
|
|
|
function header_dependency_check() {
|
2020-05-11 21:15:03 +00:00
|
|
|
STAT1=$(stat $SPDK_BIN_DIR/spdk_tgt)
|
2019-12-20 00:52:48 +00:00
|
|
|
sleep 1
|
|
|
|
touch lib/nvme/nvme_internal.h
|
|
|
|
$MAKE $MAKEFLAGS
|
2020-05-11 21:15:03 +00:00
|
|
|
STAT2=$(stat $SPDK_BIN_DIR/spdk_tgt)
|
2019-12-20 00:52:48 +00:00
|
|
|
|
|
|
|
if [ "$STAT1" == "$STAT2" ]; then
|
|
|
|
echo "Header dependency check failed"
|
|
|
|
false
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2020-05-07 11:27:06 +00:00
|
|
|
function test_make_uninstall() {
|
2019-12-20 00:55:45 +00:00
|
|
|
# Create empty file to check if it is not deleted by target uninstall
|
2020-04-15 09:44:07 +00:00
|
|
|
touch "$SPDK_WORKSPACE/usr/lib/sample_xyz.a"
|
|
|
|
$MAKE $MAKEFLAGS uninstall DESTDIR="$SPDK_WORKSPACE" prefix=/usr
|
|
|
|
if [[ $(find "$SPDK_WORKSPACE/usr" -maxdepth 1 -mindepth 1 | wc -l) -ne 2 ]] || [[ $(find "$SPDK_WORKSPACE/usr/lib/" -maxdepth 1 -mindepth 1 | wc -l) -ne 1 ]]; then
|
|
|
|
ls -lR "$SPDK_WORKSPACE"
|
2019-12-20 00:55:45 +00:00
|
|
|
echo "Make uninstall failed"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2020-05-07 11:27:06 +00:00
|
|
|
function build_doc() {
|
2021-03-31 09:25:00 +00:00
|
|
|
local doxygenv
|
|
|
|
doxygenv=$(doxygen --version)
|
|
|
|
|
2019-12-20 00:57:32 +00:00
|
|
|
$MAKE -C "$rootdir"/doc --no-print-directory $MAKEFLAGS &> "$out"/doxygen.log
|
|
|
|
if [ -s "$out"/doxygen.log ]; then
|
|
|
|
cat "$out"/doxygen.log
|
|
|
|
echo "Doxygen errors found!"
|
2021-03-31 09:25:00 +00:00
|
|
|
eq "$doxygenv" 1.8.20 || exit 1
|
|
|
|
echo "Doxygen $doxygenv detected, all warnings are potentially false positives, continuing the test"
|
2019-12-20 00:57:32 +00:00
|
|
|
fi
|
2020-05-07 11:27:06 +00:00
|
|
|
if hash pdflatex 2> /dev/null; then
|
2019-12-20 00:57:32 +00:00
|
|
|
$MAKE -C "$rootdir"/doc/output/latex --no-print-directory $MAKEFLAGS &>> "$out"/doxygen.log
|
|
|
|
fi
|
|
|
|
mkdir -p "$out"/doc
|
|
|
|
mv "$rootdir"/doc/output/html "$out"/doc
|
|
|
|
if [ -f "$rootdir"/doc/output/latex/refman.pdf ]; then
|
|
|
|
mv "$rootdir"/doc/output/latex/refman.pdf "$out"/doc/spdk.pdf
|
|
|
|
fi
|
|
|
|
$MAKE -C "$rootdir"/doc --no-print-directory $MAKEFLAGS clean &>> "$out"/doxygen.log
|
|
|
|
if [ -s "$out"/doxygen.log ]; then
|
2021-03-31 09:25:00 +00:00
|
|
|
# Save the log as an artifact in case we are working with potentially broken version
|
|
|
|
eq "$doxygenv" 1.8.20 || rm "$out"/doxygen.log
|
2019-12-20 00:57:32 +00:00
|
|
|
fi
|
|
|
|
rm -rf "$rootdir"/doc/output
|
|
|
|
}
|
|
|
|
|
2020-05-07 11:27:06 +00:00
|
|
|
function autobuild_test_suite() {
|
2019-12-19 15:57:30 +00:00
|
|
|
run_test "autobuild_check_format" ./scripts/check_format.sh
|
2020-10-15 15:13:39 +00:00
|
|
|
run_test "autobuild_external_code" sudo -E --preserve-env=PATH LD_LIBRARY_PATH=$LD_LIBRARY_PATH $rootdir/test/external_code/test_make.sh $rootdir
|
2020-05-07 21:38:50 +00:00
|
|
|
run_test "autobuild_check_so_deps" $rootdir/test/make/check_so_deps.sh $1
|
2020-06-20 03:00:31 +00:00
|
|
|
./configure $config_params --without-shared
|
2021-03-10 16:34:06 +00:00
|
|
|
$MAKE $MAKEFLAGS
|
2019-12-19 15:57:30 +00:00
|
|
|
run_test "autobuild_generated_files_check" porcelain_check
|
|
|
|
run_test "autobuild_header_dependency_check" header_dependency_check
|
2020-04-15 09:44:07 +00:00
|
|
|
run_test "autobuild_make_install" $MAKE $MAKEFLAGS install DESTDIR="$SPDK_WORKSPACE" prefix=/usr
|
2019-12-19 15:57:30 +00:00
|
|
|
run_test "autobuild_make_uninstall" test_make_uninstall
|
|
|
|
run_test "autobuild_build_doc" build_doc
|
|
|
|
}
|
|
|
|
|
2021-03-10 09:06:40 +00:00
|
|
|
function unittest_build() {
|
|
|
|
"$rootdir/configure" $config_params --without-shared
|
|
|
|
$MAKE $MAKEFLAGS
|
|
|
|
}
|
|
|
|
|
2019-12-20 00:27:04 +00:00
|
|
|
if [ $SPDK_RUN_VALGRIND -eq 1 ]; then
|
|
|
|
run_test "valgrind" echo "using valgrind"
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ $SPDK_RUN_ASAN -eq 1 ]; then
|
|
|
|
run_test "asan" echo "using asan"
|
|
|
|
fi
|
2015-10-08 19:40:44 +00:00
|
|
|
|
2019-12-20 00:27:04 +00:00
|
|
|
if [ $SPDK_RUN_UBSAN -eq 1 ]; then
|
|
|
|
run_test "ubsan" echo "using ubsan"
|
|
|
|
fi
|
|
|
|
|
2020-02-13 08:30:50 +00:00
|
|
|
if [ -n "$SPDK_TEST_NATIVE_DPDK" ]; then
|
|
|
|
run_test "build_native_dpdk" build_native_dpdk
|
|
|
|
fi
|
|
|
|
|
|
|
|
./configure $config_params
|
|
|
|
echo "** START ** Info for Hostname: $HOSTNAME"
|
|
|
|
uname -a
|
|
|
|
$MAKE cc_version
|
|
|
|
$MAKE cxx_version
|
|
|
|
echo "** END ** Info for Hostname: $HOSTNAME"
|
|
|
|
|
2021-03-10 16:34:06 +00:00
|
|
|
if [[ $SPDK_TEST_OCF -eq 1 ]]; then
|
|
|
|
run_test "autobuild_ocf_precompile" ocf_precompile
|
|
|
|
fi
|
|
|
|
|
2021-03-10 09:06:40 +00:00
|
|
|
if [[ $SPDK_TEST_AUTOBUILD -eq 1 ]]; then
|
2020-05-07 21:38:50 +00:00
|
|
|
run_test "autobuild" autobuild_test_suite $1
|
2021-03-10 09:06:40 +00:00
|
|
|
elif [[ $SPDK_TEST_UNITTEST -eq 1 ]]; then
|
|
|
|
run_test "unittest_build" unittest_build
|
2021-03-10 16:34:06 +00:00
|
|
|
elif [[ $SPDK_TEST_SCANBUILD -eq 1 ]]; then
|
|
|
|
run_test "scanbuild_make" scanbuild_make
|
2017-02-15 20:16:48 +00:00
|
|
|
else
|
2020-06-19 22:37:41 +00:00
|
|
|
# if we aren't testing the unittests, build with shared objects.
|
|
|
|
./configure $config_params --with-shared
|
2019-12-20 00:38:20 +00:00
|
|
|
run_test "make" $MAKE $MAKEFLAGS
|
2017-02-15 20:16:48 +00:00
|
|
|
fi
|