Defer XML output file creation to avoid premature file generation #331
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Issue
The test runner creates an empty XML file when it terminates unexpectedly, such as when the JVM shuts down before the listener has a chance to write any output. The existing premature file creation interferes with Bazel’s fallback mechanism, which generates the XML file from test.log only if the output file is missing.
Solution
Use LazyFileWriter to delay file creation until the first write operation. This ensures that no empty file is created if the JVM shuts down before any content is written. If no output is generated, Bazel's fallback logic can correctly generate the XML file from test.log, as it only activates when the output file does not already exist.