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

     1  # Regression test for https://go.dev/issue/51125:
     2  # Relative import paths (a holdover from GOPATH) were accidentally allowed in module mode.
     3  
     4  cd $WORK
     5  
     6  # Relative imports should not be allowed with a go.mod file.
     7  
     8  ! go run driver.go
     9  stderr '^driver.go:3:8: "./mypkg" is relative, but relative import paths are not supported in module mode$'
    10  
    11  go list -e -f '{{with .Error}}{{.}}{{end}}' -deps driver.go
    12  stdout '^driver.go:3:8: "./mypkg" is relative, but relative import paths are not supported in module mode$'
    13  ! stderr .
    14  
    15  
    16  # Relative imports should not be allowed in module mode even without a go.mod file.
    17  rm go.mod
    18  
    19  ! go run driver.go
    20  stderr '^driver.go:3:8: "./mypkg" is relative, but relative import paths are not supported in module mode$'
    21  
    22  go list -e -f '{{with .Error}}{{.}}{{end}}' -deps driver.go
    23  stdout '^driver.go:3:8: "./mypkg" is relative, but relative import paths are not supported in module mode$'
    24  ! stderr .
    25  
    26  
    27  # In GOPATH mode, they're still allowed (but only outside of GOPATH/src).
    28  env GO111MODULE=off
    29  
    30  [!short] go run driver.go
    31  
    32  go list -deps driver.go
    33  
    34  
    35  -- $WORK/go.mod --
    36  module example
    37  
    38  go 1.17
    39  -- $WORK/driver.go --
    40  package main
    41  
    42  import "./mypkg"
    43  
    44  func main() {
    45  	mypkg.MyFunc()
    46  }
    47  -- $WORK/mypkg/code.go --
    48  package mypkg
    49  
    50  import "fmt"
    51  
    52  func MyFunc() {
    53  	fmt.Println("Hello, world!")
    54  }
    55  

View as plain text