hs-test: added session, tcp, svm unit tests 23/42423/3
authorAdrian Villin <[email protected]>
Thu, 13 Mar 2025 11:12:13 +0000 (12:12 +0100)
committerFlorin Coras <[email protected]>
Fri, 14 Mar 2025 19:54:18 +0000 (19:54 +0000)
- moved HttpUnitTest to unittests_test.go
- unit tests will only run on coverage builds
- added "SUCCESS" message to some unit tests

Type: test

Change-Id: I35a0510d0ac2899d85f2aa6875a738b280e9b89c
Signed-off-by: Adrian Villin <[email protected]>
extras/hs-test/http_test.go
extras/hs-test/infra/hst_suite.go
extras/hs-test/unittests_test.go [new file with mode: 0644]
src/plugins/unittest/session_test.c
src/plugins/unittest/svm_fifo_test.c
src/plugins/unittest/tcp_test.c

index ad43f9d..f4bee5e 100644 (file)
@@ -33,7 +33,7 @@ func init() {
                HttpInvalidContentLengthTest, HttpInvalidTargetSyntaxTest, HttpStaticPathSanitizationTest, HttpUriDecodeTest,
                HttpHeadersTest, HttpStaticFileHandlerTest, HttpStaticFileHandlerDefaultMaxAgeTest, HttpClientTest,
                HttpClientErrRespTest, HttpClientPostFormTest, HttpClientGet128kbResponseTest, HttpClientGetResponseBodyTest,
-               HttpClientGetNoResponseBodyTest, HttpClientPostFileTest, HttpClientPostFilePtrTest, HttpUnitTest,
+               HttpClientGetNoResponseBodyTest, HttpClientPostFileTest, HttpClientPostFilePtrTest,
                HttpRequestLineTest, HttpClientGetTimeout, HttpStaticFileHandlerWrkTest, HttpStaticUrlHandlerWrkTest, HttpConnTimeoutTest,
                HttpClientGetRepeatTest, HttpClientPostRepeatTest, HttpIgnoreH2UpgradeTest, HttpInvalidAuthorityFormUriTest, HttpHeaderErrorConnectionDropTest)
        RegisterNoTopoSoloTests(HttpStaticPromTest, HttpGetTpsTest, HttpGetTpsInterruptModeTest, PromConcurrentConnectionsTest,
@@ -547,13 +547,6 @@ func HttpClientPostFilePtrTest(s *NoTopoSuite) {
        httpClientPostFile(s, true, 131072)
 }
 
-func HttpUnitTest(s *NoTopoSuite) {
-       vpp := s.Containers.Vpp.VppInstance
-       o := vpp.Vppctl("test http all")
-       s.Log(o)
-       s.AssertContains(o, "SUCCESS")
-}
-
 func HttpStaticPromTest(s *NoTopoSuite) {
        query := "stats.prom"
        vpp := s.Containers.Vpp.VppInstance
index d44b76f..5ef4883 100644 (file)
@@ -248,6 +248,12 @@ func (s *HstSuite) SkipIfUnconfiguring() {
        }
 }
 
+func (s *HstSuite) SkipIfNotCoverage() {
+       if !s.CoverageRun {
+               s.Skip("skipping, not a coverage run")
+       }
+}
+
 func (s *HstSuite) SetupTest() {
        testCounterFunc()
        s.Log("[* TEST SETUP]")
diff --git a/extras/hs-test/unittests_test.go b/extras/hs-test/unittests_test.go
new file mode 100644 (file)
index 0000000..26faca5
--- /dev/null
@@ -0,0 +1,35 @@
+package main
+
+import (
+       . "fd.io/hs-test/infra"
+)
+
+func init() {
+       RegisterNoTopoTests(HttpUnitTest, TcpUnitTest, SvmUnitTest, SessionUnitTest)
+}
+
+func runUnitTest(s *NoTopoSuite, vppCmd string) {
+       vpp := s.Containers.Vpp.VppInstance
+       o := vpp.Vppctl(vppCmd)
+       s.Log(o)
+       s.AssertContains(o, "SUCCESS")
+}
+
+func HttpUnitTest(s *NoTopoSuite) {
+       runUnitTest(s, "test http all")
+}
+
+func TcpUnitTest(s *NoTopoSuite) {
+       s.SkipIfNotCoverage()
+       runUnitTest(s, "test tcp all")
+}
+
+func SvmUnitTest(s *NoTopoSuite) {
+       s.SkipIfNotCoverage()
+       runUnitTest(s, "test svm fifo all")
+}
+
+func SessionUnitTest(s *NoTopoSuite) {
+       s.SkipIfNotCoverage()
+       runUnitTest(s, "test session all")
+}
index f0e5d4b..cab9de0 100644 (file)
@@ -2732,6 +2732,8 @@ session_test (vlib_main_t * vm,
 done:
   if (res)
     return clib_error_return (0, "Session unit test failed");
+
+  vlib_cli_output (vm, "SUCCESS");
   return 0;
 }
 
index 9feb37c..c6031c5 100644 (file)
@@ -2856,6 +2856,8 @@ svm_fifo_test (vlib_main_t * vm, unformat_input_t * input,
 done:
   if (res)
     return clib_error_return (0, "svm fifo unit test failed");
+
+  vlib_cli_output (vm, "SUCCESS");
   return 0;
 }
 
index 4b53bc1..33c5387 100644 (file)
@@ -1594,6 +1594,8 @@ tcp_test (vlib_main_t * vm,
 done:
   if (res)
     return clib_error_return (0, "TCP unit test failed");
+
+  vlib_cli_output (vm, "SUCCESS");
   return 0;
 }