MCPcopy
hub / github.com/prometheus/prometheus / TestEncodeDecode

Function TestEncodeDecode

tsdb/record/bench_test.go:36–112  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

34}
35
36func TestEncodeDecode(t *testing.T) {
37 for _, enableSTStorage := range []bool{false, true} {
38 for _, tcase := range []testrecord.RefSamplesCase{
39 testrecord.Realistic1000Samples,
40 testrecord.Realistic1000WithVariableSTSamples,
41 testrecord.Realistic1000WithConstSTSamples,
42 testrecord.WorstCase1000,
43 testrecord.WorstCase1000WithSTSamples,
44 } {
45 var (
46 dec record.Decoder
47 buf []byte
48 enc = record.Encoder{EnableSTStorage: enableSTStorage}
49 )
50
51 s := testrecord.GenTestRefSamplesCase(t, tcase)
52
53 {
54 got, err := dec.Samples(enc.Samples(s, nil), nil)
55 require.NoError(t, err)
56 // if ST is off, we expect all STs to be zero
57 expected := s
58 if !enableSTStorage {
59 expected = zeroOutSTs(s)
60 }
61
62 require.Equal(t, expected, got)
63 }
64
65 // With byte buffer (append!)
66 {
67 buf = make([]byte, 10, 1e5)
68 got, err := dec.Samples(enc.Samples(s, buf)[10:], nil)
69 require.NoError(t, err)
70
71 expected := s
72 if !enableSTStorage {
73 expected = zeroOutSTs(s)
74 }
75 require.Equal(t, expected, got)
76 }
77
78 // With sample slice
79 {
80 samples := make([]record.RefSample, 0, len(s)+1)
81 got, err := dec.Samples(enc.Samples(s, nil), samples)
82 require.NoError(t, err)
83 expected := s
84 if !enableSTStorage {
85 expected = zeroOutSTs(s)
86 }
87 require.Equal(t, expected, got)
88 }
89
90 // With compression.
91 {
92 buf := enc.Samples(s, nil)
93

Callers

nothing calls this directly

Calls 7

EncodeMethod · 0.95
GenTestRefSamplesCaseFunction · 0.92
NewEncoderFunction · 0.92
NewDecoderFunction · 0.92
zeroOutSTsFunction · 0.85
DecodeMethod · 0.80
SamplesMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…