ebpf_exporter

Форк
0
/
static_map_test.go 
81 строка · 1.8 Кб
1
package decoder
2

3
import (
4
	"bytes"
5
	"strconv"
6
	"testing"
7

8
	"github.com/cloudflare/ebpf_exporter/v2/config"
9
)
10

11
func TestStaticMapDecoder(t *testing.T) {
12
	cases := []struct {
13
		in      []byte
14
		mapping map[string]string
15
		out     []byte
16
	}{
17
		{
18
			in:      []byte(strconv.Itoa(int(1))),
19
			mapping: map[string]string{"1": "read", "2": "write"},
20
			out:     []byte("read"),
21
		},
22
		{
23
			in:      []byte(strconv.Itoa(int(2))),
24
			mapping: map[string]string{"1": "read", "2": "write"},
25
			out:     []byte("write"),
26
		},
27
		{
28
			in:      []byte(strconv.Itoa(int(3))),
29
			mapping: map[string]string{"1": "read", "2": "write"},
30
			out:     []byte("unknown:3"),
31
		},
32
	}
33

34
	for _, c := range cases {
35
		d := &StaticMap{}
36

37
		out, err := d.Decode(c.in, config.Decoder{StaticMap: c.mapping})
38
		if err != nil {
39
			t.Errorf("Error decoding %#v with mapping set to %#v: %s", c.in, c.mapping, err)
40
		}
41

42
		if !bytes.Equal(out, c.out) {
43
			t.Errorf("Expected %s, got %s", c.out, out)
44
		}
45
	}
46
}
47

48
func TestStaticMapDecoderAllowUnknown(t *testing.T) {
49
	cases := []struct {
50
		in           []byte
51
		mapping      map[string]string
52
		allowUnknown bool
53
		out          []byte
54
	}{
55
		{
56
			in:           []byte(strconv.Itoa(int(3))),
57
			mapping:      map[string]string{"1": "read", "2": "write"},
58
			allowUnknown: true,
59
			out:          []byte("3"),
60
		},
61
		{
62
			in:           []byte(strconv.Itoa(int(3))),
63
			mapping:      map[string]string{"1": "read", "2": "write"},
64
			allowUnknown: false,
65
			out:          []byte("unknown:3"),
66
		},
67
	}
68

69
	for _, c := range cases {
70
		d := &StaticMap{}
71

72
		out, err := d.Decode(c.in, config.Decoder{StaticMap: c.mapping, AllowUnknown: c.allowUnknown})
73
		if err != nil {
74
			t.Errorf("Error decoding %#v with mapping set to %#v: %s", c.in, c.mapping, err)
75
		}
76

77
		if !bytes.Equal(out, c.out) {
78
			t.Errorf("Expected %s, got %s", c.out, out)
79
		}
80
	}
81
}
82

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.