empty_test.go 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. package layer
  2. import (
  3. "io"
  4. "testing"
  5. "github.com/docker/distribution/digest"
  6. )
  7. func TestEmptyLayer(t *testing.T) {
  8. if EmptyLayer.ChainID() != ChainID(DigestSHA256EmptyTar) {
  9. t.Fatal("wrong ID for empty layer")
  10. }
  11. if EmptyLayer.DiffID() != DigestSHA256EmptyTar {
  12. t.Fatal("wrong DiffID for empty layer")
  13. }
  14. if EmptyLayer.Parent() != nil {
  15. t.Fatal("expected no parent for empty layer")
  16. }
  17. if size, err := EmptyLayer.Size(); err != nil || size != 0 {
  18. t.Fatal("expected zero size for empty layer")
  19. }
  20. if diffSize, err := EmptyLayer.DiffSize(); err != nil || diffSize != 0 {
  21. t.Fatal("expected zero diffsize for empty layer")
  22. }
  23. tarStream, err := EmptyLayer.TarStream()
  24. if err != nil {
  25. t.Fatalf("error streaming tar for empty layer: %v", err)
  26. }
  27. digester := digest.Canonical.New()
  28. _, err = io.Copy(digester.Hash(), tarStream)
  29. if err != nil {
  30. t.Fatalf("error hashing empty tar layer: %v", err)
  31. }
  32. if digester.Digest() != digest.Digest(DigestSHA256EmptyTar) {
  33. t.Fatal("empty layer tar stream hashes to wrong value")
  34. }
  35. }