[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"
