mirror of
https://github.com/golang/go
synced 2024-11-02 09:03:03 +00:00
cmd/go: fix a portability issue in the cd script command
Currently all script tests use the UNIX path separator with the cd command, causing the PWD environment variable to have the incorrect path separator on Windows. Call filepath.FromSlash on the cd command argument. Update the testdata/script/README to document that the cd argument must use slashes. Add a regression test. To reproduce this issue, a test must use the cd command followed by a stdout or stderr command containing the pattern $PWD. Change-Id: Ib2dc5f185cc2476451402787996d14df91f7dddb Reviewed-on: https://go-review.googlesource.com/c/go/+/319311 Reviewed-by: Jay Conrod <jayconrod@google.com> Reviewed-by: Bryan C. Mills <bcmills@google.com> Trust: Jay Conrod <jayconrod@google.com> Run-TryBot: Jay Conrod <jayconrod@google.com> TryBot-Result: Go Bot <gobot@golang.org>
This commit is contained in:
parent
d137b74539
commit
a938e52986
3 changed files with 15 additions and 1 deletions
|
@ -517,7 +517,7 @@ func (ts *testScript) cmdCd(want simpleStatus, args []string) {
|
|||
ts.fatalf("usage: cd dir")
|
||||
}
|
||||
|
||||
dir := args[0]
|
||||
dir := filepath.FromSlash(args[0])
|
||||
if !filepath.IsAbs(dir) {
|
||||
dir = filepath.Join(ts.cd, dir)
|
||||
}
|
||||
|
|
1
src/cmd/go/testdata/script/README
vendored
1
src/cmd/go/testdata/script/README
vendored
|
@ -102,6 +102,7 @@ The commands are:
|
|||
|
||||
- cd dir
|
||||
Change to the given directory for future commands.
|
||||
The directory must use slashes as path separator.
|
||||
|
||||
- chmod perm path...
|
||||
Change the permissions of the files or directories named by the path arguments
|
||||
|
|
13
src/cmd/go/testdata/script/test_script_cmdcd.txt
vendored
Normal file
13
src/cmd/go/testdata/script/test_script_cmdcd.txt
vendored
Normal file
|
@ -0,0 +1,13 @@
|
|||
# Tests that after a cd command, where usually the UNIX path separator is used,
|
||||
# a match against $PWD does not fail on Windows.
|
||||
|
||||
cd $WORK/a/b/c/pkg
|
||||
|
||||
go list -find -f {{.Root}}
|
||||
stdout $PWD
|
||||
|
||||
-- $WORK/a/b/c/pkg/go.mod --
|
||||
module pkg
|
||||
|
||||
-- $WORK/a/b/c/pkg/pkg.go --
|
||||
package pkg
|
Loading…
Reference in a new issue