RFR: 8208227: tools/jdeps/DotFileTest.java fails on Win-X64

joe darcy joe.darcy at oracle.com
Wed Jul 25 23:54:02 UTC 2018


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