summaryrefslogtreecommitdiffstats
path: root/extras/hs-test
diff options
context:
space:
mode:
authorAdrian Villin <avillin@cisco.com>2024-06-13 08:59:58 +0200
committerDave Wallace <dwallacelf@gmail.com>2024-06-13 16:28:56 +0000
commit7d1e4a4ddba8c2fb5b269ea51e75edf28de156ea (patch)
tree346a1e441fe29d815263a9043a087940221054b4 /extras/hs-test
parent82ad9660becfcdd93c906d909d7e478733c5fbbe (diff)
hs-test: added cleanup target
- Also added checkstyle-go and fixstyle-go to 'make help' Type: make Change-Id: I5402efa02bbbc54a20db8f54b0488c58a62ffaa1 Signed-off-by: Adrian Villin <avillin@cisco.com>
Diffstat (limited to 'extras/hs-test')
-rw-r--r--extras/hs-test/Makefile38
-rw-r--r--extras/hs-test/framework_test.go10
2 files changed, 41 insertions, 7 deletions
diff --git a/extras/hs-test/Makefile b/extras/hs-test/Makefile
index 118afefa543..7fab6dca514 100644
--- a/extras/hs-test/Makefile
+++ b/extras/hs-test/Makefile
@@ -67,6 +67,7 @@ help:
@echo " build-go - just build golang files"
@echo " checkstyle-go - check style of .go source files"
@echo " fixstyle-go - format .go source files"
+ @echo " cleanup-hst - stops and removes all docker contaiers and namespaces"
@echo " list-tests - list all tests"
@echo
@echo "make build arguments:"
@@ -114,25 +115,25 @@ build-vpp-gcov:
.PHONY: test
test: .deps.ok .build.ok
- # '-' ignores the exit status, it is set in compress.sh
- # necessary so gmake won't skip executing the bash script
- -bash ./test --persist=$(PERSIST) --verbose=$(VERBOSE) \
+ @# '-' ignores the exit status, it is set in compress.sh
+ @# necessary so gmake won't skip executing the bash script
+ @-bash ./test --persist=$(PERSIST) --verbose=$(VERBOSE) \
--unconfigure=$(UNCONFIGURE) --debug=$(DEBUG) --test=$(TEST) --cpus=$(CPUS) \
--vppsrc=$(VPPSRC) --parallel=$(PARALLEL) --repeat=$(REPEAT)
@bash ./script/compress.sh
.PHONY: test-debug
test-debug: .deps.ok .build_debug.ok
- # '-' ignores the exit status, it is set in compress.sh
- # necessary so gmake won't skip executing the bash script
- -bash ./test --persist=$(PERSIST) --verbose=$(VERBOSE) \
+ @# '-' ignores the exit status, it is set in compress.sh
+ @# necessary so gmake won't skip executing the bash script
+ @-bash ./test --persist=$(PERSIST) --verbose=$(VERBOSE) \
--unconfigure=$(UNCONFIGURE) --debug=$(DEBUG) --test=$(TEST) --cpus=$(CPUS) \
--vppsrc=$(VPPSRC) --parallel=$(PARALLEL) --repeat=$(REPEAT)
@bash ./script/compress.sh
.PHONY: test-cov
test-cov: .deps.ok .build.cov.ok
- -bash ./test --persist=$(PERSIST) --verbose=$(VERBOSE) \
+ @-bash ./test --persist=$(PERSIST) --verbose=$(VERBOSE) \
--unconfigure=$(UNCONFIGURE) --debug=$(DEBUG) --test=$(TEST-HS) --cpus=$(CPUS) \
--vppsrc=$(VPPSRC)
@$(MAKE) -C ../.. test-cov-post HS_TEST=1
@@ -200,3 +201,26 @@ fixstyle-go:
@echo "*******************************************************************"
@echo "Fixstyle done."
@echo "*******************************************************************"
+
+.PHONY: cleanup-hst
+cleanup-hst:
+ @if [ ! -f ".last_hst_ppid" ]; then \
+ echo "'.last_hst_ppid' file does not exist."; \
+ exit 1; \
+ fi
+ @echo "****************************"
+ @echo "Removing docker containers:"
+ @# "-" ignores errors
+ @-sudo docker rm $$(sudo docker stop $$(sudo docker ps -a -q --filter "name=$$(cat .last_hst_ppid)") -t 0)
+ @echo "****************************"
+ @echo "Removing IP address files:"
+ @find . -type f -regextype egrep -regex '.*[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' -exec sudo rm -v {} \;
+ @echo "****************************"
+ @echo "Removing network namespaces:"
+ @for ns in $$(ip netns list | grep $$(cat .last_hst_ppid) | awk '{print $$1}'); do \
+ echo $$ns; \
+ sudo ip netns delete $$ns; \
+ done
+ @echo "****************************"
+ @echo "Done."
+ @echo "****************************"
diff --git a/extras/hs-test/framework_test.go b/extras/hs-test/framework_test.go
index 8d7e2edfd13..b992659a4af 100644
--- a/extras/hs-test/framework_test.go
+++ b/extras/hs-test/framework_test.go
@@ -1,6 +1,8 @@
package main
import (
+ "fmt"
+ "os"
"path/filepath"
"runtime"
"testing"
@@ -24,6 +26,14 @@ func TestHst(t *testing.T) {
} else {
suiteTimeout = time.Minute * 5
}
+
+ // creates a file with PPID, used for 'make cleanup-hst'
+ ppid := fmt.Sprint(os.Getppid())
+ ppid = ppid[:len(ppid)-1]
+ f, _ := os.Create(".last_hst_ppid")
+ f.Write([]byte(ppid))
+ f.Close()
+
RegisterFailHandler(Fail)
RunSpecs(t, "HST")
}