Codebase list golang-github-go-kit-kit / 833a0dd
fix bad Gauge test (#975) Taras authored 4 years ago GitHub committed 4 years ago
3 changed file(s) with 22 addition(s) and 8 deletion(s). Raw diff Collapse all Expand all
174174 })
175175
176176 cw.gauges.Reset().Walk(func(name string, lvs lv.LabelValues, values []float64) bool {
177 if len(values) == 0 {
178 return true
179 }
180
177181 datum := &cloudwatch.MetricDatum{
178182 MetricName: aws.String(name),
179183 Dimensions: makeDimensions(lvs...),
180184 Timestamp: aws.Time(now),
181 }
182
183 if len(values) == 0 {
184 return true
185185 }
186186
187187 // CloudWatch Put Metrics API (https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html)
163163 t.Fatal(err)
164164 }
165165 svc.mtx.RLock()
166 defer svc.mtx.RUnlock()
166167 res := svc.valuesReceived[name]
167168 delete(svc.valuesReceived, name)
168 defer svc.mtx.RUnlock()
169169 return res
170170 }
171171
66 "math"
77 "math/rand"
88 "reflect"
9 "sort"
910 "strings"
1011
1112 "github.com/go-kit/kit/metrics"
5253 for i := 0; i < n; i++ {
5354 f := float64(a[i])
5455 gauge.Add(f)
55 want[len(want)-1] += f
56 want = append(want, want[len(want)-1]+f)
5657 }
5758
58 if have := value(); reflect.DeepEqual(want, have) {
59 return fmt.Errorf("want %f, have %f", want, have)
59 have := value()
60
61 switch len(have) {
62 case 0:
63 return fmt.Errorf("got 0 values")
64 case 1: // provider doesn't support multi value
65 if have[0] != want[len(want)-1] {
66 return fmt.Errorf("want %f, have %f", want, have)
67 }
68 default: // provider support multi value gauges
69 sort.Float64s(want)
70 sort.Float64s(have)
71 if !reflect.DeepEqual(want, have) {
72 return fmt.Errorf("want %f, have %f", want, have)
73 }
6074 }
6175
6276 return nil