github.com/go-graphite/carbonapi/pkg/parser.MetricRequest struct literal uses unkeyed fields
48 // overflow
49 `applyByNode(metric*.name, 2, "%.transform")`,
50 map[parser.MetricRequest][]*types.MetricData{
51 {"metric*.name", 0, 1}: {52 types.MakeMetricData("metric1.name", []float64{0, 0, 0, 0, 0, 0}, 1, now32),
53 },
54 },
github.com/go-graphite/carbonapi/tests.RewriteTestItem struct literal uses unkeyed fields
44 Err: nil,
45 },
46 },
47 {48 // overflow
49 `applyByNode(metric*.name, 2, "%.transform")`,
50 map[parser.MetricRequest][]*types.MetricData{
github.com/go-graphite/carbonapi/pkg/parser.MetricRequest struct literal uses unkeyed fields
30 {
31 `applyByNode(test.metric*.name, 1, "%.transform")`,
32 map[parser.MetricRequest][]*types.MetricData{
33 {"test.metric*.name", 0, 1}: {34 types.MakeMetricData("test.metric1.name", []float64{0, 0, 0, 0, 0, 0}, 1, now32),
35 types.MakeMetricData("test.metric2.name", []float64{0, 0, 0, 0, 0, 0}, 1, now32),
36 },
github.com/go-graphite/carbonapi/tests.RewriteTestItem struct literal uses unkeyed fields
27 now32 := int64(time.Now().Unix())
28
29 tests := []th.RewriteTestItem{
30 {31 `applyByNode(test.metric*.name, 1, "%.transform")`,
32 map[parser.MetricRequest][]*types.MetricData{
33 {"test.metric*.name", 0, 1}: {
github.com/go-graphite/carbonapi/pkg/parser.MetricRequest struct literal uses unkeyed fields
60 {
61 `aboveSeries(statsd.timers.metric.rate, 1000, 'rate', 'median')`,
62 map[parser.MetricRequest][]*types.MetricData{
63 {"statsd.timers.metric.rate", 0, 1}: {64 types.MakeMetricData("statsd.timers.metric.rate", []float64{500, 1500}, 1, now32),
65 types.MakeMetricData("statsd.timers.metric.median", []float64{50, 55}, 1, now32),
66 },
github.com/go-graphite/carbonapi/tests.RewriteTestItem struct literal uses unkeyed fields
57 Err: nil,
58 },
59 },
60 {61 `aboveSeries(statsd.timers.metric.rate, 1000, 'rate', 'median')`,
62 map[parser.MetricRequest][]*types.MetricData{
63 {"statsd.timers.metric.rate", 0, 1}: {
github.com/go-graphite/carbonapi/pkg/parser.MetricRequest struct literal uses unkeyed fields
45 {
46 `aboveSeries(metric1, 7, ".*Ko.ik$", "Bog")`,
47 map[parser.MetricRequest][]*types.MetricData{
48 {"metric1", 0, 1}: {49 types.MakeMetricData("metricSobaka", []float64{0, 0, 0, 0, 0, 0}, 1, now32),
50 types.MakeMetricData("metricKotik", []float64{3, 4, 5, 6, 7, 8}, 1, now32),
51 types.MakeMetricData("metricHomyak", []float64{4, 4, 5, 5, 6, 8}, 1, now32),
github.com/go-graphite/carbonapi/tests.RewriteTestItem struct literal uses unkeyed fields
42 Err: nil,
43 },
44 },
45 {46 `aboveSeries(metric1, 7, ".*Ko.ik$", "Bog")`,
47 map[parser.MetricRequest][]*types.MetricData{
48 {"metric1", 0, 1}: {
github.com/go-graphite/carbonapi/pkg/parser.MetricRequest struct literal uses unkeyed fields
30 {
31 `aboveSeries(metric1, 7, "Kotik", "Bog")`,
32 map[parser.MetricRequest][]*types.MetricData{
33 {"metric1", 0, 1}: {34 types.MakeMetricData("metricSobaka", []float64{0, 0, 0, 0, 0, 0}, 1, now32),
35 types.MakeMetricData("metricKotik", []float64{3, 4, 5, 6, 7, 8}, 1, now32),
36 types.MakeMetricData("metricHomyak", []float64{4, 4, 5, 5, 6, 6}, 1, now32),
github.com/go-graphite/carbonapi/tests.RewriteTestItem struct literal uses unkeyed fields
27 now32 := int64(time.Now().Unix())
28
29 tests := []th.RewriteTestItem{
30 {31 `aboveSeries(metric1, 7, "Kotik", "Bog")`,
32 map[parser.MetricRequest][]*types.MetricData{
33 {"metric1", 0, 1}: {
github.com/go-graphite/carbonapi/pkg/parser.MetricRequest struct literal uses unkeyed fields
124 types.MakeMetricData("metric3.dividend", []float64{1, 2, None, None, None, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, None, None, None}, 1, now32),
125 types.MakeMetricData("metric5.dividend", []float64{1, 2, None, None, None, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, None, None}, 1, now32),
126 },
127 {"metric*.divisor", 0, 1}: {128 types.MakeMetricData("metric1.divisor", []float64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20}, 1, now32),
129 types.MakeMetricData("metric3.divisor", []float64{1, 2, None, None, None, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, None, None, None}, 1, now32),
130 types.MakeMetricData("metric4.divisor", []float64{1, 2, 3, 4, None, 6, None, None, 9, 10, 11, None, 13, None, None, None, None, 18, 19, 20}, 1, now32),
github.com/go-graphite/carbonapi/pkg/parser.MetricRequest struct literal uses unkeyed fields
136 // empty result
137 target: "weightedAverage(metric1.dividend, metric2.divisor, 0)",
138 M: map[parser.MetricRequest][]*types.MetricData{
139 {"metric1.dividend", 0, 1}: {140 types.MakeMetricData("metric1.dividend", []float64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20}, 1, now32),
141 },
142 {"metric2.divisor", 0, 1}: {
github.com/go-graphite/carbonapi/pkg/parser.MetricRequest struct literal uses unkeyed fields
54 {
55 "weightedAverage(metric*.dividend, metric*.divisor, 0)",
56 map[parser.MetricRequest][]*types.MetricData{
57 {"metric*.dividend", 0, 1}: { 58 types.MakeMetricData("metric1.dividend", []float64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20}, 1, now32),
59 types.MakeMetricData("metric2.dividend", []float64{None, 2, None, 4, None, 6, None, 8, None, 10, None, 12, None, 14, None, 16, None, 18, None, 20}, 1, now32),
60 types.MakeMetricData("metric3.dividend", []float64{1, 2, None, None, None, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, None, None, None}, 1, now32),
github.com/go-graphite/carbonapi/pkg/parser.MetricRequest struct literal uses unkeyed fields
60 types.MakeMetricData("metric3.dividend", []float64{1, 2, None, None, None, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, None, None, None}, 1, now32),
61 types.MakeMetricData("metric5.dividend", []float64{1, 2, None, None, None, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, None, None}, 1, now32),
62 },
63 {"metric*.divisor", 0, 1}: { 64 types.MakeMetricData("metric1.divisor", []float64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20}, 1, now32),
65 types.MakeMetricData("metric3.divisor", []float64{1, 2, None, None, None, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, None, None, None}, 1, now32),
66 types.MakeMetricData("metric4.divisor", []float64{1, 2, 3, 4, None, 6, None, None, 9, 10, 11, None, 13, None, None, None, None, 18, 19, 20}, 1, now32),
github.com/go-graphite/carbonapi/tests.EvalTestItem struct literal uses unkeyed fields
73 ),
74 },
75 },
76 { 77 "weightedAverage(metric1.dividend, metric2.divisor, 0)",
78 map[parser.MetricRequest][]*types.MetricData{
79 {"metric1.dividend", 0, 1}: {
github.com/go-graphite/carbonapi/pkg/parser.MetricRequest struct literal uses unkeyed fields
76 {
77 "weightedAverage(metric1.dividend, metric2.divisor, 0)",
78 map[parser.MetricRequest][]*types.MetricData{
79 {"metric1.dividend", 0, 1}: { 80 types.MakeMetricData("metric1.dividend", []float64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20}, 1, now32),
81 },
82 {"metric2.divisor", 0, 1}: {
github.com/go-graphite/carbonapi/pkg/parser.MetricRequest struct literal uses unkeyed fields
79 {"metric1.dividend", 0, 1}: {
80 types.MakeMetricData("metric1.dividend", []float64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20}, 1, now32),
81 },
82 {"metric2.divisor", 0, 1}: { 83 types.MakeMetricData("metric2.divisor", []float64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20}, 1, now32),
84 },
85 },
github.com/go-graphite/carbonapi/pkg/parser.MetricRequest struct literal uses unkeyed fields
118 {
119 target: "weightedAverage(metric*.dividend, metric*.divisor, 0)",
120 M: map[parser.MetricRequest][]*types.MetricData{
121 {"metric*.dividend", 0, 1}: {122 types.MakeMetricData("metric1.dividend", []float64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20}, 1, now32),
123 types.MakeMetricData("metric2.dividend", []float64{None, 2, None, 4, None, 6, None, 8, None, 10, None, 12, None, 14, None, 16, None, 18, None, 20}, 1, now32),
124 types.MakeMetricData("metric3.dividend", []float64{1, 2, None, None, None, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, None, None, None}, 1, now32),
github.com/go-graphite/carbonapi/tests.EvalTestItem struct literal uses unkeyed fields
51 "weightedAverage(metric*, metric*, 0)", []float64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20}, 1, now32),
52 },
53 },
54 { 55 "weightedAverage(metric*.dividend, metric*.divisor, 0)",
56 map[parser.MetricRequest][]*types.MetricData{
57 {"metric*.dividend", 0, 1}: {
github.com/go-graphite/carbonapi/pkg/parser.MetricRequest struct literal uses unkeyed fields
32 {
33 "weightedAverage(metric*, metric*, 0)",
34 map[parser.MetricRequest][]*types.MetricData{
35 {"metric*", 0, 1}: {}, 36 },
37 []*types.MetricData{},
38 },
github.com/go-graphite/carbonapi/tests.EvalTestItem struct literal uses unkeyed fields
29 now32 := int64(time.Now().Unix())
30
31 tests := []th.EvalTestItem{
32 { 33 "weightedAverage(metric*, metric*, 0)",
34 map[parser.MetricRequest][]*types.MetricData{
35 {"metric*", 0, 1}: {},
github.com/go-graphite/carbonapi/pkg/parser.MetricRequest struct literal uses unkeyed fields
139 {"metric1.dividend", 0, 1}: {
140 types.MakeMetricData("metric1.dividend", []float64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20}, 1, now32),
141 },
142 {"metric2.divisor", 0, 1}: {143 types.MakeMetricData("metric2.divisor", []float64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20}, 1, now32),
144 },
145 },
github.com/go-graphite/carbonapi/pkg/parser.MetricRequest struct literal uses unkeyed fields
106 {
107 target: "weightedAverage(metric*, metric*, 0)",
108 M: map[parser.MetricRequest][]*types.MetricData{
109 {"metric*", 0, 1}: {110 types.MakeMetricData("metric1", []float64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20}, 1, now32),
111 types.MakeMetricData("metric2", []float64{None, 2, None, 4, None, 6, None, 8, None, 10, None, 12, None, 14, None, 16, None, 18, None, 20}, 1, now32),
112 types.MakeMetricData("metric3", []float64{1, 2, None, None, None, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, None, None, None}, 1, now32),
github.com/go-graphite/carbonapi/tests.EvalTestItem struct literal uses unkeyed fields
36 },
37 []*types.MetricData{},
38 },
39 { 40 "weightedAverage(metric*, metric*, 0)",
41 map[parser.MetricRequest][]*types.MetricData{
42 {"metric*", 0, 1}: {
github.com/go-graphite/carbonapi/pkg/parser.MetricRequest struct literal uses unkeyed fields
39 {
40 "weightedAverage(metric*, metric*, 0)",
41 map[parser.MetricRequest][]*types.MetricData{
42 {"metric*", 0, 1}: { 43 types.MakeMetricData("metric1", []float64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20}, 1, now32),
44 types.MakeMetricData("metric2", []float64{None, 2, None, 4, None, 6, None, 8, None, 10, None, 12, None, 14, None, 16, None, 18, None, 20}, 1, now32),
45 types.MakeMetricData("metric3", []float64{1, 2, None, None, None, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, None, None, None}, 1, now32),
Description
Composite literals of struct types imported from another package that do not use the field-keyed syntax are fragile because the addition of a new field (even if unexported) to the struct will cause compilation to fail.
For example,
type S struct {
A int
B int
}
func f() {
s := S{1, 2}
}
will cause errors later on, while
type S struct {
A int
B int
}
func f() {
s := S{A: 1, B: 2}
}
will not.