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

     1  # This test matches list_bad_import, but in module mode.
     2  # Please keep them in sync.
     3  
     4  env GO111MODULE=on
     5  cd example.com
     6  
     7  # Without -e, listing an otherwise-valid package with an unsatisfied direct import should fail.
     8  # BUG: Today it succeeds.
     9  go list -f '{{if .Error}}error{{end}} {{if .Incomplete}}incomplete{{end}} {{range .DepsErrors}}bad dep: {{.Err}}{{end}}' example.com/direct
    10  ! stdout ^error
    11  stdout 'incomplete'
    12  stdout 'bad dep: .*example.com/notfound'
    13  
    14  # Listing with -deps should also fail.
    15  ! go list -deps example.com/direct
    16  stderr example.com/notfound
    17  
    18  # But -e -deps should succeed.
    19  go list -e -deps example.com/direct
    20  stdout example.com/notfound
    21  
    22  
    23  # Listing an otherwise-valid package that imports some *other* package with an
    24  # unsatisfied import should also fail.
    25  # BUG: Today, it succeeds.
    26  go list -f '{{if .Error}}error{{end}} {{if .Incomplete}}incomplete{{end}} {{range .DepsErrors}}bad dep: {{.Err}}{{end}}' example.com/indirect
    27  ! stdout ^error
    28  stdout incomplete
    29  stdout 'bad dep: .*example.com/notfound'
    30  
    31  # Again, -deps should fail.
    32  ! go list -deps example.com/indirect
    33  stderr example.com/notfound
    34  
    35  # But -e -deps should succeed.
    36  go list -e -deps example.com/indirect
    37  stdout example.com/notfound
    38  
    39  
    40  # Listing the missing dependency directly should fail outright...
    41  ! go list -f '{{if .Error}}error{{end}} {{if .Incomplete}}incomplete{{end}}' example.com/notfound
    42  stderr 'no required module provides package example.com/notfound; to add it:\n\tgo get example.com/notfound'
    43  ! stdout error
    44  ! stdout incomplete
    45  
    46  # ...but listing with -e should succeed.
    47  go list -e -f '{{if .Error}}error{{end}} {{if .Incomplete}}incomplete{{end}}' example.com/notfound
    48  stdout error
    49  stdout incomplete
    50  
    51  
    52  # The pattern "all" should match only packages that actually exist,
    53  # ignoring those whose existence is merely implied by imports.
    54  go list -e -f '{{.ImportPath}} {{.Error}}' all
    55  stdout example.com/direct
    56  stdout example.com/indirect
    57  # TODO: go list creates a dummy package with the import-not-found
    58  # but really the Error belongs on example.com/direct, and this package
    59  # should not be printed.
    60  # ! stdout example.com/notfound
    61  
    62  
    63  -- example.com/go.mod --
    64  module example.com
    65  
    66  -- example.com/direct/direct.go --
    67  package direct
    68  import _ "example.com/notfound"
    69  
    70  -- example.com/indirect/indirect.go --
    71  package indirect
    72  import _ "example.com/direct"
    73  
    74  -- example.com/notfound/README --
    75  This directory intentionally left blank.
    76  

View as plain text