summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdrian Villin <avillin@cisco.com>2024-12-10 13:36:33 +0100
committerFlorin Coras <florin.coras@gmail.com>2024-12-10 23:05:53 +0000
commit1c2f0f22d9500c2fe9ff7fbd469b0130c76684f0 (patch)
treeb7d7d20cea474fbcc721d9cb79a60df7ea11e1b3
parent499a9dd8756b4d95a511917c7248506baf6bb44f (diff)
hs-test: skip vppctl assert on teardown
- core dump check would get skipped if vpp crashed and vppctl was called on teardown Type: test Change-Id: I9dda7036042158332c8ec815f6eb4bb3c2f7000f Signed-off-by: Adrian Villin <avillin@cisco.com>
-rw-r--r--extras/hs-test/infra/vppinstance.go19
1 files changed, 18 insertions, 1 deletions
diff --git a/extras/hs-test/infra/vppinstance.go b/extras/hs-test/infra/vppinstance.go
index d40fbffe63c..96e162cc395 100644
--- a/extras/hs-test/infra/vppinstance.go
+++ b/extras/hs-test/infra/vppinstance.go
@@ -9,6 +9,7 @@ import (
"os"
"os/exec"
"os/signal"
+ "runtime"
"strconv"
"strings"
"syscall"
@@ -244,7 +245,23 @@ func (vpp *VppInstance) Vppctl(command string, arguments ...any) string {
vpp.Container.Name, vpp.getCliSocket(), vppCliCommand)
vpp.getSuite().Log(containerExecCommand)
output, err := exechelper.CombinedOutput(containerExecCommand)
- vpp.getSuite().AssertNil(err)
+
+ // If an error occurs, retrieve the caller function's name.
+ // If retrieving the caller name fails, perform a regular assert.
+ // If the caller is 'teardown', only log the error instead of asserting.
+ if err != nil {
+ pc, _, _, ok := runtime.Caller(1)
+ if !ok {
+ vpp.getSuite().AssertNil(err)
+ } else {
+ fn := runtime.FuncForPC(pc)
+ if fn != nil && strings.Contains(fn.Name(), "TearDownTest") {
+ vpp.getSuite().Log("vppctl failed in test teardown (skipping assert): %v", err)
+ } else {
+ vpp.getSuite().AssertNil(err)
+ }
+ }
+ }
return string(output)
}