Commit fd5bf039 authored by motemen's avatar motemen Committed by Ian Lance Taylor

cmd/go: fix formatting of file paths under cwd

The output of go with -x flag is formatted in a manner that file paths
under current directory are modified to start with a dot (.), but when
the directory path ends with a slash (/), the formatting goes wrong.

Fixes #23982

Change-Id: I8f8d15dd52bee882a9c6357eb9eabdc3eaa887c3
GitHub-Last-Rev: 1493f38bafdf2c40f16392b794fd1a12eb12a151
GitHub-Pull-Request: golang/go#23985
Reviewed-on: https://go-review.googlesource.com/95755
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
parent a5c987fc
...@@ -5921,3 +5921,11 @@ echo $* >>`+tg.path("pkg-config.out")) ...@@ -5921,3 +5921,11 @@ echo $* >>`+tg.path("pkg-config.out"))
t.Errorf("got %q want %q", out, want) t.Errorf("got %q want %q", out, want)
} }
} }
// Issue 23982
func TestFilepathUnderCwdFormat(t *testing.T) {
tg := testgo(t)
defer tg.cleanup()
tg.run("test", "-x", "-cover", "log")
tg.grepStderrNot(`\.log\.cover\.go`, "-x output should contain correctly formatted filepath under cwd")
}
...@@ -1364,7 +1364,11 @@ func mayberemovefile(s string) { ...@@ -1364,7 +1364,11 @@ func mayberemovefile(s string) {
func (b *Builder) fmtcmd(dir string, format string, args ...interface{}) string { func (b *Builder) fmtcmd(dir string, format string, args ...interface{}) string {
cmd := fmt.Sprintf(format, args...) cmd := fmt.Sprintf(format, args...)
if dir != "" && dir != "/" { if dir != "" && dir != "/" {
cmd = strings.Replace(" "+cmd, " "+dir, " .", -1)[1:] dot := " ."
if dir[len(dir)-1] == filepath.Separator {
dot += string(filepath.Separator)
}
cmd = strings.Replace(" "+cmd, " "+dir, dot, -1)[1:]
if b.scriptDir != dir { if b.scriptDir != dir {
b.scriptDir = dir b.scriptDir = dir
cmd = "cd " + dir + "\n" + cmd cmd = "cd " + dir + "\n" + cmd
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment