You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by ka...@apache.org on 2011/06/22 13:36:39 UTC

svn commit: r1138409 - in /db/derby/code/branches/10.8: ./ java/testing/org/apache/derbyTesting/functionTests/tests/junitTests/compatibility/CompatibilityCombinations.java

Author: kahatlen
Date: Wed Jun 22 11:36:39 2011
New Revision: 1138409

URL: http://svn.apache.org/viewvc?rev=1138409&view=rev
Log:
DERBY-5222: Compatibility tests fail to delete database directory

Merged fix from trunk (revisions 1101059, 1102620, 1103742).

Modified:
    db/derby/code/branches/10.8/   (props changed)
    db/derby/code/branches/10.8/java/testing/org/apache/derbyTesting/functionTests/tests/junitTests/compatibility/CompatibilityCombinations.java

Propchange: db/derby/code/branches/10.8/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Jun 22 11:36:39 2011
@@ -1,2 +1,2 @@
 /db/derby/code/branches/10.7:1061570,1061578,1082235
-/db/derby/code/trunk:1063809,1088633,1091000,1091221,1091285,1092067,1092795,1094315,1094572,1094728,1096741,1096890,1097247,1097249,1097460,1097469,1097471,1101839,1102826,1103681,1103718,1125305,1126358,1127825,1127883,1129136,1129764,1129797,1130077,1130084,1130632,1130895,1131030,1131272,1132546,1132664,1132860,1132928,1133741,1133752,1136844
+/db/derby/code/trunk:1063809,1088633,1091000,1091221,1091285,1092067,1092795,1094315,1094572,1094728,1096741,1096890,1097247,1097249,1097460,1097469,1097471,1101059,1101839,1102620,1102826,1103681,1103718,1103742,1125305,1126358,1127825,1127883,1129136,1129764,1129797,1130077,1130084,1130632,1130895,1131030,1131272,1132546,1132664,1132860,1132928,1133741,1133752,1136844

Modified: db/derby/code/branches/10.8/java/testing/org/apache/derbyTesting/functionTests/tests/junitTests/compatibility/CompatibilityCombinations.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.8/java/testing/org/apache/derbyTesting/functionTests/tests/junitTests/compatibility/CompatibilityCombinations.java?rev=1138409&r1=1138408&r2=1138409&view=diff
==============================================================================
--- db/derby/code/branches/10.8/java/testing/org/apache/derbyTesting/functionTests/tests/junitTests/compatibility/CompatibilityCombinations.java (original)
+++ db/derby/code/branches/10.8/java/testing/org/apache/derbyTesting/functionTests/tests/junitTests/compatibility/CompatibilityCombinations.java Wed Jun 22 11:36:39 2011
@@ -237,6 +237,9 @@ public class CompatibilityCombinations e
     private static boolean includeUpgrade = false;
     
     private static long SLEEP_TIME_MILLIS = 5000L;
+
+    /** The process in which the network server is running. */
+    private Process serverProc;
     
     /**
      * Creates a new instance of CompatibilityCombinations
@@ -729,6 +732,7 @@ public class CompatibilityCombinations e
             Process proc = Runtime.getRuntime().exec(fullCmd,envElements,workingDir);
             PrintWriter out = new PrintWriter(new FileWriter(workingDirName+PS+combinationName));
             String result = testOutput(proc, out); // Scans test report for OK and Time...
+            proc.waitFor();
             if ( result.indexOf(" OK ") != -1 ) testOK = true;
             result= combinationName+":" + result;
             summaryFile.println(result);
@@ -1024,12 +1028,11 @@ public class CompatibilityCombinations e
             {
                 public void run()
                 {
-                    Process proc = null;
                     try
                     {
                         DEBUG("************** In run().");
-                        proc = Runtime.getRuntime().exec(fullCmd,envElements,workingDir);
-                        // proc = Runtime.getRuntime().exec(commandElements,envElements,workingDir);
+                        serverProc = Runtime.getRuntime().
+                                exec(fullCmd, envElements, workingDir);
                         DEBUG("************** Done exec().");
                     }
                     catch (Exception ex)
@@ -1118,15 +1121,8 @@ public class CompatibilityCombinations e
         
         if ( removeDBfiles )
         {
-            File databaseDir = new File(fullPath);
-            if ( deleteDir(databaseDir) )
-            {
-                DEBUG("Successfully deleted database dir '" + fullPath +"'");
-            }
-            else
-            {
-                DEBUG("Failed deleting database dir '" + fullPath +"'");
-            }
+            DEBUG("Deleting database dir '" + fullPath + "'");
+            BaseTestCase.removeDirectory(fullPath);
         }
         else
         {
@@ -1152,9 +1148,8 @@ public class CompatibilityCombinations e
         try
         {
             Process proc = Runtime.getRuntime().exec(fullCmd,envElements,workingDir);
-            proc.waitFor();
             processDEBUGOutput(proc);
-                        
+            proc.waitFor();
         }
         catch (Exception ex)
         {
@@ -1275,9 +1270,14 @@ public class CompatibilityCombinations e
                 );
             try
             {
+                // Tell the server to stop.
                 Process proc = Runtime.getRuntime().exec(fullCmd,envElements,workingDir);
                 processDEBUGOutput(proc);
-                
+                proc.waitFor();
+
+                // Now wait for it to actually stop.
+                serverProc.waitFor();
+                serverProc = null;
             }
             catch (Exception ex)
             {
@@ -1348,7 +1348,7 @@ public class CompatibilityCombinations e
         {
             Process proc = Runtime.getRuntime().exec(fullCmd,envElements,workingDir);
             processOutput(proc, out);
-            
+            proc.waitFor();
         }
         catch (Exception ex)
         {
@@ -1408,7 +1408,7 @@ public class CompatibilityCombinations e
         {
             Process proc = Runtime.getRuntime().exec(fullCmd,envElements,workingDir);
             processOutput(proc, out);
-            
+            proc.waitFor();
         }
         catch (Exception ex)
         {
@@ -1419,25 +1419,6 @@ public class CompatibilityCombinations e
         DEBUG("");
     }
     
-    
-    private static boolean deleteDir(File dir)
-    {
-        if (dir.isDirectory())
-        {
-            String[] children = dir.list();
-            for (int i=0; i<children.length; i++)
-          {
-                boolean success = deleteDir(new File(dir, children[i]));
-                if (!success)
-                {
-                    return false;
-                }
-            }
-        }
-        
-        // The directory is now empty so delete it
-        return dir.delete();
-    }
     /////////////////////
     
   private static void processOutput(Process proc, PrintWriter out)