You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zookeeper.apache.org by rg...@apache.org on 2015/12/06 21:30:07 UTC

svn commit: r1718212 - in /zookeeper/trunk: ./ src/java/systest/org/apache/zookeeper/test/system/ src/java/test/org/apache/zookeeper/server/quorum/ src/java/test/org/apache/zookeeper/test/

Author: rgs
Date: Sun Dec  6 20:30:07 2015
New Revision: 1718212

URL: http://svn.apache.org/viewvc?rev=1718212&view=rev
Log:
ZOOKEEPER-2306: Remove file delete duplicate code from test code
(Arshad Mohammad via rgs)

Added:
    zookeeper/trunk/src/java/test/org/apache/zookeeper/test/TestUtils.java
Modified:
    zookeeper/trunk/CHANGES.txt
    zookeeper/trunk/src/java/systest/org/apache/zookeeper/test/system/QuorumPeerInstance.java
    zookeeper/trunk/src/java/test/org/apache/zookeeper/server/quorum/LearnerTest.java
    zookeeper/trunk/src/java/test/org/apache/zookeeper/server/quorum/Zab1_0Test.java
    zookeeper/trunk/src/java/test/org/apache/zookeeper/test/ClientBase.java

Modified: zookeeper/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/zookeeper/trunk/CHANGES.txt?rev=1718212&r1=1718211&r2=1718212&view=diff
==============================================================================
--- zookeeper/trunk/CHANGES.txt (original)
+++ zookeeper/trunk/CHANGES.txt Sun Dec  6 20:30:07 2015
@@ -327,6 +327,9 @@ IMPROVEMENTS:
   ZOOKEEPER-2335: Java Compilation Error in ClientCnxn.java
   (Arshad Mohammad via rgs)
 
+  ZOOKEEPER-2306: Remove file delete duplicate code from test code
+  (Arshad Mohammad via rgs)
+
 Release 3.5.0 - 8/4/2014
 
 NEW FEATURES:

Modified: zookeeper/trunk/src/java/systest/org/apache/zookeeper/test/system/QuorumPeerInstance.java
URL: http://svn.apache.org/viewvc/zookeeper/trunk/src/java/systest/org/apache/zookeeper/test/system/QuorumPeerInstance.java?rev=1718212&r1=1718211&r2=1718212&view=diff
==============================================================================
--- zookeeper/trunk/src/java/systest/org/apache/zookeeper/test/system/QuorumPeerInstance.java (original)
+++ zookeeper/trunk/src/java/systest/org/apache/zookeeper/test/system/QuorumPeerInstance.java Sun Dec  6 20:30:07 2015
@@ -33,6 +33,7 @@ import org.slf4j.LoggerFactory;
 import org.apache.zookeeper.KeeperException;
 import org.apache.zookeeper.server.quorum.QuorumPeer;
 import org.apache.zookeeper.server.quorum.QuorumPeer.QuorumServer;
+import org.apache.zookeeper.test.TestUtils;
 
 class QuorumPeerInstance implements Instance {
     final private static Logger LOG = LoggerFactory.getLogger(QuorumPeerInstance.class);
@@ -208,17 +209,6 @@ class QuorumPeerInstance implements Inst
 
     public void start() {
     }
-
-    static private void recursiveDelete(File dir) {
-        if (!dir.isDirectory()) {
-            dir.delete();
-            return;
-        }
-        for(File f: dir.listFiles()) {
-            recursiveDelete(f);
-        }
-        dir.delete();
-    }
     
     public void stop() {
         if (LOG.isDebugEnabled()) {
@@ -228,10 +218,10 @@ class QuorumPeerInstance implements Inst
             peer.shutdown();
         }
         if (logDir != null) {
-            recursiveDelete(logDir);
+            TestUtils.deleteFileRecursively(logDir);
         }
         if (snapDir != null) {
-            recursiveDelete(snapDir);
+            TestUtils.deleteFileRecursively(snapDir);
         }
     }
 

Modified: zookeeper/trunk/src/java/test/org/apache/zookeeper/server/quorum/LearnerTest.java
URL: http://svn.apache.org/viewvc/zookeeper/trunk/src/java/test/org/apache/zookeeper/server/quorum/LearnerTest.java?rev=1718212&r1=1718211&r2=1718212&view=diff
==============================================================================
--- zookeeper/trunk/src/java/test/org/apache/zookeeper/server/quorum/LearnerTest.java (original)
+++ zookeeper/trunk/src/java/test/org/apache/zookeeper/server/quorum/LearnerTest.java Sun Dec  6 20:30:07 2015
@@ -35,6 +35,7 @@ import org.apache.zookeeper.ZooDefs;
 import org.apache.zookeeper.data.ACL;
 import org.apache.zookeeper.server.ZKDatabase;
 import org.apache.zookeeper.server.persistence.FileTxnSnapLog;
+import org.apache.zookeeper.test.TestUtils;
 import org.apache.zookeeper.txn.CreateTxn;
 import org.apache.zookeeper.txn.TxnHeader;
 import org.junit.Assert;
@@ -66,18 +67,6 @@ public class LearnerTest extends ZKTestC
         }
     }
 
-    static private void recursiveDelete(File dir) {
-        if (dir == null || !dir.exists()) {
-            return;
-        }
-        if (!dir.isDirectory()) {
-            dir.delete();
-        }
-        for (File child : dir.listFiles()) {
-            recursiveDelete(child);
-        }
-    }
-
     static class TimeoutLearner extends Learner {
         int passSocketConnectOnAttempt = 10;
         int socketConnectAttempt = 0;
@@ -193,7 +182,7 @@ public class LearnerTest extends ZKTestC
             sl = new SimpleLearner(ftsl);
             Assert.assertEquals(startZxid, sl.zk.getLastProcessedZxid());
         } finally {
-            recursiveDelete(tmpFile);
+            TestUtils.deleteFileRecursively(tmpFile);
         }
     }
 }

Modified: zookeeper/trunk/src/java/test/org/apache/zookeeper/server/quorum/Zab1_0Test.java
URL: http://svn.apache.org/viewvc/zookeeper/trunk/src/java/test/org/apache/zookeeper/server/quorum/Zab1_0Test.java?rev=1718212&r1=1718211&r2=1718212&view=diff
==============================================================================
--- zookeeper/trunk/src/java/test/org/apache/zookeeper/server/quorum/Zab1_0Test.java (original)
+++ zookeeper/trunk/src/java/test/org/apache/zookeeper/server/quorum/Zab1_0Test.java Sun Dec  6 20:30:07 2015
@@ -28,7 +28,6 @@ import java.io.FileOutputStream;
 import java.io.FileReader;
 import java.io.IOException;
 import java.io.EOFException;
-import java.lang.reflect.Field;
 import java.net.InetAddress;
 import java.net.InetSocketAddress;
 import java.net.ServerSocket;
@@ -58,6 +57,7 @@ import org.apache.zookeeper.server.persi
 import org.apache.zookeeper.server.quorum.QuorumPeer.QuorumServer;
 import org.apache.zookeeper.server.quorum.flexible.QuorumMaj;
 import org.apache.zookeeper.server.util.ZxidUtils;
+import org.apache.zookeeper.test.TestUtils;
 import org.apache.zookeeper.txn.CreateSessionTxn;
 import org.apache.zookeeper.txn.CreateTxn;
 import org.apache.zookeeper.txn.ErrorTxn;
@@ -67,7 +67,6 @@ import org.apache.zookeeper.ZKTestCase;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
-import org.apache.zookeeper.server.quorum.flexible.QuorumVerifier;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -188,7 +187,7 @@ public class Zab1_0Test extends ZKTestCa
             if (leader != null) {
                 leader.shutdown("end of test");
             }
-            recursiveDelete(tmpDir);
+            TestUtils.deleteFileRecursively(tmpDir);
         }
     }
     
@@ -240,7 +239,7 @@ public class Zab1_0Test extends ZKTestCa
                 leadThread.interrupt();
                 leadThread.join();
             }
-            recursiveDelete(tmpDir);
+            TestUtils.deleteFileRecursively(tmpDir);
         }
     }
     
@@ -277,7 +276,7 @@ public class Zab1_0Test extends ZKTestCa
             if (leader != null) {
                 leader.shutdown("end of test");
             }
-            recursiveDelete(tmpDir);
+            TestUtils.deleteFileRecursively(tmpDir);
         }
     }
 
@@ -399,7 +398,7 @@ public class Zab1_0Test extends ZKTestCa
                 leadThread.interrupt();
                 leadThread.join();
             }
-            recursiveDelete(tmpDir);
+            TestUtils.deleteFileRecursively(tmpDir);
         }
     }
     
@@ -468,7 +467,7 @@ public class Zab1_0Test extends ZKTestCa
                 leadThread.interrupt();
                 leadThread.join();
             }
-            recursiveDelete(tmpDir);
+            TestUtils.deleteFileRecursively(tmpDir);
         }
     }
     
@@ -521,7 +520,7 @@ public class Zab1_0Test extends ZKTestCa
             if (peer != null) {
                 peer.shutdown();
             }
-            recursiveDelete(tmpDir);
+            TestUtils.deleteFileRecursively(tmpDir);
         }
     }
 
@@ -572,7 +571,7 @@ public class Zab1_0Test extends ZKTestCa
             if (peer != null) {
                 peer.shutdown();
             }
-            recursiveDelete(tmpDir);
+            TestUtils.deleteFileRecursively(tmpDir);
         }
     }
 
@@ -748,7 +747,7 @@ public class Zab1_0Test extends ZKTestCa
                     Assert.assertEquals("data2", new String(zkDb2.getData("/foo", stat, null)));
                     Assert.assertEquals(proposalZxid, lastZxid);
                 } finally {
-                    recursiveDelete(tmpDir);
+                    TestUtils.deleteFileRecursively(tmpDir);
                 }
                 
             }
@@ -853,7 +852,7 @@ public class Zab1_0Test extends ZKTestCa
                     LOG.info("zkdb2 sessions:" + zkDb2.getSessions());
                     Assert.assertNotNull(zkDb2.getSessionWithTimeOuts().get(4L));
                 } finally {
-                    recursiveDelete(tmpDir);
+                    TestUtils.deleteFileRecursively(tmpDir);
                 }
                 
             }
@@ -1127,7 +1126,7 @@ public class Zab1_0Test extends ZKTestCa
                     Assert.assertEquals("data2", new String(zkDb2.getData("/foo2", stat, null)));
                     Assert.assertEquals(informZxid, lastZxid);
                 } finally {
-                    recursiveDelete(tmpDir);
+                    TestUtils.deleteFileRecursively(tmpDir);
                 }
 
             }
@@ -1216,21 +1215,6 @@ public class Zab1_0Test extends ZKTestCa
         });
     }
     
-    private void recursiveDelete(File file) {
-        if (file.isFile()) {
-            file.delete();
-        } else {
-            // might return null if deleted out from under us...
-            File[] files = file.listFiles();
-            if (files != null) {
-                for(File c: files) {
-                    recursiveDelete(c);
-                }
-            }
-            file.delete();
-        }
-    }
-
     private Leader createLeader(File tmpDir, QuorumPeer peer)
     throws IOException, NoSuchFieldException, IllegalAccessException{
         LeaderZooKeeperServer zk = prepareLeader(tmpDir, peer);
@@ -1371,7 +1355,7 @@ public class Zab1_0Test extends ZKTestCa
                     .parseInt(readContentsOfFile(new File(version2,
                             QuorumPeer.ACCEPTED_EPOCH_FILENAME))));
         } finally {
-            recursiveDelete(tmpDir);
+            TestUtils.deleteFileRecursively(tmpDir);
         }
     }
 }

Modified: zookeeper/trunk/src/java/test/org/apache/zookeeper/test/ClientBase.java
URL: http://svn.apache.org/viewvc/zookeeper/trunk/src/java/test/org/apache/zookeeper/test/ClientBase.java?rev=1718212&r1=1718211&r2=1718212&view=diff
==============================================================================
--- zookeeper/trunk/src/java/test/org/apache/zookeeper/test/ClientBase.java (original)
+++ zookeeper/trunk/src/java/test/org/apache/zookeeper/test/ClientBase.java Sun Dec  6 20:30:07 2015
@@ -573,13 +573,7 @@ public abstract class ClientBase extends
     }
 
     public static boolean recursiveDelete(File d) {
-        if (d.isDirectory()) {
-            File children[] = d.listFiles();
-            for (File f : children) {
-                Assert.assertTrue("delete " + f.toString(), recursiveDelete(f));
-            }
-        }
-        return d.delete();
+       return TestUtils.deleteFileRecursively(d, true);
     }
 
     public static void logAllStackTraces() {

Added: zookeeper/trunk/src/java/test/org/apache/zookeeper/test/TestUtils.java
URL: http://svn.apache.org/viewvc/zookeeper/trunk/src/java/test/org/apache/zookeeper/test/TestUtils.java?rev=1718212&view=auto
==============================================================================
--- zookeeper/trunk/src/java/test/org/apache/zookeeper/test/TestUtils.java (added)
+++ zookeeper/trunk/src/java/test/org/apache/zookeeper/test/TestUtils.java Sun Dec  6 20:30:07 2015
@@ -0,0 +1,60 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.zookeeper.test;
+
+import java.io.File;
+
+import org.junit.Assert;
+
+/**
+ * This class contains test utility methods
+ */
+public class TestUtils {
+
+    /**
+     * deletes a folder recursively
+     * 
+     * @param file
+     *            folder to be deleted
+     * @param failOnError
+     *            if true file deletion success is ensured
+     */
+    public static boolean deleteFileRecursively(File file,
+            final boolean failOnError) {
+        if (file != null) {
+            if (file.isDirectory()) {
+                File[] files = file.listFiles();
+                int size = files.length;
+                for (int i = 0; i < size; i++) {
+                    File f = files[i];
+                    boolean deleted = deleteFileRecursively(files[i], failOnError);
+                    if(!deleted && failOnError)
+                    {
+                        Assert.fail("file '" + f.getAbsolutePath()+"' deletion failed");
+                    }
+                }
+            }
+            return file.delete();
+        }
+        return true;
+    }
+
+    public static boolean deleteFileRecursively(File file) {
+        return deleteFileRecursively(file, false);
+    }
+}