| # go doc should find module documentation |
| |
| env GO111MODULE=on |
| [short] skip |
| |
| # Check when module x is inside GOPATH/src. |
| go doc y |
| stdout 'Package y is.*alphabet' |
| stdout 'import "x/y"' |
| go doc x/y |
| stdout 'Package y is.*alphabet' |
| ! go doc quote.Hello |
| stderr 'doc: symbol quote is not a type' # because quote is not in local cache |
| go list rsc.io/quote # now it is |
| go doc quote.Hello |
| stdout 'Hello returns a greeting' |
| go doc quote |
| stdout 'Package quote collects pithy sayings.' |
| |
| # Double-check when module x is outside GOPATH/src. |
| env GOPATH=$WORK/emptygopath |
| go doc x/y |
| stdout 'Package y is.*alphabet' |
| go doc y |
| stdout 'Package y is.*alphabet' |
| |
| # Triple-check when module x is outside GOPATH/src, |
| # but other packages with same import paths are in GOPATH/src. |
| # Since go doc is running in module mode here, packages in active module |
| # should be preferred over packages in GOPATH. See golang.org/issue/28992. |
| env GOPATH=$WORK/gopath2 |
| go doc x/y |
| ! stdout 'Package y is.*GOPATH' |
| stdout 'Package y is.*alphabet' |
| go doc rsc.io/quote |
| ! stdout 'Package quote is located in a GOPATH workspace.' |
| stdout 'Package quote collects pithy sayings.' |
| |
| -- go.mod -- |
| module x |
| require rsc.io/quote v1.5.2 |
| |
| -- y/y.go -- |
| // Package y is the next to last package of the alphabet. |
| package y |
| |
| -- x.go -- |
| package x |
| |
| -- $WORK/gopath2/src/x/y/y.go -- |
| // Package y is located in a GOPATH workspace. |
| package y |
| -- $WORK/gopath2/src/rsc.io/quote/quote.go -- |
| // Package quote is located in a GOPATH workspace. |
| package quote |
| |
| // Hello is located in a GOPATH workspace. |
| func Hello() string { return "" } |