From b330eeac2ff546a7eefed41eadbd92ac7f2636d8 Mon Sep 17 00:00:00 2001 From: Patrick Ohly Date: Mon, 2 Dec 2024 10:24:13 +0100 Subject: [PATCH] prune-junit-xml: preserve system out + err text during test pruning When stripping out log messages from the failure text, the original text gets stored as . That part then got lost when reducing tests. Instead of dropping it, it needs to be joined from all failed tests. Same for , although that isn't used yet. --- cmd/prune-junit-xml/prunexml.go | 6 ++++++ cmd/prune-junit-xml/prunexml_test.go | 11 ++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/cmd/prune-junit-xml/prunexml.go b/cmd/prune-junit-xml/prunexml.go index b6c07d4e134..21d0b0fa312 100644 --- a/cmd/prune-junit-xml/prunexml.go +++ b/cmd/prune-junit-xml/prunexml.go @@ -135,6 +135,8 @@ func pruneTESTS(suites *junitxml.JUnitTestSuites) { updatedTestcase.Classname = match[1] updatedTestcase.Name = match[2] updatedTestcase.Time = suite.Time + updatedSystemOut := "" + updatedSystemErr := "" for _, testcase := range suite.TestCases { // The top level testcase element in a JUnit xml file does not have the / character. if testcase.Failure != nil { @@ -142,10 +144,14 @@ func pruneTESTS(suites *junitxml.JUnitTestSuites) { updatedTestcaseFailure.Message = joinTexts(updatedTestcaseFailure.Message, testcase.Failure.Message) updatedTestcaseFailure.Contents = joinTexts(updatedTestcaseFailure.Contents, testcase.Failure.Contents) updatedTestcaseFailure.Type = joinTexts(updatedTestcaseFailure.Type, testcase.Failure.Type) + updatedSystemOut = joinTexts(updatedSystemOut, testcase.SystemOut) + updatedSystemErr = joinTexts(updatedSystemErr, testcase.SystemErr) } } if failflag { updatedTestcase.Failure = &updatedTestcaseFailure + updatedTestcase.SystemOut = updatedSystemOut + updatedTestcase.SystemErr = updatedSystemErr } suite.TestCases = append(updatedTestcases, updatedTestcase) updatedTestsuites = append(updatedTestsuites, suite) diff --git a/cmd/prune-junit-xml/prunexml_test.go b/cmd/prune-junit-xml/prunexml_test.go index 31f74ffaff6..3dde79a0691 100644 --- a/cmd/prune-junit-xml/prunexml_test.go +++ b/cmd/prune-junit-xml/prunexml_test.go @@ -100,7 +100,10 @@ func TestPruneTESTS(t *testing.T) { - + + out A + err B + FailureContentA @@ -114,9 +117,13 @@ func TestPruneTESTS(t *testing.T) { RUNNING TestWatchRestartsIfTimeoutNotReached/group/InformerWatcher_survives_closed_watchesA expected foo, got bar + out A + err A sub-test failed + out B + err B sub-test failed @@ -154,6 +161,8 @@ func TestPruneTESTS(t *testing.T) { RUNNING TestWatchRestartsIfTimeoutNotReached/group/InformerWatcher_survives_closed_watchesA expected foo, got bar sub-test failed + out A out B + err A err B `