empty_test.go 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package layer // import "github.com/docker/docker/layer"
  2. import (
  3. "io"
  4. "testing"
  5. "github.com/opencontainers/go-digest"
  6. )
  7. func TestEmptyLayer(t *testing.T) {
  8. if EmptyLayer.ChainID() != ChainID(DigestSHA256EmptyTar) {
  9. t.Fatal("wrong ChainID 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 := EmptyLayer.Size(); size != 0 {
  18. t.Fatal("expected zero size for empty layer")
  19. }
  20. if diffSize := EmptyLayer.DiffSize(); diffSize != 0 {
  21. t.Fatal("expected zero diffsize for empty layer")
  22. }
  23. meta, err := EmptyLayer.Metadata()
  24. if len(meta) != 0 || err != nil {
  25. t.Fatal("expected zero length metadata for empty layer")
  26. }
  27. tarStream, err := EmptyLayer.TarStream()
  28. if err != nil {
  29. t.Fatalf("error streaming tar for empty layer: %v", err)
  30. }
  31. digester := digest.Canonical.Digester()
  32. _, err = io.Copy(digester.Hash(), tarStream)
  33. if err != nil {
  34. t.Fatalf("error hashing empty tar layer: %v", err)
  35. }
  36. if digester.Digest() != digest.Digest(DigestSHA256EmptyTar) {
  37. t.Fatal("empty layer tar stream hashes to wrong value")
  38. }
  39. }