| # Regression test for https://golang.org/issue/34086: |
| # 'go mod tidy' produced different go.mod file from other |
| # subcommands when certain kinds of cycles were present |
| # in the build graph. |
| |
| env GO111MODULE=on |
| |
| cp go.mod go.mod.orig |
| go mod tidy |
| cmp go.mod go.mod.orig |
| |
| # If the go.mod file is already tidy, 'go mod graph' should not modify it. |
| go mod graph |
| cmp go.mod go.mod.orig |
| |
| -- go.mod -- |
| module root |
| |
| go 1.13 |
| |
| replace ( |
| a v0.1.0 => ./a1 |
| b v0.1.0 => ./b1 |
| b v0.2.0 => ./b2 |
| c v0.1.0 => ./c1 |
| c v0.2.0 => ./c2 |
| ) |
| |
| require ( |
| a v0.1.0 |
| b v0.2.0 // indirect |
| ) |
| -- main.go -- |
| package main |
| |
| import _ "a" |
| |
| func main() {} |
| |
| -- a1/go.mod -- |
| module a |
| |
| go 1.13 |
| |
| require b v0.1.0 |
| -- a1/a.go -- |
| package a |
| |
| import _ "c" |
| -- b1/go.mod -- |
| module b |
| |
| go 1.13 |
| |
| require c v0.1.0 |
| -- b2/go.mod -- |
| module b |
| |
| go 1.13 |
| |
| require c v0.2.0 |
| -- c1/go.mod -- |
| module c |
| |
| go 1.13 |
| -- c2/c.go -- |
| package c |
| -- c2/go.mod -- |
| module c |
| |
| go 1.13 |
| |
| require b v0.2.0 |
| -- c2/c.go -- |
| package c |