(t *testing.T)
| 34 | } |
| 35 | |
| 36 | func 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 |
nothing calls this directly
no test coverage detected
searching dependent graphs…