vitess.io/vitess@v0.16.2/go/vt/vttablet/tabletserver/throttle/base/metric_health_test.go (about) 1 /* 2 Copyright 2017 GitHub Inc. 3 4 Licensed under MIT License. See https://github.com/github/freno/blob/master/LICENSE 5 */ 6 7 package base 8 9 import ( 10 "testing" 11 12 "github.com/stretchr/testify/assert" 13 ) 14 15 func TestAggregate(t *testing.T) { 16 { 17 m1 := MetricHealthMap{ 18 "a": &MetricHealth{SecondsSinceLastHealthy: 0}, 19 } 20 m2 := MetricHealthMap{} 21 m1.Aggregate(m2) 22 assert.Equal(t, 1, len(m1)) 23 assert.Equal(t, int64(0), m1["a"].SecondsSinceLastHealthy) 24 } 25 { 26 m1 := MetricHealthMap{ 27 "a": &MetricHealth{SecondsSinceLastHealthy: 0}, 28 } 29 m2 := MetricHealthMap{} 30 m2.Aggregate(m1) 31 assert.Equal(t, 1, len(m2)) 32 assert.Equal(t, int64(0), m2["a"].SecondsSinceLastHealthy) 33 } 34 { 35 m1 := MetricHealthMap{ 36 "a": &MetricHealth{SecondsSinceLastHealthy: 7}, 37 } 38 m2 := MetricHealthMap{} 39 m1.Aggregate(m2) 40 assert.Equal(t, 1, len(m1)) 41 assert.Equal(t, int64(7), m1["a"].SecondsSinceLastHealthy) 42 } 43 { 44 m1 := MetricHealthMap{ 45 "a": &MetricHealth{SecondsSinceLastHealthy: 7}, 46 } 47 m2 := MetricHealthMap{} 48 m2.Aggregate(m1) 49 assert.Equal(t, 1, len(m2)) 50 assert.Equal(t, int64(7), m2["a"].SecondsSinceLastHealthy) 51 } 52 { 53 m1 := MetricHealthMap{ 54 "a": &MetricHealth{SecondsSinceLastHealthy: 7}, 55 } 56 m2 := MetricHealthMap{ 57 "a": &MetricHealth{SecondsSinceLastHealthy: 11}, 58 } 59 m1.Aggregate(m2) 60 assert.Equal(t, 1, len(m1)) 61 assert.Equal(t, int64(11), m1["a"].SecondsSinceLastHealthy) 62 } 63 { 64 m1 := MetricHealthMap{ 65 "a": &MetricHealth{SecondsSinceLastHealthy: 11}, 66 } 67 m2 := MetricHealthMap{ 68 "a": &MetricHealth{SecondsSinceLastHealthy: 7}, 69 } 70 m1.Aggregate(m2) 71 assert.Equal(t, 1, len(m1)) 72 assert.Equal(t, int64(11), m1["a"].SecondsSinceLastHealthy) 73 } 74 { 75 m1 := MetricHealthMap{ 76 "a": &MetricHealth{SecondsSinceLastHealthy: 7}, 77 "b": &MetricHealth{SecondsSinceLastHealthy: 19}, 78 } 79 m2 := MetricHealthMap{ 80 "a": &MetricHealth{SecondsSinceLastHealthy: 11}, 81 "b": &MetricHealth{SecondsSinceLastHealthy: 17}, 82 } 83 m1.Aggregate(m2) 84 assert.Equal(t, 2, len(m1)) 85 assert.Equal(t, int64(11), m1["a"].SecondsSinceLastHealthy) 86 assert.Equal(t, int64(19), m1["b"].SecondsSinceLastHealthy) 87 } 88 { 89 m1 := MetricHealthMap{ 90 "a": &MetricHealth{SecondsSinceLastHealthy: 7}, 91 "b": &MetricHealth{SecondsSinceLastHealthy: 19}, 92 } 93 m2 := MetricHealthMap{ 94 "a": &MetricHealth{SecondsSinceLastHealthy: 11}, 95 "c": &MetricHealth{SecondsSinceLastHealthy: 17}, 96 } 97 m1.Aggregate(m2) 98 assert.Equal(t, 3, len(m1), 3) 99 assert.Equal(t, int64(11), m1["a"].SecondsSinceLastHealthy) 100 assert.Equal(t, int64(19), m1["b"].SecondsSinceLastHealthy) 101 assert.Equal(t, int64(17), m1["c"].SecondsSinceLastHealthy) 102 } 103 { 104 m0 := MetricHealthMap{} 105 m1 := MetricHealthMap{ 106 "a": &MetricHealth{SecondsSinceLastHealthy: 7}, 107 "b": &MetricHealth{SecondsSinceLastHealthy: 19}, 108 } 109 m2 := MetricHealthMap{ 110 "a": &MetricHealth{SecondsSinceLastHealthy: 11}, 111 "c": &MetricHealth{SecondsSinceLastHealthy: 17}, 112 } 113 m0.Aggregate(m2) 114 m0.Aggregate(m1) 115 assert.Equal(t, 3, len(m0)) 116 assert.Equal(t, int64(11), m0["a"].SecondsSinceLastHealthy) 117 assert.Equal(t, int64(19), m0["b"].SecondsSinceLastHealthy) 118 assert.Equal(t, int64(17), m0["c"].SecondsSinceLastHealthy) 119 } 120 }