]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/go: reproduce #28680
authorBryan C. Mills <bcmills@google.com>
Wed, 12 Dec 2018 03:14:37 +0000 (22:14 -0500)
committerBryan C. Mills <bcmills@google.com>
Wed, 12 Dec 2018 21:20:14 +0000 (21:20 +0000)
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 <bcmills@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Jay Conrod <jayconrod@google.com>
src/cmd/go/testdata/script/mod_clean_cache.txt

index 66a0e9ea7e7815332bf7fb60af48abd8c9650834..a9519f9d9086c656219b8357a21dc53f2e96ee90 100644 (file)
@@ -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