blob: 716bdf4fa9dab687fbfc8f9f2a61a874a3762fe0 [file] [log] [blame] [edit]
[short] skip
# Basic build error. This test also checks that the output is fully-formed JSON.
! go build -json -o=$devnull ./compileerror
stdout '^\{"ImportPath":"m/compileerror","Action":"build-output","Output":"# m/compileerror\\n"\}$'
stdout '^\{"ImportPath":"m/compileerror","Action":"build-output","Output":"compileerror(/|\\\\)main.go:3:11: undefined: y\\n"}$'
stdout '^\{"ImportPath":"m/compileerror","Action":"build-fail"\}$'
! stderr '.'
# Check that a build failure in an imported package is attributed correctly.
! go build -json -o=$devnull ./importerror
stdout '"ImportPath":"m/compileerror","Action":"build-fail"'
! stderr '.'
# TODO(#65335): Attributing this to "x" doesn't make much sense,
# especially since the reported line is the import statement.
! go build -json -o=$devnull ./loaderror
stdout '"ImportPath":"x","Action":"build-output","Output":".*package x is not in std.*\\n"'
stdout '"ImportPath":"x","Action":"build-fail"'
! stderr '.'
# Check that a load error in an imported package is attributed correctly.
! go build -json -o=$devnull ./loadimporterror
stdout '"ImportPath":"x","Action":"build-output","Output":".*package x is not in std.*\\n"'
stdout '"ImportPath":"x","Action":"build-fail"'
! stderr '.'
-- go.mod --
module m
go 1.21
-- compileerror/main.go --
package compileerror
const x = y
-- importerror/main.go --
package main
import _ "m/compileerror"
-- loaderror/main.go --
// A bad import causes a failure directly in cmd/go during import processing.
package loaderror
import _ "x"
-- loadimporterror/main.go --
package loadimporterror
import _ "m/loaderror"