Skip to content

Commit c580a91

Browse files
committed
feat: add Elastic Stack and Elastic Package version to test results
1 parent 9e030f9 commit c580a91

File tree

5 files changed

+67
-25
lines changed

5 files changed

+67
-25
lines changed

internal/testrunner/reporters/formats/human.go

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ func reportHumanFormat(results []testrunner.TestResult) (string, error) {
4848
}
4949

5050
t := table.NewWriter()
51-
t.AppendHeader(table.Row{"Package", "Data stream", "Test type", "Test name", "Result", "Time elapsed"})
51+
t.AppendHeader(table.Row{"Package", "Data stream", "Test type", "Test name", "Result", "Stack version", "EP version", "Time elapsed"})
5252

5353
for _, r := range results {
5454
var result string
@@ -62,7 +62,16 @@ func reportHumanFormat(results []testrunner.TestResult) (string, error) {
6262
result = "PASS"
6363
}
6464

65-
t.AppendRow(table.Row{r.Package, r.DataStream, r.TestType, r.Name, result, r.TimeElapsed})
65+
stackVersion := r.ElasticStackVersion
66+
if stackVersion == "" {
67+
stackVersion = "N/A"
68+
}
69+
epVersion := r.ElasticPackageVersion
70+
if epVersion == "" {
71+
epVersion = "N/A"
72+
}
73+
74+
t.AppendRow(table.Row{r.Package, r.DataStream, r.TestType, r.Name, result, stackVersion, epVersion, r.TimeElapsed})
6675
}
6776

6877
t.SetStyle(table.StyleRounded)

internal/testrunner/reporters/formats/xunit.go

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,9 @@ type testCase struct {
4141
ClassName string `xml:"classname,attr"`
4242
TimeInSeconds float64 `xml:"time,attr"`
4343

44+
StackVersion string `xml:"stack-version,attr,omitempty"`
45+
ElasticPackageVersion string `xml:"elastic-package-version,attr,omitempty"`
46+
4447
Error string `xml:"error,omitempty"`
4548
Failure string `xml:"failure,omitempty"`
4649
Skipped *skipped `xml:"skipped,omitempty"`
@@ -93,11 +96,13 @@ func reportXUnitFormat(results []testrunner.TestResult) (string, error) {
9396
}
9497

9598
c := testCase{
96-
Name: name,
97-
ClassName: fmt.Sprintf("%s.%s", r.Package, r.DataStream),
98-
TimeInSeconds: r.TimeElapsed.Seconds(),
99-
Error: r.ErrorMsg,
100-
Failure: failure,
99+
Name: name,
100+
ClassName: fmt.Sprintf("%s.%s", r.Package, r.DataStream),
101+
TimeInSeconds: r.TimeElapsed.Seconds(),
102+
StackVersion: r.ElasticStackVersion,
103+
ElasticPackageVersion: r.ElasticPackageVersion,
104+
Error: r.ErrorMsg,
105+
Failure: failure,
101106
}
102107

103108
if r.Skipped != nil {

internal/testrunner/runners/system/tester.go

Lines changed: 27 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ import (
3838
"github.com/elastic/elastic-package/internal/servicedeployer"
3939
"github.com/elastic/elastic-package/internal/stack"
4040
"github.com/elastic/elastic-package/internal/testrunner"
41+
"github.com/elastic/elastic-package/internal/version"
4142
"github.com/elastic/elastic-package/internal/wait"
4243
)
4344

@@ -640,10 +641,12 @@ func (r *tester) tearDownTest(ctx context.Context) error {
640641

641642
func (r *tester) newResult(name string) *testrunner.ResultComposer {
642643
return testrunner.NewResultComposer(testrunner.TestResult{
643-
TestType: TestType,
644-
Name: name,
645-
Package: r.testFolder.Package,
646-
DataStream: r.testFolder.DataStream,
644+
TestType: TestType,
645+
Name: name,
646+
Package: r.testFolder.Package,
647+
DataStream: r.testFolder.DataStream,
648+
ElasticStackVersion: r.stackVersion.Version(),
649+
ElasticPackageVersion: version.String(),
647650
})
648651
}
649652

@@ -920,12 +923,14 @@ func (r *tester) checkDeprecationWarnings(stackVersion *semver.Version, warnings
920923
details = fmt.Sprintf("%s (index: %s)", details, warning.index)
921924
}
922925
tr := testrunner.TestResult{
923-
TestType: TestType,
924-
Name: "Deprecation warnings - " + configName,
925-
Package: r.testFolder.Package,
926-
DataStream: r.testFolder.DataStream,
927-
FailureMsg: warning.Message,
928-
FailureDetails: details,
926+
TestType: TestType,
927+
Name: "Deprecation warnings - " + configName,
928+
Package: r.testFolder.Package,
929+
DataStream: r.testFolder.DataStream,
930+
FailureMsg: warning.Message,
931+
FailureDetails: details,
932+
ElasticStackVersion: r.stackVersion.Version(),
933+
ElasticPackageVersion: version.String(),
929934
}
930935
results = append(results, tr)
931936
}
@@ -2514,10 +2519,12 @@ func (r *tester) checkNewAgentLogs(ctx context.Context, agent agentdeployer.Depl
25142519
err = r.anyErrorMessages(f.Name(), startTesting, patternsContainer.patterns)
25152520
if e, ok := err.(testrunner.ErrTestCaseFailed); ok {
25162521
tr := testrunner.TestResult{
2517-
TestType: TestType,
2518-
Name: fmt.Sprintf("(%s logs - %s)", patternsContainer.containerName, configName),
2519-
Package: r.testFolder.Package,
2520-
DataStream: r.testFolder.DataStream,
2522+
TestType: TestType,
2523+
Name: fmt.Sprintf("(%s logs - %s)", patternsContainer.containerName, configName),
2524+
Package: r.testFolder.Package,
2525+
DataStream: r.testFolder.DataStream,
2526+
ElasticStackVersion: r.stackVersion.Version(),
2527+
ElasticPackageVersion: version.String(),
25212528
}
25222529
tr.FailureMsg = e.Error()
25232530
tr.FailureDetails = e.Details
@@ -2551,10 +2558,12 @@ func (r *tester) checkAgentLogs(dump []stack.DumpResult, startTesting time.Time,
25512558
err = r.anyErrorMessages(serviceLogsFile, startTesting, patternsContainer.patterns)
25522559
if e, ok := err.(testrunner.ErrTestCaseFailed); ok {
25532560
tr := testrunner.TestResult{
2554-
TestType: TestType,
2555-
Name: fmt.Sprintf("(%s logs)", patternsContainer.containerName),
2556-
Package: r.testFolder.Package,
2557-
DataStream: r.testFolder.DataStream,
2561+
TestType: TestType,
2562+
Name: fmt.Sprintf("(%s logs)", patternsContainer.containerName),
2563+
Package: r.testFolder.Package,
2564+
DataStream: r.testFolder.DataStream,
2565+
ElasticStackVersion: r.stackVersion.Version(),
2566+
ElasticPackageVersion: version.String(),
25582567
}
25592568
tr.FailureMsg = e.Error()
25602569
tr.FailureDetails = e.Details

internal/testrunner/testrunner.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,12 @@ type TestResult struct {
123123

124124
// Coverage details in Cobertura format (optional).
125125
Coverage CoverageReport
126+
127+
// Elastic Stack version
128+
ElasticStackVersion string
129+
130+
// ElasticPackage version
131+
ElasticPackageVersion string
126132
}
127133

128134
// ResultComposer wraps a TestResult and provides convenience methods for

internal/version/version.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,10 @@
55
package version
66

77
import (
8+
"fmt"
89
"runtime/debug"
910
"strconv"
11+
"strings"
1012
"time"
1113
)
1214

@@ -44,3 +46,14 @@ func BuildTimeFormatted() string {
4446
}
4547
return time.Unix(seconds, 0).Format(time.RFC3339)
4648
}
49+
50+
// String returns a formatted version string for elastic-package.
51+
// Format: "tag version-hash commitHash (build time: buildTime)" or just "version-hash commitHash" if no tag.
52+
func String() string {
53+
var parts []string
54+
if Tag != "" {
55+
parts = append(parts, Tag)
56+
}
57+
parts = append(parts, fmt.Sprintf("version-hash %s (build time: %s)", CommitHash, BuildTimeFormatted()))
58+
return strings.Join(parts, " ")
59+
}

0 commit comments

Comments
 (0)