ebpf_exporter
45 строк · 990.0 Байт
1package decoder
2
3import (
4"bytes"
5"testing"
6
7"github.com/cloudflare/ebpf_exporter/v2/config"
8)
9
10func TestMajorMinorDecoder(t *testing.T) {
11cases := []struct {
12in []byte
13cache map[uint64][]byte
14out []byte
15}{
16{
17in: []byte{0x0, 0x8, 0x0, 0x0},
18cache: map[uint64][]byte{uint64(2048): []byte("sda"), uint64(2064): []byte("sdb")},
19out: []byte("sda"),
20},
21{
22in: []byte{0x10, 0x8, 0x0, 0x0},
23cache: map[uint64][]byte{uint64(2048): []byte("sda"), uint64(2064): []byte("sdb")},
24out: []byte("sdb"),
25},
26{
27in: []byte{0x10, 0x88, 0x0, 0x0},
28cache: map[uint64][]byte{uint64(2048): []byte("sda")},
29out: []byte("unknown:136:16"),
30},
31}
32
33for _, c := range cases {
34d := &MajorMinor{cache: c.cache}
35
36out, err := d.Decode(c.in, config.Decoder{})
37if err != nil {
38t.Errorf("Error decoding %#v with cache set to %#v: %s", c.in, c.cache, err)
39}
40
41if !bytes.Equal(out, c.out) {
42t.Errorf("Expected %s, got %s", c.out, out)
43}
44}
45}
46