# Test that mod files with invalid or missing paths produce an error.

# Test that go list fails on a go.mod with no module declaration.
cd $WORK/gopath/src/mod
! go list .
stderr '^go: no module declaration in go.mod. To specify the module path:\n\tgo mod edit -module=example.com/mod$'

# Test that go mod init in GOPATH doesn't add a module declaration
# with a path that can't possibly be a module path, because
# it isn't even a valid import path.
# The single quote and backtick are the only characters  we don't allow
# in checkModulePathLax, but is allowed in a Windows file name.
# TODO(matloob): choose a different character once
# module.CheckImportPath is laxened and replaces
# checkModulePathLax.
cd $WORK/'gopath/src/m''d'
! go mod init
stderr 'cannot determine module path'

# Test that a go.mod file is rejected when its module declaration has a path that can't
# possibly be a module path, because it isn't even a valid import path
cd $WORK/gopath/src/badname
! go list .
stderr 'invalid module path'

# Test that an import path containing an element with a leading dot is valid,
# but such a module path is not.
# Verifies #43985.
cd $WORK/gopath/src/dotname
go list ./.dot
stdout '^example.com/dotname/.dot$'
go list ./use
stdout '^example.com/dotname/use$'
! go list -m example.com/dotname/.dot@latest
stderr '^go list -m: example.com/dotname/.dot@latest: malformed module path "example.com/dotname/.dot": leading dot in path element$'
go get -d example.com/dotname/.dot
go get -d example.com/dotname/use
go mod tidy

-- mod/go.mod --

-- mod/foo.go --
package foo

-- m'd/foo.go --
package mad

-- badname/go.mod --

module .\.

-- badname/foo.go --
package badname

-- dotname/go.mod --
module example.com/dotname

go 1.16
-- dotname/.dot/dot.go --
package dot
-- dotname/use/use.go --
package use

import _ "example.com/dotname/.dot"
