cp go.mod go.mod.orig


# Both 'go get' and 'go get -d' should fail, without updating go.mod,
# if the transitive dependencies of the requested package (by default,
# the package in the current directory) cannot be resolved.

! go get
stderr '^example.com/m imports\n\texample.com/badimport imports\n\texample.net/oops: cannot find module providing package example.net/oops$'
cmp go.mod.orig go.mod

! go get -d
stderr '^example.com/m imports\n\texample.com/badimport imports\n\texample.net/oops: cannot find module providing package example.net/oops$'
cmp go.mod.orig go.mod

cd importsyntax


# If 'go get' fails due to a compile error (such as a syntax error),
# it should not update the go.mod file.

! go get
stderr '^..[/\\]badimport[/\\]syntaxerror[/\\]syntaxerror.go:1:1: expected ''package'', found pack$'  # TODO: An import stack would be nice.
cmp ../go.mod.orig ../go.mod


# A syntax error in a dependency prevents the compiler from needing that
# dependency's imports, so 'go get -d' should not report an error when those
# imports cannot be resolved: it has all of the dependencies that the compiler
# needs, and the user did not request to run the compiler.

go get -d
cmp ../go.mod.syntax-d ../go.mod


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

go 1.16

replace example.com/badimport v0.1.0 => ./badimport
-- go.mod.syntax-d --
module example.com/m

go 1.16

replace example.com/badimport v0.1.0 => ./badimport

require example.com/badimport v0.1.0
-- m.go --
package m

import _ "example.com/badimport"
-- importsyntax/importsyntax.go --
package importsyntax

import _ "example.com/badimport/syntaxerror"
-- badimport/go.mod --
module example.com/badimport

go 1.16
-- badimport/badimport.go --
package badimport

import "example.net/oops"
-- badimport/syntaxerror/syntaxerror.go --
pack-age syntaxerror // sic

import "example.net/oops"
