Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(63)

Side by Side Diff: go/src/infra/appengine/test-results/model/full_result.go

Issue 2231393002: test-results: Add merge and trim methods (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: tests: remove unecessary Trim calls Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 package model 1 package model
2 2
3 import ( 3 import (
4 "encoding/json" 4 "encoding/json"
5 "errors" 5 "errors"
6 "math"
6 "strings" 7 "strings"
7 ) 8 )
8 9
9 // FullResult represents "full_results.json". 10 // FullResult represents "full_results.json".
10 type FullResult struct { 11 type FullResult struct {
11 Version int `json:"version"` 12 Version int `json:"version"`
12 Builder string `json:"builder_name"` 13 Builder string `json:"builder_name"`
13 BuildNumber Number `json:"build_number"` 14 BuildNumber Number `json:"build_number"`
14 SecondsEpoch int64 `json:"seconds_since_epoch"` 15 SecondsEpoch int64 `json:"seconds_since_epoch"`
15 Tests FullTest `json:"tests"` 16 Tests FullTest `json:"tests"`
(...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after
276 } 277 }
277 ret.Results = []ResultSummary{{1, shortFailures}} 278 ret.Results = []ResultSummary{{1, shortFailures}}
278 279
279 if len(l.Bugs) > 0 { 280 if len(l.Bugs) > 0 {
280 ret.Bugs = make([]string, len(l.Bugs)) 281 ret.Bugs = make([]string, len(l.Bugs))
281 copy(ret.Bugs, l.Bugs) 282 copy(ret.Bugs, l.Bugs)
282 } 283 }
283 284
284 var time float64 285 var time float64
285 if l.Runtime != nil { 286 if l.Runtime != nil {
286 » » time = *l.Runtime 287 » » time = float64(round(*l.Runtime))
287 } 288 }
288 ret.Runtimes = []RuntimeSummary{{1, time}} 289 ret.Runtimes = []RuntimeSummary{{1, time}}
289 290
290 return ret, nil 291 return ret, nil
291 } 292 }
292 293
294 func round(f float64) int {
295 if math.Abs(f) < 0.5 {
296 return 0
297 }
298 return int(f + math.Copysign(0.5, f))
299 }
300
293 // MarshalJSON marshals l into JSON. 301 // MarshalJSON marshals l into JSON.
294 func (l *FullTestLeaf) MarshalJSON() ([]byte, error) { 302 func (l *FullTestLeaf) MarshalJSON() ([]byte, error) {
295 aux := testResultAux{fullTestLeafAlias: (*fullTestLeafAlias)(l)} 303 aux := testResultAux{fullTestLeafAlias: (*fullTestLeafAlias)(l)}
296 aux.Actual = strings.Join(l.Actual, " ") 304 aux.Actual = strings.Join(l.Actual, " ")
297 aux.Expected = strings.Join(l.Expected, " ") 305 aux.Expected = strings.Join(l.Expected, " ")
298 return json.Marshal(&aux) 306 return json.Marshal(&aux)
299 } 307 }
300 308
301 // UnmarshalJSON unmarshals the supplied data into l. 309 // UnmarshalJSON unmarshals the supplied data into l.
302 func (l *FullTestLeaf) UnmarshalJSON(data []byte) error { 310 func (l *FullTestLeaf) UnmarshalJSON(data []byte) error {
303 aux := testResultAux{fullTestLeafAlias: (*fullTestLeafAlias)(l)} 311 aux := testResultAux{fullTestLeafAlias: (*fullTestLeafAlias)(l)}
304 if err := json.Unmarshal(data, &aux); err != nil { 312 if err := json.Unmarshal(data, &aux); err != nil {
305 return err 313 return err
306 } 314 }
307 l.Actual = strings.Split(aux.Actual, " ") 315 l.Actual = strings.Split(aux.Actual, " ")
308 l.Expected = strings.Split(aux.Expected, " ") 316 l.Expected = strings.Split(aux.Expected, " ")
309 return nil 317 return nil
310 } 318 }
311 319
312 // Times represents "times_ms.json". 320 // Times represents "times_ms.json".
313 type Times map[string]float64 321 type Times map[string]float64
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698