RFR: 8208227: tools/jdeps/DotFileTest.java fails on Win-X64
mandy chung
mandy.chung at oracle.com
Thu Jul 26 17:57:29 UTC 2018
Thanks for fixing this Jon. Looks good.
Mandy
On 7/25/18 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