shad-go/distbuild/pkg/filecache/filecache_test.go
2020-03-29 23:35:58 +03:00

41 lines
882 B
Go

package filecache
import (
"errors"
"io/ioutil"
"testing"
"github.com/stretchr/testify/require"
"gitlab.com/slon/shad-go/distbuild/pkg/build"
)
func TestFileCache(t *testing.T) {
tmpDir, err := ioutil.TempDir("", "filecache")
require.NoError(t, err)
cache, err := New(tmpDir)
require.NoError(t, err)
_, abort, err := cache.Write(build.ID{01})
require.NoError(t, err)
require.NoError(t, abort())
_, _, err = cache.Get(build.ID{01})
require.Truef(t, errors.Is(err, ErrNotFound), "real error: %v", err)
f, _, err := cache.Write(build.ID{02})
require.NoError(t, err)
_, err = f.Write([]byte("foo bar"))
require.NoError(t, err)
require.NoError(t, f.Close())
path, unlock, err := cache.Get(build.ID{02})
require.NoError(t, err)
defer unlock()
content, err := ioutil.ReadFile(path)
require.NoError(t, err)
require.Equal(t, []byte("foo bar"), content)
}