| // +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) |
| } |
| } |
| } |