From c4a8a684dacbe07f5524eae07d5e9f048034bcb6 Mon Sep 17 00:00:00 2001 From: "Bryan C. Mills" Date: Tue, 11 Dec 2018 22:14:37 -0500 Subject: [PATCH] cmd/go: reproduce #28680 This change encodes the current behavior in mod_clean_cache.txt. A fix for that behavior will probably have to wait for 1.13. Updates #28680 Change-Id: I216b5a783971309cc75187502bddccc58c3a9c35 Reviewed-on: https://go-review.googlesource.com/c/153818 Run-TryBot: Bryan C. Mills TryBot-Result: Gobot Gobot Reviewed-by: Jay Conrod --- .../go/testdata/script/mod_clean_cache.txt | 40 ++++++++++++++++++- 1 file changed, 38 insertions(+), 2 deletions(-) diff --git a/src/cmd/go/testdata/script/mod_clean_cache.txt b/src/cmd/go/testdata/script/mod_clean_cache.txt index 66a0e9ea7e..a9519f9d90 100644 --- a/src/cmd/go/testdata/script/mod_clean_cache.txt +++ b/src/cmd/go/testdata/script/mod_clean_cache.txt @@ -1,23 +1,59 @@ env GO111MODULE=on +# 'mod download' should download the module to the cache. go mod download rsc.io/quote@v1.5.0 exists $GOPATH/pkg/mod/cache/download/rsc.io/quote/@v/v1.5.0.info exists $GOPATH/pkg/mod/cache/download/rsc.io/quote/@v/v1.5.0.mod exists $GOPATH/pkg/mod/cache/download/rsc.io/quote/@v/v1.5.0.zip +# '-n' should print commands but not actually execute them. go clean -modcache -n stdout '^rm -rf .*pkg.mod$' exists $GOPATH/pkg/mod/cache/download/rsc.io/quote/@v/v1.5.0.info exists $GOPATH/pkg/mod/cache/download/rsc.io/quote/@v/v1.5.0.mod exists $GOPATH/pkg/mod/cache/download/rsc.io/quote/@v/v1.5.0.zip +# 'go clean -modcache' should actually delete the files. go clean -modcache ! exists $GOPATH/pkg/mod/cache/download/rsc.io/quote/@v/v1.5.0.info ! exists $GOPATH/pkg/mod/cache/download/rsc.io/quote/@v/v1.5.0.mod ! exists $GOPATH/pkg/mod/cache/download/rsc.io/quote/@v/v1.5.0.zip +# 'go clean -r -modcache' should clean only the dependencies that are within the +# main module. +# BUG(golang.org/issue/28680): Today, it cleans across module boundaries. +cd r +exists ./test.out +exists ../replaced/test.out +go clean -r -modcache +! exists ./test.out +! exists ../replaced/test.out # BUG: should still exist + +# 'go clean -modcache' should not download anything before cleaning. +# BUG(golang.org/issue/28680): Today, it does. +go mod edit -require rsc.io/quote@v1.99999999.0-not-a-real-version +! go clean -modcache # BUG: should succeed +stderr 'finding rsc.io' # BUG: should not resolve module +go mod edit -droprequire rsc.io/quote + -- go.mod -- module m - -- m.go -- -package m \ No newline at end of file +package m + +-- r/go.mod -- +module example.com/r +require example.com/r/replaced v0.0.0 +replace example.com/r/replaced => ../replaced +-- r/r.go -- +package r +import _ "example.com/r/replaced" +-- r/test.out -- +DELETE ME + +-- replaced/go.mod -- +module example.com/r/replaced +-- replaced/replaced.go -- +package replaced +-- replaced/test.out -- +DO NOT DELETE -- 2.50.0