Skip to content

Commit 028425b

Browse files
committed
Propogate errors and other fixes
1 parent 54383be commit 028425b

File tree

2 files changed

+14
-16
lines changed

2 files changed

+14
-16
lines changed

.evergreen/perfcomp/cmd/perfcomp/mdreport.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,14 +38,14 @@ func runMdCommand(cmd *cobra.Command, args []string) error {
3838
// open file to read
3939
fRead, err := os.Open(perfReportFileTxt)
4040
if err != nil {
41-
log.Fatalf("Could not open %s: %v", perfReportFileTxt, err)
41+
return fmt.Errorf("failed to open perf report file %s: %v", perfReportFileTxt, err)
4242
}
4343
defer fRead.Close()
4444

4545
// open file to write
4646
fWrite, err := os.Create(perfReportFileMd)
4747
if err != nil {
48-
log.Fatalf("Could not create %s: %v", perfReportFileMd, err)
48+
return fmt.Errorf("failed to create perf report file %s: %v", perfReportFileMd, err)
4949
}
5050
defer fWrite.Close()
5151

@@ -126,10 +126,10 @@ func generateEvgLink(version string, variant string) (string, error) {
126126
return u.String(), nil
127127
}
128128

129-
func printUrlToLine(fWrite *os.File, line string, link string, targetWord string, step int) {
129+
func printUrlToLine(fWrite *os.File, line string, link string, targetWord string, shift int) {
130130
words := strings.Split(line, " ")
131131
for i, w := range words {
132-
if i > 0 && words[i+step] == targetWord {
132+
if i > 0 && i+shift < len(words) && words[i+shift] == targetWord {
133133
fmt.Fprintf(fWrite, "[%s](%s)", w, link)
134134
} else {
135135
fmt.Fprint(fWrite, w)

.evergreen/perfcomp/compare.go

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ func Compare(ctx context.Context, versionID string, perfAnalyticsConnString stri
148148
return nil, fmt.Errorf("error getting raw data: %v", err)
149149
}
150150

151-
allEnergyStats, err := getEnergyStatsForAllBenchMarks(findCtx, patchRawData, db.Collection(stableRegionsColl), perfContext)
151+
allEnergyStats, err := getEnergyStatsForAllBenchmarks(findCtx, patchRawData, db.Collection(stableRegionsColl), perfContext)
152152
if err != nil {
153153
return nil, fmt.Errorf("error getting energy statistics: %v", err)
154154
}
@@ -174,7 +174,7 @@ func findRawData(ctx context.Context, project string, version string, coll *mong
174174

175175
cursor, err := coll.Find(ctx, filter)
176176
if err != nil {
177-
log.Fatalf(
177+
return nil, fmt.Errorf(
178178
"error retrieving raw data for version %q: %v",
179179
version,
180180
err,
@@ -187,18 +187,16 @@ func findRawData(ctx context.Context, project string, version string, coll *mong
187187
}
188188
}()
189189

190-
log.Printf("Successfully retrieved %d docs from version %s.\n", cursor.RemainingBatchLength(), version)
191-
192190
var rawData []RawData
193191
err = cursor.All(ctx, &rawData)
194192
if err != nil {
195-
log.Fatalf(
193+
return nil, fmt.Errorf(
196194
"error decoding raw data from version %q: %v",
197195
version,
198196
err,
199197
)
200198
}
201-
199+
log.Printf("Successfully retrieved %d docs from version %s.\n", len(rawData), version)
202200
return rawData, err
203201
}
204202

@@ -216,12 +214,12 @@ func findLastStableRegion(ctx context.Context, project string, testname string,
216214

217215
findOptions := options.FindOne().SetSort(bson.D{{"end", -1}})
218216

219-
var sr *StableRegion
217+
var sr StableRegion
220218
err := coll.FindOne(ctx, filter, findOptions).Decode(&sr)
221219
if err != nil {
222220
return nil, err
223221
}
224-
return sr, nil
222+
return &sr, nil
225223
}
226224

227225
// Calculate the energy statistics for all measurements in a benchmark.
@@ -236,7 +234,7 @@ func getEnergyStatsForOneBenchmark(ctx context.Context, rd RawData, coll *mongo.
236234

237235
stableRegion, err := findLastStableRegion(ctx, project, testname, measName, coll, perfContext)
238236
if err != nil {
239-
log.Fatalf(
237+
return nil, fmt.Errorf(
240238
"error finding last stable region for test %q, measurement %q: %v",
241239
testname,
242240
measName,
@@ -251,7 +249,7 @@ func getEnergyStatsForOneBenchmark(ctx context.Context, rd RawData, coll *mongo.
251249

252250
estat, tstat, hscore, err := calcEnergyStatistics(stableRegionVec, measValVec)
253251
if err != nil {
254-
log.Fatalf(
252+
return nil, fmt.Errorf(
255253
"could not calculate energy stats for test %q, measurement %q: %v",
256254
testname,
257255
measName,
@@ -281,12 +279,12 @@ func getEnergyStatsForOneBenchmark(ctx context.Context, rd RawData, coll *mongo.
281279
return energyStats, nil
282280
}
283281

284-
func getEnergyStatsForAllBenchMarks(ctx context.Context, patchRawData []RawData, coll *mongo.Collection, perfContext string) ([]*EnergyStats, error) {
282+
func getEnergyStatsForAllBenchmarks(ctx context.Context, patchRawData []RawData, coll *mongo.Collection, perfContext string) ([]*EnergyStats, error) {
285283
var allEnergyStats []*EnergyStats
286284
for _, rd := range patchRawData {
287285
energyStats, err := getEnergyStatsForOneBenchmark(ctx, rd, coll, perfContext)
288286
if err != nil {
289-
log.Fatalf(
287+
return nil, fmt.Errorf(
290288
"could not get energy stats for %q: %v",
291289
rd.Info.TestName,
292290
err,

0 commit comments

Comments
 (0)