8028583: Add helper methods to test libraries
authorcoffeys
Tue, 19 Nov 2013 14:47:48 +0000
changeset 21810 47aa8bf866e2
parent 21809 8afe7ed13ed9
child 21811 4810bf82fa69
8028583: Add helper methods to test libraries Reviewed-by: chegar
jdk/test/java/rmi/testlibrary/TestLibrary.java
jdk/test/lib/testlibrary/jdk/testlibrary/FileUtils.java
--- a/jdk/test/java/rmi/testlibrary/TestLibrary.java	Tue Nov 19 14:08:28 2013 +0000
+++ b/jdk/test/java/rmi/testlibrary/TestLibrary.java	Tue Nov 19 14:47:48 2013 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -127,6 +127,33 @@
         bomb(null, e);
     }
 
+    /**
+     * Helper method to determine if registry has started
+     *
+     * @param port The port number to check
+     * @param msTimeout The amount of milliseconds to spend checking
+     */
+
+    public static boolean checkIfRegistryRunning(int port, int msTimeout) {
+        long stopTime = System.currentTimeMillis() + msTimeout;
+        do {
+            try {
+                Registry r = LocateRegistry.getRegistry(port);
+                String[] s = r.list();
+                // no exception. We're now happy that registry is running
+                return true;
+            } catch (RemoteException e) {
+                // problem - not ready ? Try again
+                try {
+                    Thread.sleep(500);
+                } catch (InterruptedException ie) {
+                    // not expected
+                }
+            }
+        } while (stopTime > System.currentTimeMillis());
+        return false;
+    }
+
     public static String getProperty(String property, String defaultVal) {
         final String prop = property;
         final String def = defaultVal;
--- a/jdk/test/lib/testlibrary/jdk/testlibrary/FileUtils.java	Tue Nov 19 14:08:28 2013 +0000
+++ b/jdk/test/lib/testlibrary/jdk/testlibrary/FileUtils.java	Tue Nov 19 14:47:48 2013 +0000
@@ -68,6 +68,31 @@
         }
     }
 
+    /**
+     * Deletes a file, retrying if necessary.
+     * No exception thrown if file doesn't exist.
+     *
+     * @param path  the file to delete
+     *
+     * @throws NoSuchFileException
+     *         if the file does not exist (optional specific exception)
+     * @throws DirectoryNotEmptyException
+     *         if the file is a directory and could not otherwise be deleted
+     *         because the directory is not empty (optional specific exception)
+     * @throws IOException
+     *         if an I/O error occurs
+     */
+    public static void deleteFileIfExistsWithRetry(Path path)
+        throws IOException
+    {
+        try {
+            if(Files.exists(path))
+                deleteFileWithRetry0(path);
+        } catch (InterruptedException x) {
+            throw new IOException("Interrupted while deleting.", x);
+        }
+    }
+
     private static void deleteFileWithRetry0(Path path)
         throws IOException, InterruptedException
     {