layer_unix_test.go 1.6 KB

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