Skip to content

Commit 6f3f16d

Browse files
authored
Merge pull request #177 from vmarkovtsev/master
Fix common result merging
2 parents 3140ab4 + fc3dceb commit 6f3f16d

File tree

4 files changed

+22
-2
lines changed

4 files changed

+22
-2
lines changed

cmd/hercules/combine.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ var combineCmd = &cobra.Command{
5050
}
5151
mergedMessage := pb.AnalysisResults{
5252
Header: &pb.Metadata{
53-
Version: 2,
53+
Version: int32(hercules.BinaryVersion),
5454
Hash: hercules.BinaryGitHash,
5555
Repository: strings.Join(repos, " & "),
5656
},

internal/core/pipeline.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,16 @@ type CommonAnalysisResult struct {
176176
RunTimePerItem map[string]float64
177177
}
178178

179+
// Copy produces a deep clone of the object.
180+
func (car CommonAnalysisResult) Copy() CommonAnalysisResult {
181+
result := car
182+
result.RunTimePerItem = map[string]float64{}
183+
for key, val := range car.RunTimePerItem {
184+
result.RunTimePerItem[key] = val
185+
}
186+
return result
187+
}
188+
179189
// BeginTimeAsTime converts the UNIX timestamp of the beginning to Go time.
180190
func (car *CommonAnalysisResult) BeginTimeAsTime() time.Time {
181191
return time.Unix(car.BeginTime, 0)

internal/core/pipeline_test.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -542,6 +542,16 @@ C 1 af9ddc0db70f09f3f27b4b98e415592a7485171c
542542
`, stream.String())
543543
}
544544

545+
func TestCommonAnalysisResultCopy(t *testing.T) {
546+
c1 := CommonAnalysisResult{
547+
BeginTime: 1513620635, EndTime: 1513720635, CommitsNumber: 1, RunTime: 100,
548+
RunTimePerItem: map[string]float64{"one": 1, "two": 2}}
549+
c2 := c1.Copy()
550+
assert.Equal(t, c1, c2)
551+
c2.RunTimePerItem["one"] = 100500
552+
assert.Equal(t, c1.RunTimePerItem["one"], float64(1))
553+
}
554+
545555
func TestCommonAnalysisResultMerge(t *testing.T) {
546556
c1 := CommonAnalysisResult{
547557
BeginTime: 1513620635, EndTime: 1513720635, CommitsNumber: 1, RunTime: 100,

leaves/burndown.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -714,7 +714,7 @@ func (analyser *BurndownAnalysis) MergeResults(
714714
// least of (sampling1, sampling2) and (granularity1, granularity2).
715715
func mergeMatrices(m1, m2 DenseHistory, granularity1, sampling1, granularity2, sampling2 int,
716716
c1, c2 *core.CommonAnalysisResult) DenseHistory {
717-
commonMerged := *c1
717+
commonMerged := c1.Copy()
718718
commonMerged.Merge(c2)
719719

720720
var granularity, sampling int

0 commit comments

Comments
 (0)