package tape import "slices" import "testing" func TestDecodePairs(test *testing.T) { pairs := map[uint16] []byte { 3894: []byte("foo"), 7: []byte("br"), } got, err := DecodePairs([]byte { 0, 2, 0, 7, 0, 2, 15, 54, 0, 5, 98, 114, 102, 111, 111}) if err != nil { test.Fatal(err) } length := 0 for key, value := range got { test.Log(key, value) if !slices.Equal(pairs[key], value) { test.Fatal("not equal") } length ++ } test.Log("length") if length != len(pairs) { test.Fatal("wrong length") } } func TestEncodePairs(test *testing.T) { pairs := map[uint16] []byte { 3894: []byte("foo"), 7: []byte("br"), } got, err := EncodePairs(pairs) if err != nil { test.Fatal(err) } test.Log(got) valid := slices.Equal(got, []byte { 0, 2, 15, 54, 0, 3, 0, 7, 0, 5, 102, 111, 111, 98, 114}) || slices.Equal(got, []byte { 0, 2, 0, 7, 0, 2, 15, 54, 0, 5, 98, 114, 102, 111, 111}) if !valid { test.Fatal("not equal") } } func FuzzDecodePairs(fuzz *testing.F) { fuzz.Add([]byte { 0, 2, 0, 7, 0, 2, 15, 54, 0, 5, 98, 114, 102, 111, 111}) fuzz.Fuzz(func(t *testing.T, buffer []byte) { // ensure it does not panic :P DecodePairs(buffer) }) }