github.com/wasilibs/wazerox@v0.0.0-20240124024944-4923be63ab5f/internal/platform/path_test.go (about) 1 package platform 2 3 import ( 4 "runtime" 5 "strings" 6 "testing" 7 8 "github.com/wasilibs/wazerox/internal/testing/require" 9 ) 10 11 func TestToPosixPath(t *testing.T) { 12 t.Parallel() 13 14 tests := []struct { 15 input string 16 expected string 17 }{ 18 {}, 19 {input: ".", expected: "."}, 20 {input: "/", expected: `/`}, 21 {input: `/`, expected: `/`}, 22 {input: "/foo/bar", expected: `/foo/bar`}, 23 {input: `\foo\bar`, expected: `/foo/bar`}, 24 {input: "foo/bar", expected: `foo/bar`}, 25 {input: `foo\bar`, expected: `foo/bar`}, 26 {input: "c:/foo/bar", expected: `c:/foo/bar`}, 27 {input: `c:\foo\bar`, expected: `c:/foo/bar`}, 28 } 29 30 for _, tt := range tests { 31 tc := tt 32 33 // We don't expect to translate backslashes unless we are on windows. 34 if strings.IndexByte(tc.input, '\\') != -1 && runtime.GOOS != "windows" { 35 continue 36 } 37 38 t.Run(tc.input, func(t *testing.T) { 39 require.Equal(t, tc.expected, ToPosixPath(tc.input)) 40 }) 41 } 42 }