mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-09-29 06:06:03 +00:00
T.Setenv ensures that the environment is returned to its prior state when the test ends. It also panics when called from a parallel test to prevent racy test interdependencies.
Typecheck does cross-platform typechecking of source code for all Go build platforms. The primary benefit is speed: a full Kubernetes cross-build takes 20 minutes and >40GB of RAM, while this takes under 2 minutes and <8GB of RAM. It uses Go's built-in parsing and typechecking libraries (go/parser and go/types), which unfortunately are not what the go compiler uses. Occasional mismatches will occur, but overall they correspond closely. Failures can be ignored if they don't block the build: Things go/types errors on that go build doesn't: True errors (according to the spec): These should be fixed whenever possible. Ignore if a fix isn't possible or is in progress (e.g., vendored code). - unused variables in closures False errors: These should be ignored and reported upstream if applicable. - type checking mismatches between staging and generated types Things go build fails on that we don't: - CGo errors, including syntax and linker errors.