mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-19 18:02:01 +00:00
prune junit xml files in ci harness
Over time the size of our junit xml has exploded to the point where test-grid fails to process them. We still have the original/full *.stdout files from where the junit xml files are generated from so the junit xml files need NOT have the fill/exact output for processing/display. So let us prune the large messages with an indicator that we have "[... clipped...]" some of the content so folks can see that they have to consult the full *.stdout files. Signed-off-by: Davanum Srinivas <davanum@gmail.com>
This commit is contained in:
parent
917c361880
commit
d20df79545
@ -19,6 +19,7 @@ package main
|
||||
import (
|
||||
"encoding/xml"
|
||||
"flag"
|
||||
"fmt"
|
||||
"io"
|
||||
"os"
|
||||
)
|
||||
@ -76,6 +77,7 @@ func main() {
|
||||
|
||||
if flag.NArg() > 0 {
|
||||
for _, path := range flag.Args() {
|
||||
fmt.Printf("processing junit xml file : %s\n", path)
|
||||
xmlReader, err := os.Open(path)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
@ -97,6 +99,7 @@ func main() {
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
fmt.Println("done.")
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -106,12 +109,14 @@ func pruneXML(suites *JUnitTestSuites, maxBytes int) {
|
||||
for _, testcase := range suite.TestCases {
|
||||
if testcase.SkipMessage != nil {
|
||||
if len(testcase.SkipMessage.Message) > maxBytes {
|
||||
fmt.Printf("clipping skip message in test case : %s\n", testcase.Name)
|
||||
testcase.SkipMessage.Message = "[... clipped...]" +
|
||||
testcase.SkipMessage.Message[len(testcase.SkipMessage.Message)-maxBytes:]
|
||||
}
|
||||
}
|
||||
if testcase.Failure != nil {
|
||||
if len(testcase.Failure.Contents) > maxBytes {
|
||||
fmt.Printf("clipping failure message in test case : %s\n", testcase.Name)
|
||||
testcase.Failure.Contents = "[... clipped...]" +
|
||||
testcase.Failure.Contents[len(testcase.Failure.Contents)-maxBytes:]
|
||||
}
|
||||
|
@ -240,6 +240,14 @@ produceJUnitXMLReport() {
|
||||
rm "${junit_filename_prefix}"*.stdout
|
||||
fi
|
||||
|
||||
if ! command -v prune-junit-xml >/dev/null 2>&1; then
|
||||
kube::log::status "prune-junit-xml not found; installing from hack/tools"
|
||||
pushd "${KUBE_ROOT}/cmd/prune-junit-xml" >/dev/null
|
||||
GO111MODULE=on go install .
|
||||
popd >/dev/null
|
||||
fi
|
||||
prune-junit-xml "${junit_xml_filename}"
|
||||
|
||||
kube::log::status "Saved JUnit XML test report to ${junit_xml_filename}"
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user