internals_test.go 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. package dockerfile
  2. import (
  3. "strings"
  4. "testing"
  5. "github.com/docker/docker/builder"
  6. "github.com/docker/docker/pkg/archive"
  7. "github.com/docker/engine-api/types"
  8. )
  9. func TestEmptyDockerfile(t *testing.T) {
  10. contextDir, cleanup := createTestTempDir(t, "", "builder-dockerfile-test")
  11. defer cleanup()
  12. createTestTempFile(t, contextDir, builder.DefaultDockerfileName, "", 0777)
  13. tarStream, err := archive.Tar(contextDir, archive.Uncompressed)
  14. if err != nil {
  15. t.Fatalf("Error when creating tar stream: %s", err)
  16. }
  17. defer func() {
  18. if err = tarStream.Close(); err != nil {
  19. t.Fatalf("Error when closing tar stream: %s", err)
  20. }
  21. }()
  22. context, err := builder.MakeTarSumContext(tarStream)
  23. if err != nil {
  24. t.Fatalf("Error when creating tar context: %s", err)
  25. }
  26. defer func() {
  27. if err = context.Close(); err != nil {
  28. t.Fatalf("Error when closing tar context: %s", err)
  29. }
  30. }()
  31. options := &types.ImageBuildOptions{}
  32. b := &Builder{options: options, context: context}
  33. err = b.readDockerfile()
  34. if err == nil {
  35. t.Fatalf("No error when executing test for empty Dockerfile")
  36. }
  37. if !strings.Contains(err.Error(), "The Dockerfile (Dockerfile) cannot be empty") {
  38. t.Fatalf("Wrong error message. Should be \"%s\". Got \"%s\"", "The Dockerfile (Dockerfile) cannot be empty", err.Error())
  39. }
  40. }