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

     1  env GO111MODULE=on
     2  
     3  # Derive module path from import comment.
     4  cd $WORK/x
     5  exists x.go
     6  go mod init
     7  stderr 'module x'
     8  
     9  # Import comment works even with CRLF line endings.
    10  rm go.mod
    11  replace '\n' '\r\n' x.go
    12  go mod init
    13  stderr 'module x'
    14  
    15  # Derive module path from location inside GOPATH.
    16  # 'go mod init' should succeed if modules are not explicitly disabled.
    17  cd $GOPATH/src/example.com/x/y
    18  go mod init
    19  stderr 'module example.com/x/y$'
    20  rm go.mod
    21  
    22  # go mod init rejects a zero-length go.mod file
    23  cp $devnull go.mod # can't use touch to create it because Windows
    24  ! go mod init
    25  stderr 'go.mod already exists'
    26  
    27  # Empty directory outside GOPATH fails.
    28  mkdir $WORK/empty
    29  cd $WORK/empty
    30  ! go mod init
    31  stderr 'cannot determine module path for source directory'
    32  rm go.mod
    33  
    34  # Empty directory inside GOPATH/src uses location inside GOPATH.
    35  mkdir $GOPATH/src/empty
    36  cd $GOPATH/src/empty
    37  go mod init
    38  stderr 'empty'
    39  rm go.mod
    40  
    41  # In Plan 9, directories are automatically created in /n.
    42  # For example, /n/go.mod always exist, but it's a directory.
    43  # Test that we ignore directories when trying to find go.mod.
    44  cd $WORK/gomoddir
    45  ! go list .
    46  stderr '^go: go.mod file not found in current directory or any parent directory; see ''go help modules''$'
    47  
    48  [!symlink] stop
    49  
    50  # gplink1/src/empty where gopathlink -> GOPATH
    51  symlink $WORK/gopathlink -> gopath
    52  cd $WORK/gopathlink/src/empty
    53  go mod init
    54  rm go.mod
    55  
    56  # GOPATH/src/link where link -> out of GOPATH
    57  symlink $GOPATH/src/link -> $WORK/empty
    58  cd $WORK/empty
    59  ! go mod init
    60  cd $GOPATH/src/link
    61  go mod init
    62  stderr link
    63  rm go.mod
    64  
    65  # GOPATH/src/empty where GOPATH itself is a symlink
    66  env GOPATH=$WORK/gopathlink
    67  cd $GOPATH/src/empty
    68  go mod init
    69  rm go.mod
    70  cd $WORK/gopath/src/empty
    71  go mod init
    72  rm go.mod
    73  
    74  # GOPATH/src/link where GOPATH and link are both symlinks
    75  cd $GOPATH/src/link
    76  go mod init
    77  stderr link
    78  rm go.mod
    79  
    80  # Too hard: doesn't match unevaluated nor completely evaluated. (Only partially evaluated.)
    81  # Whether this works depends on which OS we are running on.
    82  # cd $WORK/gopath/src/link
    83  # ! go mod init
    84  
    85  -- $WORK/x/x.go --
    86  package x // import "x"
    87  
    88  -- $GOPATH/src/example.com/x/y/y.go --
    89  package y
    90  -- $GOPATH/src/example.com/x/y/z/z.go --
    91  package z
    92  -- $GOPATH/src/example.com/x/y/z/Godeps/Godeps.json --
    93  {"ImportPath": "unexpected.com/z"}
    94  
    95  -- $WORK/gomoddir/go.mod/README.txt --
    96  ../go.mod is a directory, not a file.
    97  -- $WORK/gomoddir/p.go --
    98  package p
    99  

View as plain text