Merge pull request #6177 from dkkb/feature/zstd_with_skippable_frame
compression: support zstd with skippable frame
This commit is contained in:
@@ -188,3 +188,39 @@ func TestCmdStreamBad(t *testing.T) {
|
||||
t.Fatalf("wrong output: %s", string(buf))
|
||||
}
|
||||
}
|
||||
|
||||
func TestDetectCompressionZstd(t *testing.T) {
|
||||
for _, tc := range []struct {
|
||||
source []byte
|
||||
expected Compression
|
||||
}{
|
||||
{
|
||||
// test zstd compression without skippable frames.
|
||||
source: []byte{
|
||||
0x28, 0xb5, 0x2f, 0xfd, // magic number of Zstandard frame: 0xFD2FB528
|
||||
0x04, 0x00, 0x31, 0x00, 0x00, // frame header
|
||||
0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, // data block "docker"
|
||||
0x16, 0x0e, 0x21, 0xc3, // content checksum
|
||||
},
|
||||
expected: Zstd,
|
||||
},
|
||||
{
|
||||
// test zstd compression with skippable frames.
|
||||
source: []byte{
|
||||
0x50, 0x2a, 0x4d, 0x18, // magic number of skippable frame: 0x184D2A50 to 0x184D2A5F
|
||||
0x04, 0x00, 0x00, 0x00, // frame size
|
||||
0x5d, 0x00, 0x00, 0x00, // user data
|
||||
0x28, 0xb5, 0x2f, 0xfd, // magic number of Zstandard frame: 0xFD2FB528
|
||||
0x04, 0x00, 0x31, 0x00, 0x00, // frame header
|
||||
0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, // data block "docker"
|
||||
0x16, 0x0e, 0x21, 0xc3, // content checksum
|
||||
},
|
||||
expected: Zstd,
|
||||
},
|
||||
} {
|
||||
compression := DetectCompression(tc.source)
|
||||
if compression != tc.expected {
|
||||
t.Fatalf("Unexpected compression %v, expected %v", compression, tc.expected)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user