layer_unix_test.go 1.6 KB

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