mirror of
https://github.com/golang/go
synced 2024-11-27 03:11:19 -07:00
3e7cb78800
This re-enables the behavior of CL 536399 (by effectively reverting CL 628955), so now go test -json again includes build output and failures as JSON rather than text. However, since this behavior is clearly enough to trip up some build systems, this CL includes a GODEBUG=gotestjsonbuildtext that can be set to 1 to revert to the old behavior. Fixes #70402. Updates #62067. Cq-Include-Trybots: luci.golang.try:gotip-darwin-arm64_13,gotip-linux-amd64-longtest,gotip-windows-amd64-longtest Change-Id: I84e778cd844783dacfc83433e391b5ccb5925127 Reviewed-on: https://go-review.googlesource.com/c/go/+/629335 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> Auto-Submit: Austin Clements <austin@google.com>
41 lines
1.7 KiB
Markdown
41 lines
1.7 KiB
Markdown
## Tools {#tools}
|
|
|
|
### Go command {#go-command}
|
|
|
|
The `go build` and `go install` commands now accept a `-json` flag that reports
|
|
build output and failures as structured JSON output on standard output.
|
|
For details of the reporting format, see `go help buildjson`.
|
|
|
|
Furthermore, `go test -json` now reports build output and failures in JSON,
|
|
interleaved with test result JSON.
|
|
These are distinguished by new `Action` types, but if they cause problems in
|
|
a test integration system, you can revert to the text build output by setting
|
|
`GODEBUG=gotestjsonbuildtext=1`.
|
|
|
|
### Cgo {#cgo}
|
|
|
|
Cgo currently refuses to compile calls to a C function which has multiple
|
|
incompatible declarations. For instance, if `f` is declared as both `void f(int)`
|
|
and `void f(double)`, cgo will report an error instead of possibly generating an
|
|
incorrect call sequence for `f(0)`. New in this release is a better detector for
|
|
this error condition when the incompatible declarations appear in different
|
|
files. See [#67699](/issue/67699).
|
|
|
|
### Vet
|
|
|
|
The new `tests` analyzer reports common mistakes in declarations of
|
|
tests, fuzzers, benchmarks, and examples in test packages, such as
|
|
malformed names, incorrect signatures, or examples that document
|
|
non-existent identifiers. Some of these mistakes may cause tests not
|
|
to run.
|
|
|
|
This analyzer is among the subset of analyzers that are run by `go test`.
|
|
|
|
### GOCACHEPROG
|
|
|
|
The `cmd/go` internal binary and test caching mechanism can now be implemented
|
|
by child processes implementing a JSON protocol between the `cmd/go` tool
|
|
and the child process named by the `GOCACHEPROG` environment variable.
|
|
This was previously behind a GOEXPERIMENT.
|
|
For protocol details, see [#59719](/issue/59719).
|