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