Return exit codes describing test action system failures instead of 3 Previously, the numerical exit code returned from "test" and "coverage" invocations which experienced a system failure during a test action execution was 3, the same as what is returned given a user-attributable test failure. Now, the numerical exit code will reflect the test action failure when it's attributable to the system. For example, if a test action fails because of a remote execution error, the invocation will return 34 (REMOTE_ERROR). Tests that failed because of a system error get rerun when subsequently requested, regardless of the value specified for "--cache_test_results". This cache avoiding behavior is implemented by resurrecting the use of the TestResultData.cachable field, which was previously used nowhere, since an ancient change to the codebase took it out of use. TestResultData.cachable is now set to false when a test action fails due to a system error. The logic that determines whether to use cached test results based on the properties of that result and the value of "--cache_test_results" now always ignores those results if they have cachable=false. RELNOTES: The "test" and "coverage" commands no longer return 3 when a test action fails because of a system error. Instead, the exit code reflects the type of system error. PiperOrigin-RevId: 349337510
{Fast, Correct} - Choose two
Build and test software of any size, quickly and reliably.
Speed up your builds and tests: Bazel rebuilds only what is necessary. With advanced local and distributed caching, optimized dependency analysis and parallel execution, you get fast and incremental builds.
One tool, multiple languages: Build and test Java, C++, Android, iOS, Go, and a wide variety of other language platforms. Bazel runs on Windows, macOS, and Linux.
Scalable: Bazel helps you scale your organization, codebase, and continuous integration solution. It handles codebases of any size, in multiple repositories or a huge monorepo.
Extensible to your needs: Easily add support for new languages and platforms with Bazel's familiar extension language. Share and re-use language rules written by the growing Bazel community.
Follow our tutorials:
See CONTRIBUTING.md