//go:build !windows // +build !windows package dockerfile // import "github.com/docker/docker/builder/dockerfile" import ( "runtime" "testing" ) func TestNormalizeWorkdir(t *testing.T) { testCases := []struct{ current, requested, expected, expectedError string }{ {``, ``, ``, `cannot normalize nothing`}, {``, `foo`, `/foo`, ``}, {``, `/foo`, `/foo`, ``}, {`/foo`, `bar`, `/foo/bar`, ``}, {`/foo`, `/bar`, `/bar`, ``}, } for _, test := range testCases { normalized, err := normalizeWorkdir(runtime.GOOS, test.current, test.requested) if test.expectedError != "" && err == nil { t.Fatalf("NormalizeWorkdir should return an error %s, got nil", test.expectedError) } if test.expectedError != "" && err.Error() != test.expectedError { t.Fatalf("NormalizeWorkdir returned wrong error. Expected %s, got %s", test.expectedError, err.Error()) } if normalized != test.expected { t.Fatalf("NormalizeWorkdir error. Expected %s for current %s and requested %s, got %s", test.expected, test.current, test.requested, normalized) } } }