RFR: 8208227: tools/jdeps/DotFileTest.java fails on Win-X64
Jonathan Gibbons
jonathan.gibbons at oracle.com
Wed Jul 25 23:55:22 UTC 2018
Thanks
On 7/25/18 4:54 PM, joe darcy wrote:
> Look fine Jon; cheers,
>
> -Joe
>
>
> On 7/25/2018 3:00 PM, Jonathan Gibbons wrote:
>> Please review a simple fix for a P2 (tier1) langtools test failure.
>>
>> It's Yet Another Example of using Files.delete on Windows and
>> expecting it to work.
>> The fix is to replace the usage with more robust library code, such
>> as that provided
>> in the ToolBox test-utility class.
>>
>> Webrev: http://cr.openjdk.java.net/~jjg/8208227/webrev.00/
>> JBS: https://bugs.openjdk.java.net/browse/JDK-8208227
>>
>> The diff is small enough to also include inline:
>>
>> --- old/test/langtools/tools/jdeps/DotFileTest.java 2018-07-25
>> 14:51:38.032332248 -0700
>> +++ new/test/langtools/tools/jdeps/DotFileTest.java 2018-07-25
>> 14:51:37.644315078 -0700
>> @@ -27,7 +27,8 @@
>> * @summary Basic tests for jdeps -dotoutput option
>> * @modules java.management
>> * jdk.jdeps/com.sun.tools.jdeps
>> - * @build Test p.Foo p.Bar
>> + * @library /tools/lib
>> + * @build toolbox.ToolBox Test p.Foo p.Bar
>> * @run main DotFileTest
>> */
>>
>> @@ -43,6 +44,8 @@
>> import java.util.regex.*;
>> import java.util.stream.Collectors;
>>
>> +import toolbox.ToolBox;
>> +
>> public class DotFileTest {
>> public static void main(String... args) throws Exception {
>> int errors = 0;
>> @@ -51,9 +54,11 @@
>> throw new Exception(errors + " errors found");
>> }
>>
>> + final ToolBox toolBox;
>> final Path dir;
>> final Path dotoutput;
>> DotFileTest() {
>> + this.toolBox = new ToolBox();
>> this.dir = Paths.get(System.getProperty("test.classes", "."));
>> this.dotoutput = dir.resolve("dots");
>> }
>> @@ -169,12 +174,10 @@
>>
>> Map<String,String> jdeps(List<String> args, Path dotfile) throws
>> IOException {
>> if (Files.exists(dotoutput)) {
>> - try (DirectoryStream<Path> stream =
>> Files.newDirectoryStream(dotoutput)) {
>> - for (Path p : stream) {
>> - Files.delete(p);
>> - }
>> - }
>> - Files.delete(dotoutput);
>> + // delete contents of directory, then directory,
>> + // waiting for confirmation on Windows
>> + toolBox.cleanDirectory(dotoutput);
>> + toolBox.deleteFiles(dotoutput);
>> }
>> // invoke jdeps
>> StringWriter sw = new StringWriter();
>>
>>
>
More information about the compiler-dev
mailing list