6736ef96ea
The next revision, 19185, renames several runtime files, and will be handled in a separate change. From-SVN: r211328
63 lines
1.8 KiB
Go
63 lines
1.8 KiB
Go
// Copyright 2009 The Go Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
// This test tests some internals of the flate package.
|
|
// The tests in package compress/gzip serve as the
|
|
// end-to-end test of the decompressor.
|
|
|
|
package flate
|
|
|
|
import (
|
|
"bytes"
|
|
"testing"
|
|
)
|
|
|
|
func TestUncompressedSource(t *testing.T) {
|
|
decoder := NewReader(bytes.NewReader([]byte{0x01, 0x01, 0x00, 0xfe, 0xff, 0x11}))
|
|
output := make([]byte, 1)
|
|
n, error := decoder.Read(output)
|
|
if n != 1 || error != nil {
|
|
t.Fatalf("decoder.Read() = %d, %v, want 1, nil", n, error)
|
|
}
|
|
if output[0] != 0x11 {
|
|
t.Errorf("output[0] = %x, want 0x11", output[0])
|
|
}
|
|
}
|
|
|
|
// The following test should not panic.
|
|
func TestIssue5915(t *testing.T) {
|
|
bits := []int{4, 0, 0, 6, 4, 3, 2, 3, 3, 4, 4, 5, 0, 0, 0, 0, 5, 5, 6,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 6, 0, 11, 0, 8, 0, 6, 6, 10, 8}
|
|
h := new(huffmanDecoder)
|
|
ok := h.init(bits)
|
|
if ok == true {
|
|
t.Fatalf("Given sequence of bits is bad, and should not succeed.")
|
|
}
|
|
}
|
|
|
|
// The following test should not panic.
|
|
func TestIssue5962(t *testing.T) {
|
|
bits := []int{4, 0, 0, 6, 4, 3, 2, 3, 3, 4, 4, 5, 0, 0, 0, 0,
|
|
5, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11}
|
|
h := new(huffmanDecoder)
|
|
ok := h.init(bits)
|
|
if ok == true {
|
|
t.Fatalf("Given sequence of bits is bad, and should not succeed.")
|
|
}
|
|
}
|
|
|
|
// The following test should not panic.
|
|
func TestIssue6255(t *testing.T) {
|
|
bits1 := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 11}
|
|
bits2 := []int{11, 13}
|
|
h := new(huffmanDecoder)
|
|
if !h.init(bits1) {
|
|
t.Fatalf("Given sequence of bits is good and should succeed.")
|
|
}
|
|
if h.init(bits2) {
|
|
t.Fatalf("Given sequence of bits is bad and should not succeed.")
|
|
}
|
|
}
|