1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- package fs
- import (
- "github.com/dotcloud/docker/fake"
- "io/ioutil"
- "os"
- "testing"
- )
- func TestLayersInit(t *testing.T) {
- store := tempStore(t)
- defer os.RemoveAll(store.Root)
- // Root should exist
- if _, err := os.Stat(store.Root); err != nil {
- t.Fatal(err)
- }
- // List() should be empty
- if l := store.List(); len(l) != 0 {
- t.Fatalf("List() should return %d, not %d", 0, len(l))
- }
- }
- func TestAddLayer(t *testing.T) {
- store := tempStore(t)
- defer os.RemoveAll(store.Root)
- layer, err := store.AddLayer("foo", testArchive(t))
- if err != nil {
- t.Fatal(err)
- }
- // Layer path should exist
- if _, err := os.Stat(layer); err != nil {
- t.Fatal(err)
- }
- // List() should return 1 layer
- if l := store.List(); len(l) != 1 {
- t.Fatalf("List() should return %d elements, not %d", 1, len(l))
- }
- // Get("foo") should return the correct layer
- if foo := store.Get("foo"); foo != layer {
- t.Fatalf("get(\"foo\") should return '%d', not '%d'", layer, foo)
- }
- }
- func TestAddLayerDuplicate(t *testing.T) {
- store := tempStore(t)
- defer os.RemoveAll(store.Root)
- if _, err := store.AddLayer("foobar123", testArchive(t)); err != nil {
- t.Fatal(err)
- }
- if _, err := store.AddLayer("foobar123", testArchive(t)); err == nil {
- t.Fatalf("Creating duplicate layer should fail")
- }
- }
- /*
- * HELPER FUNCTIONS
- */
- func tempStore(t *testing.T) *LayerStore {
- tmp, err := ioutil.TempDir("", "docker-fs-layerstore-")
- if err != nil {
- t.Fatal(err)
- }
- store, err := NewLayerStore(tmp)
- if err != nil {
- t.Fatal(err)
- }
- return store
- }
- func testArchive(t *testing.T) Archive {
- archive, err := fake.FakeTar()
- if err != nil {
- t.Fatal(err)
- }
- return archive
- }
|