gopkg.in/docker/docker.v20@v20.10.27/layer/layer_unix_test.go (about) 1 //go:build !windows 2 // +build !windows 3 4 package layer // import "github.com/docker/docker/layer" 5 6 import ( 7 "testing" 8 ) 9 10 func graphDiffSize(ls Store, l Layer) (int64, error) { 11 cl := getCachedLayer(l) 12 var parent string 13 if cl.parent != nil { 14 parent = cl.parent.cacheID 15 } 16 return ls.(*layerStore).driver.DiffSize(cl.cacheID, parent) 17 } 18 19 // Unix as Windows graph driver does not support Changes which is indirectly 20 // invoked by calling DiffSize on the driver 21 func TestLayerSize(t *testing.T) { 22 ls, _, cleanup := newTestStore(t) 23 defer cleanup() 24 25 content1 := []byte("Base contents") 26 content2 := []byte("Added contents") 27 28 layer1, err := createLayer(ls, "", initWithFiles(newTestFile("file1", content1, 0644))) 29 if err != nil { 30 t.Fatal(err) 31 } 32 33 layer2, err := createLayer(ls, layer1.ChainID(), initWithFiles(newTestFile("file2", content2, 0644))) 34 if err != nil { 35 t.Fatal(err) 36 } 37 38 layer1DiffSize, err := graphDiffSize(ls, layer1) 39 if err != nil { 40 t.Fatal(err) 41 } 42 43 if int(layer1DiffSize) != len(content1) { 44 t.Fatalf("Unexpected diff size %d, expected %d", layer1DiffSize, len(content1)) 45 } 46 47 layer1Size, err := layer1.Size() 48 if err != nil { 49 t.Fatal(err) 50 } 51 52 if expected := len(content1); int(layer1Size) != expected { 53 t.Fatalf("Unexpected size %d, expected %d", layer1Size, expected) 54 } 55 56 layer2DiffSize, err := graphDiffSize(ls, layer2) 57 if err != nil { 58 t.Fatal(err) 59 } 60 61 if int(layer2DiffSize) != len(content2) { 62 t.Fatalf("Unexpected diff size %d, expected %d", layer2DiffSize, len(content2)) 63 } 64 65 layer2Size, err := layer2.Size() 66 if err != nil { 67 t.Fatal(err) 68 } 69 70 if expected := len(content1) + len(content2); int(layer2Size) != expected { 71 t.Fatalf("Unexpected size %d, expected %d", layer2Size, expected) 72 } 73 74 }