34 lines
621 B
Go
34 lines
621 B
Go
package parser
|
|
|
|
import (
|
|
"io/ioutil"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
type chunk struct {
|
|
A int16
|
|
B int16
|
|
}
|
|
|
|
func TestCache(t *testing.T) {
|
|
cache, err := newCache("", "test-chunks", chunk{})
|
|
require.NoError(t, err)
|
|
defer cache.Close()
|
|
|
|
c := chunk{A: 1, B: 2}
|
|
require.NoError(t, cache.SetEntry(1, &c))
|
|
require.NoError(t, cache.setOffset(0))
|
|
|
|
content, err := ioutil.ReadAll(cache.file)
|
|
require.NoError(t, err)
|
|
|
|
expected := []byte{0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x2, 0x0}
|
|
require.Equal(t, expected, content)
|
|
|
|
var nc chunk
|
|
require.NoError(t, cache.Entry(1, &nc))
|
|
require.Equal(t, c, nc)
|
|
}
|