RFR: 8274244: ReportOnImportedModuleAnnotation.java fails on rerun
Jonathan Gibbons
jjg at openjdk.java.net
Mon Oct 4 16:34:08 UTC 2021
On Mon, 4 Oct 2021 00:35:19 GMT, Joe Darcy <darcy at openjdk.org> wrote:
> In terms of jtreg build tags, semantically this test wants to:
>
> * build annotation processing sources
> * compile module sources, running build annotation processor
>
> In particular, the test wants to always compile the module sources, even if class files are newer than the module-info.java files. Since the test is not written in terms of those tags, I've added a pre-step which delete any existing class files from the output directory. If needed, some extra care could be taken to only delete files from the one module.
>
> With this addition, the test will pass even when run with an already populated JTwork directory. At present, the test fails since the implicit compilation of module-info.java is *not* done when the class files in the output directory are newer than the sources.
test/langtools/tools/javac/processing/ReportOnImportedModuleAnnotation/ReportOnImportedModuleAnnotation.java line 64:
> 62: File file = path.toFile();
> 63: if (file.getName().endsWith(".class")) {
> 64: file.delete();
This is unlikely to work reliably on Windows, where the delete can be asynchronous. I recommend the use of the `ToolBox` test library class, and `ToolBox.delete`
Alternatively use jorge built-in guarantee that work directory is empty at the beginning of the test.
-------------
PR: https://git.openjdk.java.net/jdk/pull/5802
More information about the compiler-dev
mailing list