File tree 2 files changed +36
-4
lines changed
2 files changed +36
-4
lines changed Original file line number Diff line number Diff line change @@ -139,9 +139,9 @@ func pruneTESTS(suites *junitxml.JUnitTestSuites) {
139
139
// The top level testcase element in a JUnit xml file does not have the / character.
140
140
if testcase .Failure != nil {
141
141
failflag = true
142
- updatedTestcaseFailure .Message = updatedTestcaseFailure .Message + testcase .Failure .Message + ";"
143
- updatedTestcaseFailure .Contents = updatedTestcaseFailure .Contents + testcase .Failure .Contents + ";"
144
- updatedTestcaseFailure .Type = updatedTestcaseFailure .Type + testcase .Failure .Type
142
+ updatedTestcaseFailure .Message = joinTexts ( updatedTestcaseFailure .Message , testcase .Failure .Message )
143
+ updatedTestcaseFailure .Contents = joinTexts ( updatedTestcaseFailure .Contents , testcase .Failure .Contents )
144
+ updatedTestcaseFailure .Type = joinTexts ( updatedTestcaseFailure .Type , testcase .Failure .Type )
145
145
}
146
146
}
147
147
if failflag {
@@ -153,6 +153,18 @@ func pruneTESTS(suites *junitxml.JUnitTestSuites) {
153
153
suites .Suites = updatedTestsuites
154
154
}
155
155
156
+ // joinTexts returns "<a>; <b>" if both are non-empty,
157
+ // otherwise just the non-empty string, if there is one.
158
+ func joinTexts (a , b string ) string {
159
+ if a == "" {
160
+ return b
161
+ }
162
+ if b == "" {
163
+ return a
164
+ }
165
+ return a + "; " + b
166
+ }
167
+
156
168
func fetchXML (xmlReader io.Reader ) (* junitxml.JUnitTestSuites , error ) {
157
169
decoder := xml .NewDecoder (xmlReader )
158
170
var suites junitxml.JUnitTestSuites
Original file line number Diff line number Diff line change @@ -96,6 +96,18 @@ func TestPruneTESTS(t *testing.T) {
96
96
<failure message="Failed" type="">FailureContent</failure>
97
97
</testcase>
98
98
</testsuite>
99
+ <testsuite tests="3" failures="2" time="30.050000" name="k8s.io/kubernetes/test/integration/apimachinery2" timestamp="">
100
+ <properties>
101
+ <property name="go.version" value="go1.18 linux/amd64"></property>
102
+ </properties>
103
+ <testcase classname="k8s.io/kubernetes/test/integration/apimachinery2" name="TestWatchRestartsIfTimeoutNotReached/group/InformerWatcher_survives_closed_watches" time="30.050000"></testcase>
104
+ <testcase classname="k8s.io/kubernetes/test/integration/apimachinery2" name="TestSchedulerInformers" time="-0.000000">
105
+ <failure message="FailedA" type="">FailureContentA</failure>
106
+ </testcase>
107
+ <testcase classname="k8s.io/kubernetes/test/integration/apimachinery2" name="TestSchedulerInformers2" time="-0.000000">
108
+ <failure message="FailedB" type="">FailureContentB</failure>
109
+ </testcase>
110
+ </testsuite>
99
111
</testsuites>`
100
112
101
113
outputXML := `<?xml version="1.0" encoding="UTF-8"?>
@@ -111,7 +123,15 @@ func TestPruneTESTS(t *testing.T) {
111
123
<property name="go.version" value="go1.18 linux/amd64"></property>
112
124
</properties>
113
125
<testcase classname="k8s.io/kubernetes/test/integration" name="apimachinery" time="30.050000">
114
- <failure message="Failed;" type="">FailureContent;</failure>
126
+ <failure message="Failed" type="">FailureContent</failure>
127
+ </testcase>
128
+ </testsuite>
129
+ <testsuite tests="3" failures="2" time="30.050000" name="k8s.io/kubernetes/test/integration/apimachinery2" timestamp="">
130
+ <properties>
131
+ <property name="go.version" value="go1.18 linux/amd64"></property>
132
+ </properties>
133
+ <testcase classname="k8s.io/kubernetes/test/integration" name="apimachinery2" time="30.050000">
134
+ <failure message="FailedA; FailedB" type="">FailureContentA; FailureContentB</failure>
115
135
</testcase>
116
136
</testsuite>
117
137
</testsuites>`
You can’t perform that action at this time.
0 commit comments