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

Unified Diff: go/src/infra/appengine/test-results/model/end_to_end_test.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 side-by-side diff with in-line comments
Download patch
Index: go/src/infra/appengine/test-results/model/end_to_end_test.go
diff --git a/go/src/infra/appengine/test-results/model/end_to_end_test.go b/go/src/infra/appengine/test-results/model/end_to_end_test.go
new file mode 100644
index 0000000000000000000000000000000000000000..3271858af128a77b07583cd515af042003b3595c
--- /dev/null
+++ b/go/src/infra/appengine/test-results/model/end_to_end_test.go
@@ -0,0 +1,122 @@
+package model
+
+import (
+ "bytes"
+ "encoding/json"
+ "io/ioutil"
+ "path/filepath"
+ "testing"
+
+ . "github.com/smartystreets/goconvey/convey"
+)
+
+func TestEndToEnd(t *testing.T) {
+ t.Parallel()
+
+ Convey("End to end", t, func() {
+ // This test is a port of the test named "test_merge_full_results_format"
+ // from "model/test/jsonresults_test.py" in the Python
+ // application.
+ Convey("FullResult: clean, unmarshal JSON, merge, trim", func() {
+ b, err := ioutil.ReadFile(filepath.Join("testdata", "full_results.jsonp"))
+ So(err, ShouldBeNil)
+ r, err := CleanJSON(bytes.NewReader(bytes.TrimSpace(b)))
+ So(err, ShouldBeNil)
+
+ expected := &AggregateResult{
+ Builder: "Webkit",
+ Version: ResultsVersion,
+ BuilderInfo: &BuilderInfo{
+ BuildNumbers: []Number{3},
+ ChromeRevs: []string{"5678"},
+ FailureMap: FailureLongNames,
+ FailuresByType: map[string][]int{
+ "AUDIO": {0},
+ "CRASH": {3},
+ "FAIL": {2},
+ "IMAGE": {1},
+ "IMAGE+TEXT": {0},
+ "MISSING": {0},
+ "PASS": {10},
+ "SKIP": {2},
+ "TEXT": {3},
+ "TIMEOUT": {16},
+ "LEAK": {1},
+ },
+ SecondsEpoch: []int64{1368146629},
+ Tests: AggregateTest{
+ "media": AggregateTest{
+ "W3C": AggregateTest{
+ "audio": AggregateTest{
+ "src": AggregateTest{
+ "src_removal_does_not_trigger_loadstart.html": &AggregateTestLeaf{
+ Results: []ResultSummary{{1, "P"}},
+ Runtimes: []RuntimeSummary{{1, 4}},
+ },
+ },
+ },
+ // "video" is not present because the
+ // expected fields are "PASS" and "NOTRUN".
+ },
+ "encrypted-media": AggregateTest{
+ "random-test-1.html": &AggregateTestLeaf{
+ Bugs: []string{"crbug.com/1234"},
+ Results: []ResultSummary{{1, "T"}},
+ Runtimes: []RuntimeSummary{{1, 6}},
+ Expected: []string{"TIMEOUT"},
+ },
+ "random-test-2.html": &AggregateTestLeaf{
+ Expected: []string{"TIMEOUT"},
+ Results: []ResultSummary{{1, "T"}},
+ Runtimes: []RuntimeSummary{{1, 0}},
+ },
+ },
+ "media-document-audio-repaint.html": &AggregateTestLeaf{
+ Expected: []string{"IMAGE"},
+ Results: []ResultSummary{{1, "I"}},
+ Runtimes: []RuntimeSummary{{1, 0}},
+ },
+ "progress-events-generated-correctly.html": &AggregateTestLeaf{
+ Expected: []string{"PASS", "FAIL", "IMAGE", "TIMEOUT", "CRASH", "MISSING"},
+ Results: []ResultSummary{{1, "T"}},
+ Runtimes: []RuntimeSummary{{1, 6}},
+ },
+ "flaky-failed.html": &AggregateTestLeaf{
+ Expected: []string{"PASS", "FAIL"},
+ Results: []ResultSummary{{1, "Q"}},
+ Runtimes: []RuntimeSummary{{1, 0}},
+ },
+ "unexpected-fail.html": &AggregateTestLeaf{
+ Results: []ResultSummary{{1, "Q"}},
+ Runtimes: []RuntimeSummary{{1, 0}},
+ },
+ "unexpected-leak.html": &AggregateTestLeaf{
+ Results: []ResultSummary{{1, "K"}},
+ Runtimes: []RuntimeSummary{{1, 0}},
+ },
+ "unexpected-flake.html": &AggregateTestLeaf{
+ Results: []ResultSummary{{1, "QP"}},
+ Runtimes: []RuntimeSummary{{1, 0}},
+ },
+ "unexpected-unexpected.html": &AggregateTestLeaf{
+ Results: []ResultSummary{{1, "U"}},
+ Runtimes: []RuntimeSummary{{1, 0}},
+ },
+ },
+ },
+ },
+ }
+
+ var aggr AggregateResult
+ aggr.Builder = "Webkit"
+ var result FullResult
+
+ So(json.NewDecoder(r).Decode(&result), ShouldBeNil)
+ convertedAggr, err := result.AggregateResult()
+ So(err, ShouldBeNil)
+ So(aggr.Merge(&convertedAggr), ShouldBeNil)
+ So(aggr.Trim(ResultsSize), ShouldBeNil)
+ So(&aggr, ShouldResemble, expected)
+ })
+ })
+}

Powered by Google App Engine
This is Rietveld 408576698