File: snappy_test.go

package info (click to toggle)
golang-github-optiopay-kafka 2.1.1-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, forky, sid, trixie
  • size: 676 kB
  • sloc: sh: 163; makefile: 2
file content (37 lines) | stat: -rw-r--r-- 828 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package proto

import (
	"bytes"
	"testing"
)

var snappyChunk = []byte("\x03\x08foo") // snappy encoding of "foo"

func TestSnappyDecodeNormal(t *testing.T) {
	got, err := snappyDecode(snappyChunk)
	if err != nil {
		t.Fatal(err)
	}
	if want := []byte("foo"); !bytes.Equal(got, want) {
		t.Fatalf("got: %v; want: %v", got, want)
	}
}

func TestSnappyDecodeJava(t *testing.T) {
	javafied := []byte{
		0x82, 'S', 'N', 'A', 'P', 'P', 'Y', 0x0, // magic
		0, 0, 0, 1, // version
		0, 0, 0, 1, // compatible version
		0, 0, 0, 5, // chunk size
		0x3, 0x8, 'f', 'o', 'o', // chunk data
		0, 0, 0, 5, // chunk size
		0x3, 0x8, 'f', 'o', 'o', // chunk data
	}
	got, err := snappyDecode(javafied)
	if err != nil {
		t.Fatal(err)
	}
	if want := []byte("foofoo"); !bytes.Equal(got, want) {
		t.Fatalf("got: %v; want: %v", got, want)
	}
}