layer_unix_test.go 1.7 KB

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