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