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

Side by Side Diff: go/src/infra/monitoring/analyzer/analyzer_test.go

Issue 1874053002: [alerts-dispatcher] update to build again :) also fixes a concurrent map access (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: fix typo Created 4 years, 8 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 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package analyzer 5 package analyzer
6 6
7 import ( 7 import (
8 "fmt" 8 "fmt"
9 "infra/libs/testing/ansidiff" 9 "infra/libs/testing/ansidiff"
10 "infra/monitoring/client" 10 "infra/monitoring/client"
(...skipping 904 matching lines...) Expand 10 before | Expand all | Expand 10 after
915 }, 915 },
916 step: messages.Step{ 916 step: messages.Step{
917 Name: "fake_tests", 917 Name: "fake_tests",
918 }, 918 },
919 }, 919 },
920 }, 920 },
921 testResults: messages.TestResults{}, 921 testResults: messages.TestResults{},
922 alerts: []messages.Alert{ 922 alerts: []messages.Alert{
923 { 923 {
924 Key: "fake.master.fake.builder.fake_te sts", 924 Key: "fake.master.fake.builder.fake_te sts",
925 » » » » » Title: "Builder step failure: fake.maste r.fake.builder", 925 » » » » » Title: "fake.builder step failure: fake. master.fake.builder",
926 » » » » » Body: "fake_tests failing on fake.maste r/fake.builder",
926 Type: "buildfailure", 927 Type: "buildfailure",
927 Extension: messages.BuildFailure{ 928 Extension: messages.BuildFailure{
928 Builders: []messages.AlertedBuil der{ 929 Builders: []messages.AlertedBuil der{
929 { 930 {
930 Name: " fake.builder", 931 Name: " fake.builder",
931 URL: " https://build.chromium.org/p/fake.master/builders/fake.builder", 932 URL: " https://build.chromium.org/p/fake.master/builders/fake.builder",
932 FirstFailure: 4 2, 933 FirstFailure: 4 2,
933 LatestFailure: 4 2, 934 LatestFailure: 4 2,
934 }, 935 },
935 }, 936 },
(...skipping 11 matching lines...) Expand all
947 } 948 }
948 949
949 mc := &mockReader{} 950 mc := &mockReader{}
950 a := New(mc, 0, 10) 951 a := New(mc, 0, 10)
951 a.Now = fakeNow(time.Unix(0, 0)) 952 a.Now = fakeNow(time.Unix(0, 0))
952 953
953 for _, test := range tests { 954 for _, test := range tests {
954 mc.testResults = &test.testResults 955 mc.testResults = &test.testResults
955 alerts, err := a.stepFailureAlerts(test.failures) 956 alerts, err := a.stepFailureAlerts(test.failures)
956 if !reflect.DeepEqual(alerts, test.alerts) { 957 if !reflect.DeepEqual(alerts, test.alerts) {
957 » » » t.Errorf("%s failed. Got:\n\t%+v, want:\n\t%+v", test.na me, alerts, test.alerts) 958 » » » t.Errorf("%s failed. Got:\n\t%+v, want:\n\t%+v\nDiff: %s ", test.name, alerts, test.alerts,
959 » » » » ansidiff.Diff(alerts, test.alerts))
958 } 960 }
959 if !reflect.DeepEqual(err, test.err) { 961 if !reflect.DeepEqual(err, test.err) {
960 t.Errorf("%s failed. Got %+v, want %+v", test.name, err, test.err) 962 t.Errorf("%s failed. Got %+v, want %+v", test.name, err, test.err)
961 } 963 }
962 } 964 }
963 } 965 }
964 966
965 func TestLatestBuildStep(t *testing.T) { 967 func TestLatestBuildStep(t *testing.T) {
966 tests := []struct { 968 tests := []struct {
967 name string 969 name string
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
1093 } 1095 }
1094 if gotErr != test.wantErr { 1096 if gotErr != test.wantErr {
1095 t.Errorf("%s failed. Got %s, want %s.", test.name, gotEr r, test.wantErr) 1097 t.Errorf("%s failed. Got %s, want %s.", test.name, gotEr r, test.wantErr)
1096 } 1098 }
1097 } 1099 }
1098 } 1100 }
1099 1101
1100 func TestExcludeFailure(t *testing.T) { 1102 func TestExcludeFailure(t *testing.T) {
1101 tests := []struct { 1103 tests := []struct {
1102 name string 1104 name string
1103 » » cfgs map[string]messages.MasterConfig 1105 » » gk messages.GatekeeperConfig
1104 master, builder, step string 1106 master, builder, step string
1105 want bool 1107 want bool
1106 }{ 1108 }{
1107 { 1109 {
1108 name: "empty config", 1110 name: "empty config",
1109 master: "fake.master", 1111 master: "fake.master",
1110 builder: "fake.builder", 1112 builder: "fake.builder",
1111 step: "fake_step", 1113 step: "fake_step",
1112 want: false, 1114 want: false,
1113 }, 1115 },
1114 { 1116 {
1115 name: "specifically excluded builder", 1117 name: "specifically excluded builder",
1116 master: "fake.master", 1118 master: "fake.master",
1117 builder: "fake.builder", 1119 builder: "fake.builder",
1118 step: "fake_step", 1120 step: "fake_step",
1119 » » » cfgs: map[string]messages.MasterConfig{ 1121 » » » gk: messages.GatekeeperConfig{Masters: map[string][]mess ages.MasterConfig{
1120 » » » » "fake.master": { 1122 » » » » "fake.master": {{
1121 ExcludedBuilders: []string{"fake.builder "}, 1123 ExcludedBuilders: []string{"fake.builder "},
1122 » » » » }, 1124 » » » » }},
1123 » » » }, 1125 » » » }},
1124 want: true, 1126 want: true,
1125 }, 1127 },
1126 { 1128 {
1127 name: "specifically excluded master step", 1129 name: "specifically excluded master step",
1128 master: "fake.master", 1130 master: "fake.master",
1129 builder: "fake.builder", 1131 builder: "fake.builder",
1130 step: "fake_step", 1132 step: "fake_step",
1131 » » » cfgs: map[string]messages.MasterConfig{ 1133 » » » gk: messages.GatekeeperConfig{Masters: map[string][]mess ages.MasterConfig{
1132 » » » » "fake.master": { 1134 » » » » "fake.master": {{
1133 ExcludedSteps: []string{"fake_step"}, 1135 ExcludedSteps: []string{"fake_step"},
1134 » » » » }, 1136 » » » » }},
1135 » » » }, 1137 » » » }},
1136 want: true, 1138 want: true,
1137 }, 1139 },
1138 { 1140 {
1139 name: "specifically excluded builder step", 1141 name: "specifically excluded builder step",
1140 master: "fake.master", 1142 master: "fake.master",
1141 builder: "fake.builder", 1143 builder: "fake.builder",
1142 step: "fake_step", 1144 step: "fake_step",
1143 » » » cfgs: map[string]messages.MasterConfig{ 1145 » » » gk: messages.GatekeeperConfig{Masters: map[string][]mess ages.MasterConfig{
1144 » » » » "fake.master": { 1146 » » » » "fake.master": {{
1145 Builders: map[string]messages.BuilderCon fig{ 1147 Builders: map[string]messages.BuilderCon fig{
1146 "fake.builder": { 1148 "fake.builder": {
1147 ExcludedSteps: []string{ "fake_step"}, 1149 ExcludedSteps: []string{ "fake_step"},
1148 }, 1150 },
1149 » » » » » }, 1151 » » » » » }},
1150 » » » » }, 1152 » » » » }},
1151 }, 1153 },
1152 want: true, 1154 want: true,
1153 }, 1155 },
1154 { 1156 {
1155 name: "wildcard builder excluded", 1157 name: "wildcard builder excluded",
1156 master: "fake.master", 1158 master: "fake.master",
1157 builder: "fake.builder", 1159 builder: "fake.builder",
1158 step: "fake_step", 1160 step: "fake_step",
1159 » » » cfgs: map[string]messages.MasterConfig{ 1161 » » » gk: messages.GatekeeperConfig{Masters: map[string][]mess ages.MasterConfig{
1160 » » » » "fake.master": { 1162 » » » » "fake.master": {{
1161 ExcludedBuilders: []string{"*"}, 1163 ExcludedBuilders: []string{"*"},
1162 » » » » }, 1164 » » » » }},
1163 » » » }, 1165 » » » }},
1164 want: true, 1166 want: true,
1165 }, 1167 },
1166 } 1168 }
1167 1169
1168 a := New(&mockReader{}, 0, 10) 1170 a := New(&mockReader{}, 0, 10)
1169 for _, test := range tests { 1171 for _, test := range tests {
1170 » » a.MasterCfgs = test.cfgs 1172 » » a.Gatekeeper = NewGatekeeperRules(test.gk)
1171 » » got := a.excludeFailure(test.master, test.builder, test.step) 1173 » » got := a.Gatekeeper.ExcludeFailure(test.master, test.builder, te st.step)
1172 if got != test.want { 1174 if got != test.want {
1173 t.Errorf("%s failed. Got: %+v, want: %+v", test.name, go t, test.want) 1175 t.Errorf("%s failed. Got: %+v, want: %+v", test.name, go t, test.want)
1174 } 1176 }
1175 } 1177 }
1176 } 1178 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698