dispatchers_unix_test.go 1.0 KB

1234567891011121314151617181920212223242526272829303132333435
  1. //go:build !windows
  2. // +build !windows
  3. package dockerfile // import "github.com/docker/docker/builder/dockerfile"
  4. import (
  5. "runtime"
  6. "testing"
  7. )
  8. func TestNormalizeWorkdir(t *testing.T) {
  9. testCases := []struct{ current, requested, expected, expectedError string }{
  10. {``, ``, ``, `cannot normalize nothing`},
  11. {``, `foo`, `/foo`, ``},
  12. {``, `/foo`, `/foo`, ``},
  13. {`/foo`, `bar`, `/foo/bar`, ``},
  14. {`/foo`, `/bar`, `/bar`, ``},
  15. }
  16. for _, test := range testCases {
  17. normalized, err := normalizeWorkdir(runtime.GOOS, test.current, test.requested)
  18. if test.expectedError != "" && err == nil {
  19. t.Fatalf("NormalizeWorkdir should return an error %s, got nil", test.expectedError)
  20. }
  21. if test.expectedError != "" && err.Error() != test.expectedError {
  22. t.Fatalf("NormalizeWorkdir returned wrong error. Expected %s, got %s", test.expectedError, err.Error())
  23. }
  24. if normalized != test.expected {
  25. t.Fatalf("NormalizeWorkdir error. Expected %s for current %s and requested %s, got %s", test.expected, test.current, test.requested, normalized)
  26. }
  27. }
  28. }