From 22e8fc83ede918253915b9b7c7c244e79ddfbac9 Mon Sep 17 00:00:00 2001 From: Karol Latecki Date: Fri, 11 Mar 2022 10:25:08 +0100 Subject: [PATCH] autobuild.sh: do not use sudo to run make in external code test Running the whole test_make.sh script with sudo causes "make" calls in script to also be run with sudo. This may result in "root" ownership of some of the output files, which in turn may affect subsequent autobuild.sh stages. Fixes #2426 Change-Id: I42cdc65153869076ad477d22d97e49d3ca4a9470 Signed-off-by: Karol Latecki Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/11885 Community-CI: Broadcom CI Reviewed-by: Konrad Sztyber Reviewed-by: Tomasz Zawadzki Tested-by: SPDK CI Jenkins --- autobuild.sh | 2 +- test/external_code/test_make.sh | 17 +++++++++-------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/autobuild.sh b/autobuild.sh index 8c171c55d..844f9e80a 100755 --- a/autobuild.sh +++ b/autobuild.sh @@ -317,7 +317,7 @@ function build_doc() { function autobuild_test_suite() { run_test "autobuild_check_format" ./scripts/check_format.sh - run_test "autobuild_external_code" sudo -E --preserve-env=PATH LD_LIBRARY_PATH=$LD_LIBRARY_PATH $rootdir/test/external_code/test_make.sh $rootdir + 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 ./configure $config_params --without-shared $MAKE $MAKEFLAGS diff --git a/test/external_code/test_make.sh b/test/external_code/test_make.sh index 53c05f129..284620e9b 100755 --- a/test/external_code/test_make.sh +++ b/test/external_code/test_make.sh @@ -23,36 +23,37 @@ make -C $SPDK_DIR -j$(nproc) export SPDK_HEADER_DIR="$SPDK_DIR/include" export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:"$test_root/passthru" +_sudo="sudo -E --preserve-env=PATH LD_LIBRARY_PATH=$LD_LIBRARY_PATH" # The default target is to make both the app and bdev and link them against the combined SPDK shared library libspdk.so. run_test "external_make_hello_bdev_shared_combo" make -C $test_root hello_world_bdev_shared_combo -run_test "external_run_hello_bdev_shared_combo" $test_root/hello_world/hello_bdev \ +run_test "external_run_hello_bdev_shared_combo" $_sudo $test_root/hello_world/hello_bdev \ --json $test_root/hello_world/bdev_external.json -b TestPT make -C $test_root clean # Make just the application linked against the combined SPDK shared library libspdk.so. run_test "external_make_hello_no_bdev_shared_combo" make -C $test_root hello_world_no_bdev_shared_combo -run_test "external_run_hello_no_bdev_shared_combo" $test_root/hello_world/hello_bdev \ +run_test "external_run_hello_no_bdev_shared_combo" $_sudo $test_root/hello_world/hello_bdev \ --json $test_root/hello_world/bdev.json -b Malloc0 make -C $test_root clean # Make both the application and bdev against individual SPDK shared libraries. run_test "external_make_hello_bdev_shared_iso" make -C $test_root hello_world_bdev_shared_iso -run_test "external_run_hello_bdev_shared_iso" $test_root/hello_world/hello_bdev \ +run_test "external_run_hello_bdev_shared_iso" $_sudo $test_root/hello_world/hello_bdev \ --json $test_root/hello_world/bdev_external.json -b TestPT make -C $test_root clean # Make just the application linked against individual SPDK shared libraries. run_test "external_make_hello_no_bdev_shared_iso" make -C $test_root hello_world_no_bdev_shared_iso -run_test "external_run_hello_no_bdev_shared_iso" $test_root/hello_world/hello_bdev \ +run_test "external_run_hello_no_bdev_shared_iso" $_sudo $test_root/hello_world/hello_bdev \ --json $test_root/hello_world/bdev.json -b Malloc0 # Make the basic NVMe driver linked against individual shared SPDK libraries. run_test "external_make_nvme_shared" make -C $test_root nvme_shared -run_test "external_run_nvme_shared" $test_root/nvme/identify.sh +run_test "external_run_nvme_shared" $_sudo $test_root/nvme/identify.sh make -C $test_root clean @@ -62,19 +63,19 @@ make -C $SPDK_DIR -j$(nproc) # Make both the application and bdev against individual SPDK archives. run_test "external_make_hello_bdev_static" make -C $test_root hello_world_bdev_static -run_test "external_run_hello_bdev_static" $test_root/hello_world/hello_bdev \ +run_test "external_run_hello_bdev_static" $_sudo $test_root/hello_world/hello_bdev \ --json $test_root/hello_world/bdev_external.json -b TestPT make -C $test_root clean # Make just the application linked against individual SPDK archives. run_test "external_make_hello_no_bdev_static" make -C $test_root hello_world_no_bdev_static -run_test "external_run_hello_no_bdev_static" $test_root/hello_world/hello_bdev \ +run_test "external_run_hello_no_bdev_static" $_sudo $test_root/hello_world/hello_bdev \ --json $test_root/hello_world/bdev.json -b Malloc0 # Make the basic NVMe driver statically linked against individual SPDK archives. run_test "external_make_nvme_static" make -C $test_root nvme_static -run_test "external_run_nvme_static" $test_root/nvme/identify.sh +run_test "external_run_nvme_static" $_sudo $test_root/nvme/identify.sh make -C $test_root clean make -C $SPDK_DIR -j$(nproc) clean