mirror of
https://github.com/golang/go
synced 2024-11-22 22:40:02 -07:00
ff2a57ba92
(Second attempt at CL 529816 (f1d6050
), reverted in CL 571695 (1304d98
) due to broken longtest builder.) The tests analyser reports structural problems in test declarations. Presumably most of these would be caught by go test itself, which compiles and runs (some subset of) the tests, but Benchmark and Fuzz functions are executed less frequently and may benefit more from static checks. A number of tests of "go vet" needed to be updated, either to avoid mistakes caught by the analyzer, or to suppress the analyzer when the mistakes were intended. Also, reflect the change in go test help message. + release note Fixes golang/go#44251 Change-Id: I1c311086815fe55a66cce001eaab9b41e27d1144 Reviewed-on: https://go-review.googlesource.com/c/go/+/603476 Auto-Submit: Alan Donovan <adonovan@google.com> Reviewed-by: Ian Lance Taylor <iant@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
23 lines
856 B
Markdown
23 lines
856 B
Markdown
## Tools {#tools}
|
|
|
|
### Go command {#go-command}
|
|
|
|
### 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`.
|