From 94feaa85df8d38957b02480e0491981559f55492 Mon Sep 17 00:00:00 2001 From: Adrian Villin Date: Wed, 13 Aug 2025 17:44:07 +0200 Subject: [PATCH] hs-test: remove non-root user build enforcement Type: improvement Change-Id: I2e85eeea0d65c7a369a0ca7be3e5508d3a2cf90a Signed-off-by: Adrian Villin --- extras/hs-test/Makefile | 28 +++++++++------------------- extras/hs-test/hs_test.sh | 3 +-- extras/hs-test/infra/common/suite_common.go | 2 +- extras/hs-test/infra/kind/suite_kind.go | 6 +++--- extras/hs-test/script/build_hst.sh | 6 ++---- 5 files changed, 16 insertions(+), 29 deletions(-) diff --git a/extras/hs-test/Makefile b/extras/hs-test/Makefile index c88d5a3c36f..bc52c22d0a7 100644 --- a/extras/hs-test/Makefile +++ b/extras/hs-test/Makefile @@ -86,7 +86,6 @@ DOCKER_TTY := -it endif FORCE_BUILD?=true -BUILD_AS:=$(strip $(shell echo $${SUDO_USER:-$${USER:-root}})) # privileged is needed for "ip netns" otherwise we are not able to create namespace DOCKER_CAPABILITIES:=--privileged @@ -149,26 +148,17 @@ list-tests: @go run github.com/onsi/ginkgo/v2/ginkgo --dry-run -v --no-color --seed=2 | head -n -1 | grep 'test.go' | \ sed 's/^/* /; s/\(Suite\) /\1\//g' -.PHONY: build-msg -build-msg: - @echo "Building VPP as '$(BUILD_AS)'" - @echo "****************************************************************" - @echo "If you wish to build VPP as root, use 'make ... BUILD_AS=root'" - @echo "or" - @echo "'[sudo] SUDO_USER=root make ...'" - @echo "****************************************************************" - .PHONY: build-vpp-release -build-vpp-release: build-msg - @sudo -u $(BUILD_AS) $(MAKE) -C ../.. build-release +build-vpp-release: + @$(MAKE) -C ../.. build-release .PHONY: build-vpp-debug -build-vpp-debug: build-msg - @sudo -u $(BUILD_AS) $(MAKE) -C ../.. build +build-vpp-debug: + @$(MAKE) -C ../.. build .PHONY: build-vpp-gcov -build-vpp-gcov: build-msg - @sudo -u $(BUILD_AS) $(MAKE) -C ../.. build-gcov +build-vpp-gcov: + @$(MAKE) -C ../.. build-gcov .build.ok: build @touch .build.ok @@ -260,19 +250,19 @@ build-go: .PHONY: build build: .deps.ok build-vpp-release @rm -f .build.ok - bash ./script/build_hst.sh release $(FORCE_BUILD) $(BUILD_AS) + bash ./script/build_hst.sh release $(FORCE_BUILD) @touch .build.ok .PHONY: build-cov build-cov: .deps.ok build-vpp-gcov @rm -f .build.cov.ok - bash ./script/build_hst.sh gcov $(FORCE_BUILD) $(BUILD_AS) + bash ./script/build_hst.sh gcov $(FORCE_BUILD) @touch .build.cov.ok .PHONY: build-debug build-debug: .deps.ok build-vpp-debug @rm -f .build.ok - bash ./script/build_hst.sh debug $(FORCE_BUILD) $(BUILD_AS) + bash ./script/build_hst.sh debug $(FORCE_BUILD) @touch .build.ok .deps.ok: diff --git a/extras/hs-test/hs_test.sh b/extras/hs-test/hs_test.sh index c30a75966ec..ac6b40760d3 100755 --- a/extras/hs-test/hs_test.sh +++ b/extras/hs-test/hs_test.sh @@ -171,8 +171,7 @@ if [ $focused_test -eq 0 ] && [ $debug_set -eq 1 ]; then exit 2 fi -sudo_user="${SUDO_USER:-${USER:-root}}" -args="$args -sudo_user $sudo_user" +args="$args -whoami $(whoami)" if [ $leak_check_set -eq 1 ]; then if [ $focused_test -eq 0 ]; then diff --git a/extras/hs-test/infra/common/suite_common.go b/extras/hs-test/infra/common/suite_common.go index 97dd691767b..2b7560daccb 100644 --- a/extras/hs-test/infra/common/suite_common.go +++ b/extras/hs-test/infra/common/suite_common.go @@ -18,7 +18,7 @@ import ( var IsCoverage = flag.Bool("coverage", false, "use coverage run config") var IsPersistent = flag.Bool("persist", false, "persists topology config") var IsVerbose = flag.Bool("verbose", false, "verbose test output") -var SudoUser = flag.String("sudo_user", "root", "what user ran hs-test with sudo") +var WhoAmI = flag.String("whoami", "root", "what user ran hs-test") var ParallelTotal = flag.Lookup("ginkgo.parallel.total") var IsVppDebug = flag.Bool("debug", false, "attach gdb to vpp") var DryRun = flag.Bool("dryrun", false, "set up containers but don't run tests") diff --git a/extras/hs-test/infra/kind/suite_kind.go b/extras/hs-test/infra/kind/suite_kind.go index ecbbe1dc35e..1faedc7e06e 100644 --- a/extras/hs-test/infra/kind/suite_kind.go +++ b/extras/hs-test/infra/kind/suite_kind.go @@ -77,12 +77,12 @@ func (s *KindSuite) SetupSuite() { s.initPods() s.loadDockerImages() var err error - if *SudoUser == "root" { + if *WhoAmI == "root" { s.KubeconfigPath = "/.kube/config" } else { - s.KubeconfigPath = "/home/" + *SudoUser + "/.kube/config" + s.KubeconfigPath = "/home/" + *WhoAmI + "/.kube/config" } - s.Log("User: '%s'", *SudoUser) + s.Log("User: '%s'", *WhoAmI) s.Log("Config path: '%s'", s.KubeconfigPath) s.Config, err = clientcmd.BuildConfigFromFlags("", s.KubeconfigPath) diff --git a/extras/hs-test/script/build_hst.sh b/extras/hs-test/script/build_hst.sh index f0ad9ae7f97..955e143f0a2 100755 --- a/extras/hs-test/script/build_hst.sh +++ b/extras/hs-test/script/build_hst.sh @@ -1,7 +1,5 @@ #!/usr/bin/env bash -BUILD_AS=$3 - if [ "$(lsb_release -is)" != Ubuntu ]; then echo "Host stack test framework is supported only on Ubuntu" exit 1 @@ -74,9 +72,9 @@ rm -rf vpp-data/bin/* || true rm -rf vpp-data/lib/* || true declare -i res=0 -sudo -u $BUILD_AS cp ${VPP_BUILD_ROOT}/bin/* ${bin} +cp ${VPP_BUILD_ROOT}/bin/* ${bin} res+=$? -sudo -u $BUILD_AS cp -r ${VPP_BUILD_ROOT}/lib/"${OS_ARCH}"-linux-gnu/* ${lib} +cp -r ${VPP_BUILD_ROOT}/lib/"${OS_ARCH}"-linux-gnu/* ${lib} res+=$? if [ "$res" -ne 0 ]; then echo "Failed to copy VPP files. Is VPP built? Try running 'make build' in VPP directory." -- 2.16.6