Text file src/cmd/go/testdata/script/mod_get_patchcycle.txt

     1  # If a patch of a module requires a higher version of itself,
     2  # it should be reported as its own conflict.
     3  #
     4  # This case is weird and unlikely to occur often at all, but it should not
     5  # spuriously succeed.
     6  # (It used to print v0.1.1 but then silently upgrade to v0.2.0.)
     7  
     8  ! go get example.net/a@patch
     9  stderr '^go: example.net/a@patch \(v0.1.1\) indirectly requires example.net/a@v0.2.0, not example.net/a@patch \(v0.1.1\)$'  # TODO: A mention of b v0.1.0 would be nice.
    10  
    11  -- go.mod --
    12  module example
    13  
    14  go 1.16
    15  
    16  require example.net/a v0.1.0
    17  
    18  replace (
    19  	example.net/a v0.1.0 => ./a10
    20  	example.net/a v0.1.1 => ./a11
    21  	example.net/a v0.2.0 => ./a20
    22  	example.net/b v0.1.0 => ./b10
    23  )
    24  -- example.go --
    25  package example
    26  
    27  import _ "example.net/a"
    28  
    29  -- a10/go.mod --
    30  module example.net/a
    31  
    32  go 1.16
    33  -- a10/a.go --
    34  package a
    35  
    36  -- a11/go.mod --
    37  module example.net/a
    38  
    39  go 1.16
    40  
    41  require example.net/b v0.1.0
    42  -- a11/a.go --
    43  package a
    44  
    45  import _ "example.net/b"
    46  
    47  -- a20/go.mod --
    48  module example.net/a
    49  
    50  go 1.16
    51  -- a20/a.go --
    52  package a
    53  
    54  
    55  -- b10/go.mod --
    56  module example.net/b
    57  
    58  go 1.16
    59  
    60  require example.net/a v0.2.0
    61  -- b10/b.go --
    62  package b
    63  
    64  import _ "example.net/a"
    65  

View as plain text