package view import ( "context" "testing" "go.opencensus.io/stats" ) func TestMeasureFloat64AndInt64(t *testing.T) { // Recording through both a Float64Measure and Int64Measure with the // same name should work. im := stats.Int64("TestMeasureFloat64AndInt64", "", stats.UnitDimensionless) fm := stats.Float64("TestMeasureFloat64AndInt64", "", stats.UnitDimensionless) if im == nil || fm == nil { t.Fatal("Error creating Measures") } v1 := &View{ Name: "TestMeasureFloat64AndInt64/v1", Measure: im, Aggregation: Sum(), } v2 := &View{ Name: "TestMeasureFloat64AndInt64/v2", Measure: fm, Aggregation: Sum(), } Register(v1, v2) stats.Record(context.Background(), im.M(5)) stats.Record(context.Background(), fm.M(2.2)) d1, _ := RetrieveData(v1.Name) d2, _ := RetrieveData(v2.Name) sum1 := d1[0].Data.(*SumData) sum2 := d2[0].Data.(*SumData) // We expect both views to return 7.2, as though we recorded on a single measure. if got, want := sum1.Value, 7.2; got != want { t.Errorf("sum1 = %v; want %v", got, want) } if got, want := sum2.Value, 7.2; got != want { t.Errorf("sum2 = %v; want %v", got, want) } }