Add non-zero exit + error message to soong metrics

Improves some error messages that would have given little/no information

Bug: 254650145
Test: relevant unit tests
Test: Induce errors and check metrics proto
Change-Id: Ife6116af74af6e62c2f8ae8774e53c28178fb8d0
This commit is contained in:
Liz Kammer
2022-10-21 10:42:35 -04:00
parent 706d35fe7c
commit f2a80c6396
10 changed files with 326 additions and 191 deletions

View File

@@ -17,8 +17,6 @@ package metrics
import (
"testing"
"time"
"android/soong/ui/tracer"
)
func TestEnd(t *testing.T) {
@@ -35,8 +33,31 @@ func TestEnd(t *testing.T) {
start: startTime,
})
perf := et.End(tracer.Thread(0))
perf := et.End()
if perf.GetRealTime() != uint64(dur.Nanoseconds()) {
t.Errorf("got %d, want %d nanoseconds for event duration", perf.GetRealTime(), dur.Nanoseconds())
}
}
func TestEndWithError(t *testing.T) {
startTime := time.Date(2020, time.July, 13, 13, 0, 0, 0, time.UTC)
dur := time.Nanosecond * 10
initialNow := _now
_now = func() time.Time { return startTime.Add(dur) }
defer func() { _now = initialNow }()
err := "foobar"
et := &EventTracer{}
et.push(&event{
desc: "test",
name: "test",
start: startTime,
nonZeroExitCode: true,
errorMsg: &err,
})
perf := et.End()
if msg := perf.GetErrorMessage(); msg != err {
t.Errorf("got %q, want %q for even error message", msg, err)
}
}