• Daniel Martí's avatar
    cmd/go: add regression test for cryptic vcs errors · 97d5cb24
    Daniel Martí authored
    On Go 1.11.x, if one ran 'go build' on a main package within a module,
    while a needed vcs program like git was missing, a confusing error would
    show up:
    
    	build testmod: cannot find module for path rsc.io/quote
    
    The error should instead point at the source of the problem, which is
    the missing vcs program. Thankfully, Go 1.12 doesn't have this bug, even
    though it doesn't seem like the bug was fixed directly and
    intentionally.
    
    To ensure that this particular edge case isn't broken again, add a
    regression test. Piggyback on mod_vcs_missing, since it already requires
    a missing vcs program and network access.
    
    I double-checked that Go 1.11 fails this test via /usr/bin/go, which is
    1.11.3 on my system:
    
    	$ PATH=~/tip/bin go test -v -run Script/mod_vcs_missing
    	[...]
    	> exec /usr/bin/go build
    	[stderr]
    	build m: cannot find module for path launchpad.net/gocheck
    
    Fixes #28948.
    
    Change-Id: Iff1bcf77d9f7c11d15935cb87d6f58d7981d33d2
    Reviewed-on: https://go-review.googlesource.com/c/155537
    Run-TryBot: Daniel Martí <mvdan@mvdan.cc>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: 's avatarBryan C. Mills <bcmills@google.com>
    97d5cb24
Name
Last commit
Last update
..
archive Loading commit data...
bufio Loading commit data...
builtin Loading commit data...
bytes Loading commit data...
cmd Loading commit data...
compress Loading commit data...
container Loading commit data...
context Loading commit data...
crypto Loading commit data...
database/sql Loading commit data...
debug Loading commit data...
encoding Loading commit data...
errors Loading commit data...
expvar Loading commit data...
flag Loading commit data...
fmt Loading commit data...
go Loading commit data...
hash Loading commit data...
html Loading commit data...
image Loading commit data...
index/suffixarray Loading commit data...
internal Loading commit data...
io Loading commit data...
log Loading commit data...
math Loading commit data...
mime Loading commit data...
net Loading commit data...
os Loading commit data...
path Loading commit data...
plugin Loading commit data...
reflect Loading commit data...
regexp Loading commit data...
runtime Loading commit data...
sort Loading commit data...
strconv Loading commit data...
strings Loading commit data...
sync Loading commit data...
syscall Loading commit data...
testdata Loading commit data...
testing Loading commit data...
text Loading commit data...
time Loading commit data...
unicode Loading commit data...
unsafe Loading commit data...
Make.dist Loading commit data...
all.bash Loading commit data...
all.bat Loading commit data...
all.rc Loading commit data...
androidtest.bash Loading commit data...
bootstrap.bash Loading commit data...
buildall.bash Loading commit data...
clean.bash Loading commit data...
clean.bat Loading commit data...
clean.rc Loading commit data...
cmp.bash Loading commit data...
iostest.bash Loading commit data...
make.bash Loading commit data...
make.bat Loading commit data...
make.rc Loading commit data...
naclmake.bash Loading commit data...
nacltest.bash Loading commit data...
race.bash Loading commit data...
race.bat Loading commit data...
run.bash Loading commit data...
run.bat Loading commit data...
run.rc Loading commit data...