You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by el...@apache.org on 2014/10/28 19:00:23 UTC

[2/3] git commit: ACCUMULO-3243 Add missing timeouts of transition to scalable timeout JUnit Rule.

ACCUMULO-3243 Add missing timeouts of transition to scalable timeout JUnit Rule.

Ported TableOperationsIT over to SimpleMacIT.


Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo
Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/b0771ef6
Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/b0771ef6
Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/b0771ef6

Branch: refs/heads/master
Commit: b0771ef664551ffe595dc5d5735d8025f085c2ac
Parents: 41fc5fb
Author: Josh Elser <el...@apache.org>
Authored: Mon Oct 27 11:11:37 2014 -0400
Committer: Josh Elser <el...@apache.org>
Committed: Tue Oct 28 11:28:08 2014 -0400

----------------------------------------------------------------------
 .../apache/accumulo/proxy/SimpleProxyIT.java    | 53 +++++++++----
 .../apache/accumulo/test/Accumulo3010IT.java    | 13 ++-
 .../apache/accumulo/test/Accumulo3030IT.java    |  7 +-
 .../apache/accumulo/test/AuditMessageIT.java    | 17 ++--
 .../org/apache/accumulo/test/BatchWriterIT.java |  7 +-
 .../accumulo/test/BulkImportVolumeIT.java       | 11 ++-
 .../org/apache/accumulo/test/CleanWalIT.java    | 13 ++-
 .../org/apache/accumulo/test/DeleteRowsIT.java  |  9 ++-
 .../org/apache/accumulo/test/DumpConfigIT.java  |  7 +-
 .../org/apache/accumulo/test/ExistingMacIT.java |  5 ++
 .../test/MasterRepairsDualAssignmentIT.java     | 10 ++-
 .../accumulo/test/MetaConstraintRetryIT.java    |  7 +-
 .../org/apache/accumulo/test/MetaSplitIT.java   |  9 ++-
 .../accumulo/test/MultiTableBatchWriterIT.java  |  5 ++
 .../org/apache/accumulo/test/NamespacesIT.java  |  7 +-
 .../accumulo/test/NoMutationRecoveryIT.java     | 15 ++--
 .../org/apache/accumulo/test/ShellConfigIT.java |  8 +-
 .../org/apache/accumulo/test/ShellServerIT.java | 83 +++++++++++---------
 .../apache/accumulo/test/SplitRecoveryIT.java   |  7 +-
 .../test/TableConfigurationUpdateIT.java        |  7 +-
 .../apache/accumulo/test/TableOperationsIT.java | 52 ++++++------
 .../functional/ConfigurableCompactionIT.java    |  7 +-
 .../accumulo/test/functional/CredentialsIT.java | 19 +++--
 .../test/functional/GarbageCollectorIT.java     | 17 ++--
 .../accumulo/test/functional/MetadataIT.java    | 15 ++--
 .../accumulo/test/functional/RestartIT.java     | 19 +++--
 .../apache/accumulo/test/functional/SslIT.java  | 15 ++--
 .../test/functional/SslWithClientAuthIT.java    |  2 +-
 28 files changed, 291 insertions(+), 155 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/accumulo/blob/b0771ef6/proxy/src/test/java/org/apache/accumulo/proxy/SimpleProxyIT.java
----------------------------------------------------------------------
diff --git a/proxy/src/test/java/org/apache/accumulo/proxy/SimpleProxyIT.java b/proxy/src/test/java/org/apache/accumulo/proxy/SimpleProxyIT.java
index 62e5b64..50e53a9 100644
--- a/proxy/src/test/java/org/apache/accumulo/proxy/SimpleProxyIT.java
+++ b/proxy/src/test/java/org/apache/accumulo/proxy/SimpleProxyIT.java
@@ -112,6 +112,7 @@ import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.TemporaryFolder;
 import org.junit.rules.TestName;
+import org.junit.rules.Timeout;
 
 /**
  * Call every method on the proxy and try to verify that it works.
@@ -162,6 +163,18 @@ public class SimpleProxyIT {
   @Rule
   public TestName testName = new TestName();
 
+  @Rule
+  public Timeout testsShouldTimeout() {
+    int waitLonger;
+    try {
+      waitLonger = Integer.parseInt(System.getProperty("timeout.factor"));
+    } catch (NumberFormatException e) {
+      waitLonger = 1;
+    }
+
+    return new Timeout(waitLonger * 60 * 1000);
+  }
+
   @BeforeClass
   public static void setupMiniCluster() throws Exception {
     FileUtils.deleteQuietly(macTestFolder);
@@ -198,7 +211,18 @@ public class SimpleProxyIT {
     creds = client.login(principal, properties);
   }
 
-  @Test(timeout = 10000)
+  @AfterClass
+  public static void tearDownMiniCluster() throws Exception {
+    if (null != proxyServer) {
+      proxyServer.stop();
+      thread.interrupt();
+      thread.join(5000);
+    }
+    accumulo.stop();
+    FileUtils.deleteQuietly(macTestFolder);
+  }
+
+  @Test
   public void security() throws Exception {
     client.createLocalUser(creds, "user", s2bb(secret));
     ByteBuffer badLogin = client.login("user", properties);
@@ -473,7 +497,7 @@ public class SimpleProxyIT {
     } catch (AccumuloSecurityException ex) {}
   }
 
-  @Test(timeout = 10000)
+  @Test
   public void tableNotFound() throws Exception {
     final String doesNotExist = "doesNotExists";
     try {
@@ -632,8 +656,8 @@ public class SimpleProxyIT {
       client.createConditionalWriter(creds, doesNotExist, new ConditionalWriterOptions());
     } catch (TableNotFoundException ex) {}
   }
-  
-  @Test(timeout = 10 * 1000)
+
+  @Test
   public void testExists() throws Exception {
     client.createTable(creds, "ett1", false, TimeType.MILLIS);
     client.createTable(creds, "ett2", false, TimeType.MILLIS);
@@ -651,7 +675,7 @@ public class SimpleProxyIT {
     } catch (TableExistsException tee) {}
   }
 
-  @Test(timeout = 10000)
+  @Test
   public void testUnknownScanner() throws Exception {
     final String TABLE_TEST = makeTableName();
 
@@ -689,7 +713,7 @@ public class SimpleProxyIT {
     } catch (UnknownScanner us) {}
   }
 
-  @Test(timeout = 10000)
+  @Test
   public void testUnknownWriter() throws Exception {
     final String TABLE_TEST = makeTableName();
 
@@ -722,7 +746,7 @@ public class SimpleProxyIT {
     } catch (UnknownWriter uw) {}
   }
 
-  @Test(timeout = 10000)
+  @Test
   public void testDelete() throws Exception {
     final String TABLE_TEST = makeTableName();
 
@@ -740,7 +764,7 @@ public class SimpleProxyIT {
     assertScan(new String[][] {}, TABLE_TEST);
   }
 
-  @Test(timeout = 60000)
+  @Test
   public void testInstanceOperations() throws Exception {
     int tservers = 0;
     for (String tserver : client.getTabletServers(creds)) {
@@ -806,7 +830,7 @@ public class SimpleProxyIT {
     };
     t.start();
 
-    // look for the scan many times 
+    // look for the scan many times
     List<ActiveScan> scans = new ArrayList<ActiveScan>();
     for (int i = 0; i < 100 && scans.isEmpty(); i++) {
       for (String tserver : client.getTabletServers(creds)) {
@@ -1012,7 +1036,7 @@ public class SimpleProxyIT {
     assertScan(new String[][] {}, TABLE_TEST);
 
     UtilWaitThread.sleep(2000);
-    
+
     writerOptions = new WriterOptions();
     writerOptions.setLatencyMs(10000);
     writerOptions.setMaxMemory(3000);
@@ -1551,11 +1575,11 @@ public class SimpleProxyIT {
   static private ByteBuffer t2bb(Text t) {
     return ByteBuffer.wrap(t.getBytes());
   }
-  
+
   @Test
   public void testGetRowRange() throws Exception {
     Range range = client.getRowRange(s2bb("xyzzy"));
-    org.apache.accumulo.core.data.Range range2 = new org.apache.accumulo.core.data.Range(new Text("xyzzy")); 
+    org.apache.accumulo.core.data.Range range2 = new org.apache.accumulo.core.data.Range(new Text("xyzzy"));
     assertEquals(0, range.start.row.compareTo(t2bb(range2.getStartKey().getRow())));
     assertEquals(0, range.stop.row.compareTo(t2bb(range2.getEndKey().getRow())));
     assertEquals(range.startInclusive, range2.isStartKeyInclusive());
@@ -1567,9 +1591,4 @@ public class SimpleProxyIT {
     assertEquals(range.start.timestamp, range.start.timestamp);
     assertEquals(range.stop.timestamp, range.stop.timestamp);
   }
-  
-  @AfterClass
-  public static void tearDownMiniCluster() throws Exception {
-    accumulo.stop();
-  }
 }

http://git-wip-us.apache.org/repos/asf/accumulo/blob/b0771ef6/test/src/test/java/org/apache/accumulo/test/Accumulo3010IT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/Accumulo3010IT.java b/test/src/test/java/org/apache/accumulo/test/Accumulo3010IT.java
index 1a0bfa2..791b1d5 100644
--- a/test/src/test/java/org/apache/accumulo/test/Accumulo3010IT.java
+++ b/test/src/test/java/org/apache/accumulo/test/Accumulo3010IT.java
@@ -41,14 +41,19 @@ import org.junit.Test;
 public class Accumulo3010IT extends ConfigurableMacIT {
 
   @Override
+  public int defaultTimeoutSeconds() {
+    return 60;
+  }
+
+  @Override
   public void configure(MiniAccumuloConfigImpl cfg, Configuration hadoopCoreSite) {
     cfg.setNumTservers(1);
     cfg.setProperty(Property.INSTANCE_ZK_TIMEOUT, "5s");
     // file system supports recovery
     hadoopCoreSite.set("fs.file.impl", RawLocalFileSystem.class.getName());
   }
-  
-  @Test(timeout = 60 * 1000)
+
+  @Test
   public void test() throws Exception {
     // create a table
     String tableName = getUniqueNames(1)[0];
@@ -86,6 +91,6 @@ public class Accumulo3010IT extends ConfigurableMacIT {
       Assert.assertFalse(parts[parts.length-1].startsWith("M"));
     }
   }
-  
-  
+
+
 }

http://git-wip-us.apache.org/repos/asf/accumulo/blob/b0771ef6/test/src/test/java/org/apache/accumulo/test/Accumulo3030IT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/Accumulo3030IT.java b/test/src/test/java/org/apache/accumulo/test/Accumulo3030IT.java
index 91674a5..3512e4a 100644
--- a/test/src/test/java/org/apache/accumulo/test/Accumulo3030IT.java
+++ b/test/src/test/java/org/apache/accumulo/test/Accumulo3030IT.java
@@ -37,11 +37,16 @@ import org.junit.Test;
 public class Accumulo3030IT extends ConfigurableMacIT {
 
   @Override
+  public int defaultTimeoutSeconds() {
+    return 60;
+  }
+
+  @Override
   public void configure(MiniAccumuloConfigImpl cfg, Configuration hadoopCoreSite) {
     cfg.setNumTservers(1);
   }
 
-  @Test(timeout = 60 * 1000)
+  @Test
   public void test() throws Exception {
     // make a table
     final String tableName = getUniqueNames(1)[0];

http://git-wip-us.apache.org/repos/asf/accumulo/blob/b0771ef6/test/src/test/java/org/apache/accumulo/test/AuditMessageIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/AuditMessageIT.java b/test/src/test/java/org/apache/accumulo/test/AuditMessageIT.java
index 3ed1f02..e44d8df 100644
--- a/test/src/test/java/org/apache/accumulo/test/AuditMessageIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/AuditMessageIT.java
@@ -72,6 +72,11 @@ public class AuditMessageIT extends ConfigurableMacIT {
   private static final Authorizations auths = new Authorizations("private", "public");
 
   @Override
+  public int defaultTimeoutSeconds() {
+    return 60;
+  }
+
+  @Override
   public void beforeClusterStart(MiniAccumuloConfigImpl cfg) throws Exception {
     new File(cfg.getConfDir(), "auditLog.xml").delete();
   }
@@ -176,7 +181,7 @@ public class AuditMessageIT extends ConfigurableMacIT {
 
   }
 
-  @Test(timeout = 60 * 1000)
+  @Test
   public void testTableOperationsAudits() throws AccumuloException, AccumuloSecurityException, TableExistsException, TableNotFoundException, IOException,
       InterruptedException {
 
@@ -208,7 +213,7 @@ public class AuditMessageIT extends ConfigurableMacIT {
 
   }
 
-  @Test(timeout = 60 * 1000)
+  @Test
   public void testUserOperationsAudits() throws AccumuloSecurityException, AccumuloException, TableExistsException, InterruptedException, IOException {
 
     conn.securityOperations().createLocalUser(AUDIT_USER_1, new PasswordToken(PASSWORD));
@@ -257,7 +262,7 @@ public class AuditMessageIT extends ConfigurableMacIT {
     assertEquals(1, findAuditMessage(auditMessages, "action: dropUser; targetUser: " + AUDIT_USER_2).size());
   }
 
-  @Test(timeout = 60 * 1000)
+  @Test
   public void testImportExportOperationsAudits() throws AccumuloSecurityException, AccumuloException, TableExistsException, TableNotFoundException,
       IOException, InterruptedException {
 
@@ -339,7 +344,7 @@ public class AuditMessageIT extends ConfigurableMacIT {
 
   }
 
-  @Test(timeout = 60 * 1000)
+  @Test
   public void testDataOperationsAudits() throws AccumuloSecurityException, AccumuloException, TableExistsException, TableNotFoundException, IOException,
       InterruptedException {
 
@@ -392,7 +397,7 @@ public class AuditMessageIT extends ConfigurableMacIT {
 
   }
 
-  @Test(timeout = 60 * 1000)
+  @Test
   public void testDeniedAudits() throws AccumuloSecurityException, AccumuloException, TableExistsException, TableNotFoundException, IOException,
       InterruptedException {
 
@@ -459,7 +464,7 @@ public class AuditMessageIT extends ConfigurableMacIT {
             "operation: denied;.*" + String.format(AuditedSecurityOperation.CAN_DELETE_RANGE_AUDIT_TEMPLATE, OLD_TEST_TABLE_NAME, "myRow", "myRow~")).size());
   }
 
-  @Test(timeout = 60 * 1000)
+  @Test
   public void testFailedAudits() throws AccumuloSecurityException, AccumuloException, TableExistsException, TableNotFoundException, IOException,
       InterruptedException {
 

http://git-wip-us.apache.org/repos/asf/accumulo/blob/b0771ef6/test/src/test/java/org/apache/accumulo/test/BatchWriterIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/BatchWriterIT.java b/test/src/test/java/org/apache/accumulo/test/BatchWriterIT.java
index ff45f47..ca72e7a 100644
--- a/test/src/test/java/org/apache/accumulo/test/BatchWriterIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/BatchWriterIT.java
@@ -26,7 +26,12 @@ import org.junit.Test;
 
 public class BatchWriterIT extends SimpleMacIT {
 
-  @Test(timeout = 30 * 1000)
+  @Override
+  public int defaultTimeoutSeconds() {
+    return 30;
+  }
+
+  @Test
   public void test() throws Exception {
     // call the batchwriter with buffer of size zero
     String table = getUniqueNames(1)[0];

http://git-wip-us.apache.org/repos/asf/accumulo/blob/b0771ef6/test/src/test/java/org/apache/accumulo/test/BulkImportVolumeIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/BulkImportVolumeIT.java b/test/src/test/java/org/apache/accumulo/test/BulkImportVolumeIT.java
index 37ba5c7..79a2513 100644
--- a/test/src/test/java/org/apache/accumulo/test/BulkImportVolumeIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/BulkImportVolumeIT.java
@@ -35,7 +35,12 @@ public class BulkImportVolumeIT extends ConfigurableMacIT {
 
   File volDirBase = null;
   Path v1, v2;
-  
+
+  @Override
+  public int defaultTimeoutSeconds() {
+    return 60;
+  }
+
   @Override
   public void configure(MiniAccumuloConfigImpl cfg, Configuration hadoopCoreSite) {
     File baseDir = cfg.getDir();
@@ -54,7 +59,7 @@ public class BulkImportVolumeIT extends ConfigurableMacIT {
     hadoopCoreSite.set("fs.file.impl", RawLocalFileSystem.class.getName());
   }
 
-  @Test(timeout= 60 * 1000) 
+  @Test
   public void testBulkImportFailure() throws Exception {
     String tableName = getUniqueNames(1)[0];
     TableOperations to = getConnector().tableOperations();
@@ -69,6 +74,6 @@ public class BulkImportVolumeIT extends ConfigurableMacIT {
     to.importDirectory(tableName, bulk.toString(), err.toString(), false);
     assertEquals(1, err.list().length);
   }
-  
+
 
 }

http://git-wip-us.apache.org/repos/asf/accumulo/blob/b0771ef6/test/src/test/java/org/apache/accumulo/test/CleanWalIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/CleanWalIT.java b/test/src/test/java/org/apache/accumulo/test/CleanWalIT.java
index a6f836c..d0bfe3f 100644
--- a/test/src/test/java/org/apache/accumulo/test/CleanWalIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/CleanWalIT.java
@@ -41,6 +41,11 @@ import org.junit.Test;
 public class CleanWalIT extends ConfigurableMacIT {
   
   @Override
+  public int defaultTimeoutSeconds() {
+    return 4 * 60;
+  }
+
+  @Override
   public void configure(MiniAccumuloConfigImpl cfg, Configuration hadoopCoreSite) {
     cfg.setProperty(Property.INSTANCE_ZK_TIMEOUT, "3s");
     cfg.setNumTservers(1);
@@ -48,7 +53,7 @@ public class CleanWalIT extends ConfigurableMacIT {
   }
 
   // test for ACCUMULO-1830
-  @Test(timeout= 4 * 60 * 1000)
+  @Test
   public void test() throws Exception {
     Connector conn = getConnector();
     String tableName = getUniqueNames(1)[0];
@@ -67,7 +72,7 @@ public class CleanWalIT extends ConfigurableMacIT {
     assertEquals(1, count(tableName, conn));
     for (String table : new String[]{MetadataTable.NAME, RootTable.NAME})
       assertEquals(0, countLogs(table, conn));
-    
+
     bw = conn.createBatchWriter(tableName, new BatchWriterConfig());
     m = new Mutation("row");
     m.putDelete("cf", "cq");
@@ -89,9 +94,9 @@ public class CleanWalIT extends ConfigurableMacIT {
     scanner.fetchColumnFamily(MetadataSchema.TabletsSection.LogColumnFamily.NAME);
     return FunctionalTestUtils.count(scanner);
   }
-  
+
   int count(String tableName, Connector conn) throws Exception {
     return FunctionalTestUtils.count(conn.createScanner(tableName, Authorizations.EMPTY));
   }
-  
+
 }

http://git-wip-us.apache.org/repos/asf/accumulo/blob/b0771ef6/test/src/test/java/org/apache/accumulo/test/DeleteRowsIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/DeleteRowsIT.java b/test/src/test/java/org/apache/accumulo/test/DeleteRowsIT.java
index c7892ce..ff67e89 100644
--- a/test/src/test/java/org/apache/accumulo/test/DeleteRowsIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/DeleteRowsIT.java
@@ -26,8 +26,13 @@ import org.apache.accumulo.test.functional.SimpleMacIT;
 import org.junit.Test;
 
 public class DeleteRowsIT extends SimpleMacIT {
-  
-  @Test(timeout = 5 * 60 * 1000)
+
+  @Override
+  public int defaultTimeoutSeconds() {
+    return 5 * 60;
+  }
+
+  @Test
   public void test() throws Exception {
     Connector c = getConnector();
     String[] tableNames = this.getUniqueNames(20);

http://git-wip-us.apache.org/repos/asf/accumulo/blob/b0771ef6/test/src/test/java/org/apache/accumulo/test/DumpConfigIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/DumpConfigIT.java b/test/src/test/java/org/apache/accumulo/test/DumpConfigIT.java
index 717e500..f3cee1d 100644
--- a/test/src/test/java/org/apache/accumulo/test/DumpConfigIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/DumpConfigIT.java
@@ -41,11 +41,16 @@ public class DumpConfigIT extends ConfigurableMacIT {
   public TemporaryFolder folder = new TemporaryFolder(new File(System.getProperty("user.dir") + "/target"));
 
   @Override
+  public int defaultTimeoutSeconds() {
+    return 2 * 60;
+  }
+
+  @Override
   public void configure(MiniAccumuloConfigImpl cfg, Configuration hadoopCoreSite) {
     cfg.setSiteConfig(Collections.singletonMap(Property.TABLE_FILE_BLOCK_SIZE.getKey(), "1234567"));
   }
 
-  @Test(timeout = 2 * 60 * 1000)
+  @Test
   public void test() throws Exception {
     File siteFileBackup = new File(folder.getRoot(), "accumulo-site.xml.bak");
     assertFalse(siteFileBackup.exists());

http://git-wip-us.apache.org/repos/asf/accumulo/blob/b0771ef6/test/src/test/java/org/apache/accumulo/test/ExistingMacIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/ExistingMacIT.java b/test/src/test/java/org/apache/accumulo/test/ExistingMacIT.java
index 5d1978e..ec72281 100644
--- a/test/src/test/java/org/apache/accumulo/test/ExistingMacIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/ExistingMacIT.java
@@ -50,6 +50,11 @@ import org.junit.Test;
 
 public class ExistingMacIT extends ConfigurableMacIT {
   @Override
+  public int defaultTimeoutSeconds() {
+    return 2 * 60;
+  }
+
+  @Override
   public void configure(MiniAccumuloConfigImpl cfg, Configuration hadoopCoreSite) {
     cfg.setProperty(Property.INSTANCE_ZK_TIMEOUT, "5s");
 

http://git-wip-us.apache.org/repos/asf/accumulo/blob/b0771ef6/test/src/test/java/org/apache/accumulo/test/MasterRepairsDualAssignmentIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/MasterRepairsDualAssignmentIT.java b/test/src/test/java/org/apache/accumulo/test/MasterRepairsDualAssignmentIT.java
index 6801b7f..8d25f0d 100644
--- a/test/src/test/java/org/apache/accumulo/test/MasterRepairsDualAssignmentIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/MasterRepairsDualAssignmentIT.java
@@ -52,7 +52,11 @@ import org.junit.Test;
 
 public class MasterRepairsDualAssignmentIT extends ConfigurableMacIT {
   
-  
+  @Override
+  public int defaultTimeoutSeconds() {
+    return 5 * 60;
+  }
+
   @Override
   public void configure(MiniAccumuloConfigImpl cfg, Configuration hadoopCoreSite) {
     cfg.setProperty(Property.INSTANCE_ZK_TIMEOUT, "5s");
@@ -61,7 +65,7 @@ public class MasterRepairsDualAssignmentIT extends ConfigurableMacIT {
     hadoopCoreSite.set("fs.file.impl", RawLocalFileSystem.class.getName());
   }
 
-  @Test(timeout = 5 * 60 * 1000)
+  @Test
   public void test() throws Exception {
     // make some tablets, spread 'em around
     Connector c = getConnector();
@@ -107,7 +111,7 @@ public class MasterRepairsDualAssignmentIT extends ConfigurableMacIT {
       System.out.println(states + " size " + states.size() + " allAssigned " + allAssigned);
       if (states.size() != 2 && allAssigned == true)
         break;
-    } 
+    }
     assertEquals(1, states.size());
     // pick an assigned tablet and assign it to the old tablet
     TabletLocationState moved = null;

http://git-wip-us.apache.org/repos/asf/accumulo/blob/b0771ef6/test/src/test/java/org/apache/accumulo/test/MetaConstraintRetryIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/MetaConstraintRetryIT.java b/test/src/test/java/org/apache/accumulo/test/MetaConstraintRetryIT.java
index b5487ff..b3c3640 100644
--- a/test/src/test/java/org/apache/accumulo/test/MetaConstraintRetryIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/MetaConstraintRetryIT.java
@@ -32,8 +32,13 @@ import org.junit.Test;
 
 public class MetaConstraintRetryIT extends SimpleMacIT {
   
+  @Override
+  public int defaultTimeoutSeconds() {
+    return 30;
+  }
+
   //a test for ACCUMULO-3096
-  @Test(timeout = 30 * 1000, expected = ConstraintViolationException.class)
+  @Test(expected = ConstraintViolationException.class)
   public void test() throws Exception {
 
     getConnector().securityOperations().grantTablePermission("root", MetadataTable.NAME, TablePermission.WRITE);

http://git-wip-us.apache.org/repos/asf/accumulo/blob/b0771ef6/test/src/test/java/org/apache/accumulo/test/MetaSplitIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/MetaSplitIT.java b/test/src/test/java/org/apache/accumulo/test/MetaSplitIT.java
index 8a655dd..50a1446 100644
--- a/test/src/test/java/org/apache/accumulo/test/MetaSplitIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/MetaSplitIT.java
@@ -33,7 +33,12 @@ import org.junit.Test;
 
 public class MetaSplitIT extends SimpleMacIT {
 
-  @Test(expected = AccumuloException.class, timeout = 30000)
+  @Override
+  public int defaultTimeoutSeconds() {
+    return 3 * 60;
+  }
+
+  @Test(expected = AccumuloException.class)
   public void testRootTableSplit() throws Exception {
     TableOperations opts = getConnector().tableOperations();
     SortedSet<Text> splits = new TreeSet<Text>();
@@ -55,7 +60,7 @@ public class MetaSplitIT extends SimpleMacIT {
     opts.addSplits(MetadataTable.NAME, splits);
   }
 
-  @Test(timeout = 180000)
+  @Test
   public void testMetadataTableSplit() throws Exception {
     TableOperations opts = getConnector().tableOperations();
     for (int i = 1; i <= 10; i++) {

http://git-wip-us.apache.org/repos/asf/accumulo/blob/b0771ef6/test/src/test/java/org/apache/accumulo/test/MultiTableBatchWriterIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/MultiTableBatchWriterIT.java b/test/src/test/java/org/apache/accumulo/test/MultiTableBatchWriterIT.java
index f1eba61..484c048 100644
--- a/test/src/test/java/org/apache/accumulo/test/MultiTableBatchWriterIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/MultiTableBatchWriterIT.java
@@ -53,6 +53,11 @@ public class MultiTableBatchWriterIT extends SimpleMacIT {
   private Connector connector;
   private MultiTableBatchWriter mtbw;
 
+  @Override
+  public int defaultTimeoutSeconds() {
+    return 5 * 60;
+  }
+
   @Before
   public void setUpArgs() throws AccumuloException, AccumuloSecurityException {
     connector = getConnector();

http://git-wip-us.apache.org/repos/asf/accumulo/blob/b0771ef6/test/src/test/java/org/apache/accumulo/test/NamespacesIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/NamespacesIT.java b/test/src/test/java/org/apache/accumulo/test/NamespacesIT.java
index 10c7264..c1e779e 100644
--- a/test/src/test/java/org/apache/accumulo/test/NamespacesIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/NamespacesIT.java
@@ -84,6 +84,11 @@ public class NamespacesIT extends SimpleMacIT {
   private Connector c;
   private String namespace;
 
+  @Override
+  public int defaultTimeoutSeconds() {
+    return 60;
+  }
+
   @Before
   public void setUpConnectorAndNamespace() throws Exception {
     // prepare a unique namespace and get a new root connector for each test
@@ -868,7 +873,7 @@ public class NamespacesIT extends SimpleMacIT {
     assertFalse(c.securityOperations().hasNamespacePermission(c.whoami(), namespace, NamespacePermission.READ));
     c.securityOperations().grantNamespacePermission(c.whoami(), namespace, NamespacePermission.READ);
     assertTrue(c.securityOperations().hasNamespacePermission(c.whoami(), namespace, NamespacePermission.READ));
-    
+
     c.namespaceOperations().delete(namespace);
 
     try {

http://git-wip-us.apache.org/repos/asf/accumulo/blob/b0771ef6/test/src/test/java/org/apache/accumulo/test/NoMutationRecoveryIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/NoMutationRecoveryIT.java b/test/src/test/java/org/apache/accumulo/test/NoMutationRecoveryIT.java
index ab17740..d666e1e 100644
--- a/test/src/test/java/org/apache/accumulo/test/NoMutationRecoveryIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/NoMutationRecoveryIT.java
@@ -50,19 +50,24 @@ public class NoMutationRecoveryIT extends ConfigurableMacIT {
   static final String TABLE = "table";
   
   @Override
+  public int defaultTimeoutSeconds() {
+    return 2 * 60;
+  }
+
+  @Override
   public void configure(MiniAccumuloConfigImpl cfg, Configuration hadoopCoreSite) {
     cfg.useMiniDFS(true);
     cfg.setNumTservers(1);
   }
-  
+
   public boolean equals(Entry<Key, Value> a, Entry<Key, Value> b) {
     // comparison, without timestamp
     Key akey = a.getKey();
     Key bkey = b.getKey();
-    return akey.compareTo(bkey, PartialKey.ROW_COLFAM_COLQUAL_COLVIS) == 0 && a.getValue().equals(b.getValue()); 
+    return akey.compareTo(bkey, PartialKey.ROW_COLFAM_COLQUAL_COLVIS) == 0 && a.getValue().equals(b.getValue());
   }
-  
-  @Test(timeout = 2 * 60 * 1000)
+
+  @Test
   public void test() throws Exception {
     Connector conn = getConnector();
     conn.tableOperations().create(TABLE);
@@ -104,7 +109,7 @@ public class NoMutationRecoveryIT extends ConfigurableMacIT {
     s.fetchColumnFamily(MetadataSchema.TabletsSection.LogColumnFamily.NAME);
     return s;
   }
-  
+
   private Entry<Key,Value> getLogRef(Connector conn, String table) throws Exception {
     return getLogRefs(conn, table).iterator().next();
   }

http://git-wip-us.apache.org/repos/asf/accumulo/blob/b0771ef6/test/src/test/java/org/apache/accumulo/test/ShellConfigIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/ShellConfigIT.java b/test/src/test/java/org/apache/accumulo/test/ShellConfigIT.java
index b6c7553..bcfa45c 100644
--- a/test/src/test/java/org/apache/accumulo/test/ShellConfigIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/ShellConfigIT.java
@@ -27,11 +27,17 @@ import org.apache.hadoop.conf.Configuration;
 import org.junit.Test;
 
 public class ShellConfigIT extends ConfigurableMacIT {
+  @Override
+  public int defaultTimeoutSeconds() {
+    return 30;
+  }
+
+  @Override
   public void configure(MiniAccumuloConfigImpl cfg, Configuration hadoopCoreSite) {
     cfg.setProperty(Property.CRYPTO_BLOCK_STREAM_SIZE, "7K");
   }
 
-  @Test(timeout = 30000)
+  @Test
   public void experimentalPropTest() throws Exception {
     // ensure experimental props do not show up in config output unless set
 

http://git-wip-us.apache.org/repos/asf/accumulo/blob/b0771ef6/test/src/test/java/org/apache/accumulo/test/ShellServerIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/ShellServerIT.java b/test/src/test/java/org/apache/accumulo/test/ShellServerIT.java
index 7449148..677e634 100644
--- a/test/src/test/java/org/apache/accumulo/test/ShellServerIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/ShellServerIT.java
@@ -266,7 +266,12 @@ public class ShellServerIT extends SimpleMacIT {
     ts.shell.shutdown();
   }
 
-  @Test(timeout = 60000)
+  @Override
+  public int defaultTimeoutSeconds() {
+    return 60;
+  }
+
+  @Test
   public void exporttableImporttable() throws Exception {
     final String table = name.getMethodName(), table2 = table + "2";
 
@@ -310,7 +315,7 @@ public class ShellServerIT extends SimpleMacIT {
     throw new RuntimeException("Unexpected constructors for DistCp");
   }
 
-  @Test(timeout = 45000)
+  @Test
   public void setscaniterDeletescaniter() throws Exception {
     final String table = name.getMethodName();
 
@@ -328,7 +333,7 @@ public class ShellServerIT extends SimpleMacIT {
 
   }
 
-  @Test(timeout = 45000)
+  @Test
   public void execfile() throws Exception {
     // execfile
     File file = File.createTempFile("ShellServerIT.execfile", ".conf", getFolder());
@@ -339,7 +344,7 @@ public class ShellServerIT extends SimpleMacIT {
 
   }
 
-  @Test(timeout = 45000)
+  @Test
   public void egrep() throws Exception {
     final String table = name.getMethodName();
 
@@ -351,7 +356,7 @@ public class ShellServerIT extends SimpleMacIT {
     ts.exec("deletetable -f " + table);
   }
 
-  @Test(timeout = 45000)
+  @Test
   public void du() throws Exception {
     final String table = name.getMethodName();
 
@@ -375,7 +380,7 @@ public class ShellServerIT extends SimpleMacIT {
     ts.exec("deletetable -f " + table);
   }
 
-  @Test(timeout = 1000)
+  @Test
   public void debug() throws Exception {
     ts.exec("debug", true, "off", true);
     ts.exec("debug on", true);
@@ -386,7 +391,7 @@ public class ShellServerIT extends SimpleMacIT {
     ts.exec("debug debug debug", false);
   }
 
-  @Test(timeout = 45000)
+  @Test
   public void user() throws Exception {
     final String table = name.getMethodName();
 
@@ -422,7 +427,7 @@ public class ShellServerIT extends SimpleMacIT {
     ts.exec("users", true, "xyzzy", false);
   }
 
-  @Test(timeout = 45000)
+  @Test
   public void iter() throws Exception {
     final String table = name.getMethodName();
 
@@ -471,7 +476,7 @@ public class ShellServerIT extends SimpleMacIT {
 
   }
 
-  @Test(timeout = 45000)
+  @Test
   public void setIterOptionPrompt() throws Exception {
     Connector conn = getConnector();
     String tableName = name.getMethodName();
@@ -555,7 +560,7 @@ public class ShellServerIT extends SimpleMacIT {
     fail("Failed to find expected property on " + tableName + ": " + expectedKey + "=" + expectedValue);
   }
 
-  @Test(timeout = 45000)
+  @Test
   public void notable() throws Exception {
     final String table = name.getMethodName();
 
@@ -569,7 +574,7 @@ public class ShellServerIT extends SimpleMacIT {
     ts.exec("deletetable -f " + table);
   }
 
-  @Test(timeout = 45000)
+  @Test
   public void sleep() throws Exception {
     // sleep
     long now = System.currentTimeMillis();
@@ -579,7 +584,7 @@ public class ShellServerIT extends SimpleMacIT {
     assertTrue("Diff was actually " + diff, diff < 600);
   }
 
-  @Test(timeout = 45000)
+  @Test
   public void addauths() throws Exception {
     final String table = name.getMethodName();
     // addauths
@@ -633,7 +638,7 @@ public class ShellServerIT extends SimpleMacIT {
     ts.exec("deletetable -f " + table);
   }
 
-  @Test(timeout = 45000)
+  @Test
   public void byeQuitExit() throws Exception {
     // bye, quit, exit
     for (String cmd : "bye quit exit".split(" ")) {
@@ -644,13 +649,13 @@ public class ShellServerIT extends SimpleMacIT {
     }
   }
 
-  @Test(timeout = 45000)
+  @Test
   public void classpath() throws Exception {
     // classpath
     ts.exec("classpath", true, "Level 2: Java Classloader (loads everything defined by java classpath) URL classpath items are", true);
   }
 
-  @Test(timeout = 45000)
+  @Test
   public void clearCls() throws Exception {
     // clear/cls
     if (ts.shell.getReader().getTerminal().isAnsiSupported()) {
@@ -662,7 +667,7 @@ public class ShellServerIT extends SimpleMacIT {
     }
   }
 
-  @Test(timeout = 45000)
+  @Test
   public void clonetable() throws Exception {
     final String table = name.getMethodName(), clone = table + "_clone";
 
@@ -681,7 +686,7 @@ public class ShellServerIT extends SimpleMacIT {
     ts.exec("deletetable -f " + clone);
   }
 
-  @Test(timeout = 45000)
+  @Test
   public void testCompactions() throws Exception {
     final String table = name.getMethodName();
 
@@ -721,7 +726,7 @@ public class ShellServerIT extends SimpleMacIT {
     ts.exec("deletetable -f " + table);
   }
 
-  @Test(timeout = 45000)
+  @Test
   public void constraint() throws Exception {
     final String table = name.getMethodName();
 
@@ -740,7 +745,7 @@ public class ShellServerIT extends SimpleMacIT {
     ts.exec("deletetable -f " + table);
   }
 
-  @Test(timeout = 45000)
+  @Test
   public void deletemany() throws Exception {
     final String table = name.getMethodName();
 
@@ -769,7 +774,7 @@ public class ShellServerIT extends SimpleMacIT {
     ts.exec("deletetable -f " + table);
   }
 
-  @Test(timeout = 45000)
+  @Test
   public void deleterows() throws Exception {
     final String table = name.getMethodName();
 
@@ -801,7 +806,7 @@ public class ShellServerIT extends SimpleMacIT {
     ts.exec("deletetable -f " + table);
   }
 
-  @Test(timeout = 45000)
+  @Test
   public void groups() throws Exception {
     final String table = name.getMethodName();
 
@@ -812,7 +817,7 @@ public class ShellServerIT extends SimpleMacIT {
     ts.exec("deletetable -f " + table);
   }
 
-  @Test(timeout = 45000)
+  @Test
   public void grep() throws Exception {
     final String table = name.getMethodName();
 
@@ -847,7 +852,7 @@ public class ShellServerIT extends SimpleMacIT {
     ts.exec("history", true, "history", true);
   }
 
-  @Test(timeout = 45000)
+  @Test
   public void importDirectory() throws Exception {
     final String table = name.getMethodName();
 
@@ -885,12 +890,12 @@ public class ShellServerIT extends SimpleMacIT {
     ts.exec("deletetable -f " + table);
   }
 
-  @Test(timeout = 45000)
+  @Test
   public void info() throws Exception {
     ts.exec("info", true, Constants.VERSION, true);
   }
 
-  @Test(timeout = 45000)
+  @Test
   public void interpreter() throws Exception {
     final String table = name.getMethodName();
 
@@ -907,7 +912,7 @@ public class ShellServerIT extends SimpleMacIT {
     ts.exec("deletetable -f " + table, true);
   }
 
-  @Test(timeout = 45000)
+  @Test
   public void listcompactions() throws Exception {
     final String table = name.getMethodName();
 
@@ -928,7 +933,7 @@ public class ShellServerIT extends SimpleMacIT {
     ts.exec("deletetable -f " + table, true);
   }
 
-  @Test(timeout = 45000)
+  @Test
   public void maxrow() throws Exception {
     final String table = name.getMethodName();
 
@@ -943,7 +948,7 @@ public class ShellServerIT extends SimpleMacIT {
     ts.exec("deletetable -f " + table, true);
   }
 
-  @Test(timeout = 45000)
+  @Test
   public void merge() throws Exception {
     final String table = name.getMethodName();
 
@@ -962,7 +967,7 @@ public class ShellServerIT extends SimpleMacIT {
     assertEquals(1, ts.output.get().split("\n").length);
   }
 
-  @Test(timeout = 45000)
+  @Test
   public void ping() throws Exception {
     for (int i = 0; i < 10; i++) {
       ts.exec("ping", true, "OK", true);
@@ -975,7 +980,7 @@ public class ShellServerIT extends SimpleMacIT {
     assertEquals(3, ts.output.get().split("\n").length);
   }
 
-  @Test(timeout = 45000)
+  @Test
   public void renametable() throws Exception {
     final String table = name.getMethodName() + "1", rename = name.getMethodName() + "2";
 
@@ -988,7 +993,7 @@ public class ShellServerIT extends SimpleMacIT {
     ts.exec("deletetable -f " + rename, true);
   }
 
-  @Test(timeout = 30000)
+  @Test
   public void tables() throws Exception {
     final String table = name.getMethodName(), table1 = table + "_z", table2 = table + "_a";
     ts.exec("createtable " + table1);
@@ -1000,7 +1005,7 @@ public class ShellServerIT extends SimpleMacIT {
     assertTrue(lst.indexOf(table1) < lst.indexOf(table2));
   }
 
-  @Test(timeout = 45000)
+  @Test
   public void systempermission() throws Exception {
     ts.exec("systempermissions");
     assertEquals(11, ts.output.get().split("\n").length - 1);
@@ -1008,7 +1013,7 @@ public class ShellServerIT extends SimpleMacIT {
     assertEquals(6, ts.output.get().split("\n").length - 1);
   }
 
-  @Test(timeout = 45000)
+  @Test
   public void listscans() throws Exception {
     final String table = name.getMethodName();
 
@@ -1073,7 +1078,7 @@ public class ShellServerIT extends SimpleMacIT {
     ts.exec("deletetable -f " + table, true);
   }
 
-  @Test(timeout = 45000)
+  @Test
   public void testPertableClasspath() throws Exception {
     final String table = name.getMethodName();
 
@@ -1120,7 +1125,7 @@ public class ShellServerIT extends SimpleMacIT {
 
   }
 
-  @Test(timeout = 45000)
+  @Test
   public void trace() throws Exception {
     // Make sure to not collide with the "trace" table
     final String table = name.getMethodName() + "Test";
@@ -1138,14 +1143,14 @@ public class ShellServerIT extends SimpleMacIT {
     assertTrue(trace.contains("DeleteTable"));
   }
 
-  @Test(timeout = 30000)
+  @Test
   public void badLogin() throws Exception {
     ts.input.set(ROOT_PASSWORD + "\n");
     String err = ts.exec("user NoSuchUser", false);
     assertTrue(err.contains("BAD_CREDENTIALS for user NoSuchUser"));
   }
 
-  @Test(timeout = 60 * 1000)
+  @Test
   public void namespaces() throws Exception {
     ts.exec("namespaces", true, "\"\"", true); // default namespace, displayed as quoted empty string
     ts.exec("namespaces", true, Namespaces.ACCUMULO_NAMESPACE, true);
@@ -1221,7 +1226,7 @@ public class ShellServerIT extends SimpleMacIT {
     return ts.output.get().split("\n").length - 1;
   }
 
-  @Test(timeout = 30000)
+  @Test
   public void scans() throws Exception {
     ts.exec("createtable t");
     make10();
@@ -1240,7 +1245,7 @@ public class ShellServerIT extends SimpleMacIT {
     ts.exec("deletetable -f t");
   }
 
-  @Test(timeout = 30000)
+  @Test
   public void whoami() throws Exception {
     assertTrue(ts.exec("whoami", true).contains("root"));
     ts.input.set("secret\nsecret\n");

http://git-wip-us.apache.org/repos/asf/accumulo/blob/b0771ef6/test/src/test/java/org/apache/accumulo/test/SplitRecoveryIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/SplitRecoveryIT.java b/test/src/test/java/org/apache/accumulo/test/SplitRecoveryIT.java
index f290ac1..96d3a1a 100644
--- a/test/src/test/java/org/apache/accumulo/test/SplitRecoveryIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/SplitRecoveryIT.java
@@ -57,7 +57,12 @@ public class SplitRecoveryIT extends SimpleMacIT {
     return FunctionalTestUtils.count(scanner) == 0;
   }
 
-  @Test(timeout = 60000)
+  @Override
+  public int defaultTimeoutSeconds() {
+    return 60;
+  }
+
+  @Test
   public void test() throws Exception {
 
     String tableName = getUniqueNames(1)[0];

http://git-wip-us.apache.org/repos/asf/accumulo/blob/b0771ef6/test/src/test/java/org/apache/accumulo/test/TableConfigurationUpdateIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/TableConfigurationUpdateIT.java b/test/src/test/java/org/apache/accumulo/test/TableConfigurationUpdateIT.java
index 5e2b2c9..0d9a211 100644
--- a/test/src/test/java/org/apache/accumulo/test/TableConfigurationUpdateIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/TableConfigurationUpdateIT.java
@@ -40,6 +40,11 @@ import org.junit.Test;
 public class TableConfigurationUpdateIT extends SimpleMacIT {
   private static final Logger log = Logger.getLogger(TableConfigurationUpdateIT.class);
 
+  @Override
+  public int defaultTimeoutSeconds() {
+    return 60;
+  }
+
   @Test
   public void test() throws Exception {
     Connector conn = getConnector();
@@ -57,7 +62,7 @@ public class TableConfigurationUpdateIT extends SimpleMacIT {
     // Number of iterations per thread
     int iterations = 100000;
     AccumuloConfiguration tableConf = new TableConfiguration(inst.getInstanceID(), inst, table, defaultConf);
-    
+
     long start = System.currentTimeMillis();
     ExecutorService svc = Executors.newFixedThreadPool(numThreads);
     CountDownLatch countDown = new CountDownLatch(numThreads);

http://git-wip-us.apache.org/repos/asf/accumulo/blob/b0771ef6/test/src/test/java/org/apache/accumulo/test/TableOperationsIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/TableOperationsIT.java b/test/src/test/java/org/apache/accumulo/test/TableOperationsIT.java
index 167c07f..bb12279 100644
--- a/test/src/test/java/org/apache/accumulo/test/TableOperationsIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/TableOperationsIT.java
@@ -20,8 +20,6 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
-import java.io.File;
-import java.io.IOException;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
@@ -52,47 +50,46 @@ import org.apache.accumulo.core.data.Value;
 import org.apache.accumulo.core.security.Authorizations;
 import org.apache.accumulo.core.security.TablePermission;
 import org.apache.accumulo.core.tabletserver.thrift.TabletClientService;
-import org.apache.accumulo.minicluster.MiniAccumuloCluster;
+import org.apache.accumulo.test.functional.SimpleMacIT;
 import org.apache.hadoop.io.Text;
 import org.apache.thrift.TException;
-import org.apache.thrift.transport.TTransportException;
-import org.junit.AfterClass;
 import org.junit.Assert;
+import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
-import org.junit.rules.TemporaryFolder;
 
 import com.google.common.collect.Maps;
 import com.google.common.collect.Sets;
 
-public class TableOperationsIT {
+public class TableOperationsIT extends SimpleMacIT {
 
-  static TemporaryFolder tempFolder = new TemporaryFolder(new File(System.getProperty("user.dir") + "/target"));
   static final String ROOT = "root";
-  static final String ROOT_PASS = "password";
 
-  static MiniAccumuloCluster accumuloCluster;
-
-  static Connector connector;
   static TabletClientService.Client client;
   static AtomicInteger tableCounter;
 
-  @BeforeClass
-  public static void startUp() throws IOException, AccumuloException, AccumuloSecurityException, TTransportException, InterruptedException {
-    tableCounter = new AtomicInteger(0);
-    tempFolder.create();
-    accumuloCluster = new MiniAccumuloCluster(tempFolder.getRoot(), ROOT_PASS);
+  String makeTableName() {
+    return "table" + tableCounter.getAndIncrement();
+  }
 
-    accumuloCluster.start();
+  private Connector connector;
 
-    connector = accumuloCluster.getConnector(ROOT, ROOT_PASS);
+  @Override
+  public int defaultTimeoutSeconds() {
+    return 30;
   }
 
-  String makeTableName() {
-    return "table" + tableCounter.getAndIncrement();
+  @BeforeClass
+  public static void setupClass() {
+    tableCounter = new AtomicInteger(0);
   }
 
-  @Test(timeout = 30 * 1000)
+  @Before
+  public void setup() throws Exception {
+    connector = getConnector();
+  }
+
+  @Test
   public void getDiskUsageErrors() throws TableExistsException, AccumuloException, AccumuloSecurityException, TableNotFoundException, TException {
     String tableName = makeTableName();
     connector.tableOperations().create(tableName);
@@ -114,7 +111,7 @@ public class TableOperationsIT {
     } catch (TableNotFoundException e) {}
   }
 
-  @Test(timeout = 30 * 1000)
+  @Test
   public void getDiskUsage() throws TableExistsException, AccumuloException, AccumuloSecurityException, TableNotFoundException, TException {
 
     String tableName = makeTableName();
@@ -172,7 +169,7 @@ public class TableOperationsIT {
     connector.tableOperations().delete(tableName);
   }
 
-  @Test(timeout = 30 * 1000)
+  @Test
   public void createTable() throws TableExistsException, AccumuloException, AccumuloSecurityException, TableNotFoundException {
     String tableName = makeTableName();
     connector.tableOperations().create(tableName);
@@ -182,7 +179,7 @@ public class TableOperationsIT {
     connector.tableOperations().delete(tableName);
   }
 
-  @Test(timeout = 30 * 1000)
+  @Test
   public void createMergeClonedTable() throws Exception {
     String originalTable = makeTableName();
     TableOperations tops = connector.tableOperations();
@@ -245,9 +242,4 @@ public class TableOperationsIT {
     return map;
   }
 
-  @AfterClass
-  public static void shutDown() throws IOException, InterruptedException {
-    accumuloCluster.stop();
-    tempFolder.delete();
-  }
 }

http://git-wip-us.apache.org/repos/asf/accumulo/blob/b0771ef6/test/src/test/java/org/apache/accumulo/test/functional/ConfigurableCompactionIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/ConfigurableCompactionIT.java b/test/src/test/java/org/apache/accumulo/test/functional/ConfigurableCompactionIT.java
index 2b90c81..32c1a3f 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/ConfigurableCompactionIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/ConfigurableCompactionIT.java
@@ -47,6 +47,11 @@ import org.junit.Test;
 public class ConfigurableCompactionIT extends ConfigurableMacIT {
 
   @Override
+  public int defaultTimeoutSeconds() {
+    return 2 * 60;
+  }
+
+  @Override
   public void configure(MiniAccumuloConfigImpl cfg, Configuration hadoopCoreSite) {
     cfg.setSiteConfig(Collections.singletonMap(Property.TSERV_MAJC_DELAY.getKey(), "1s"));
   }
@@ -88,7 +93,7 @@ public class ConfigurableCompactionIT extends ConfigurableMacIT {
     runTest(c, tableName, 5);
   }
 
-  @Test(timeout = 60000)
+  @Test
   public void testPerTableClasspath() throws Exception {
     final Connector c = getConnector();
     final String tableName = getUniqueNames(1)[0];

http://git-wip-us.apache.org/repos/asf/accumulo/blob/b0771ef6/test/src/test/java/org/apache/accumulo/test/functional/CredentialsIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/CredentialsIT.java b/test/src/test/java/org/apache/accumulo/test/functional/CredentialsIT.java
index cfc274a..8e2e1e0 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/CredentialsIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/CredentialsIT.java
@@ -42,23 +42,28 @@ import org.junit.Before;
 import org.junit.Test;
 
 /**
- * 
+ *
  */
 public class CredentialsIT extends SimpleMacIT {
-  
+
   private static final String username = CredentialsIT.class.getSimpleName();
   private static final String password = Base64.encodeBase64String(username.getBytes());
-  
+
+  @Override
+  public int defaultTimeoutSeconds() {
+    return 2 * 60;
+  }
+
   @Before
   public void createLocalUser() throws AccumuloException, AccumuloSecurityException {
     getConnector().securityOperations().createLocalUser(username, new PasswordToken(password));
   }
-  
+
   @After
   public void deleteLocalUser() throws AccumuloException, AccumuloSecurityException {
     getConnector().securityOperations().dropLocalUser(username);
   }
-  
+
   @Test
   public void testConnectorWithDestroyedToken() throws DestroyFailedException, AccumuloException {
     PasswordToken token = new PasswordToken(password);
@@ -72,7 +77,7 @@ public class CredentialsIT extends SimpleMacIT {
       assertTrue(e.getSecurityErrorCode().equals(SecurityErrorCode.TOKEN_EXPIRED));
     }
   }
-  
+
   @Test
   public void testDestroyTokenBeforeRPC() throws AccumuloException, DestroyFailedException, AccumuloSecurityException, TableNotFoundException {
     PasswordToken token = new PasswordToken(password);
@@ -92,5 +97,5 @@ public class CredentialsIT extends SimpleMacIT {
       assertTrue(AccumuloSecurityException.class.cast(e.getCause()).getSecurityErrorCode().equals(SecurityErrorCode.TOKEN_EXPIRED));
     }
   }
-  
+
 }

http://git-wip-us.apache.org/repos/asf/accumulo/blob/b0771ef6/test/src/test/java/org/apache/accumulo/test/functional/GarbageCollectorIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/GarbageCollectorIT.java b/test/src/test/java/org/apache/accumulo/test/functional/GarbageCollectorIT.java
index f04f196..d5b92cf 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/GarbageCollectorIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/GarbageCollectorIT.java
@@ -72,7 +72,12 @@ import org.junit.Test;
 
 public class GarbageCollectorIT extends ConfigurableMacIT {
   private static final String OUR_SECRET = "itsreallysecret";
-  
+
+  @Override
+  public int defaultTimeoutSeconds() {
+    return 5 * 60;
+  }
+
   @Override
   public void configure(MiniAccumuloConfigImpl cfg, Configuration hadoopCoreSite) {
     Map<String,String> settings = new HashMap<String,String>();
@@ -103,7 +108,7 @@ public class GarbageCollectorIT extends ConfigurableMacIT {
     assertNull(getCluster().getProcesses().get(ServerType.GARBAGE_COLLECTOR));
   }
 
-  @Test(timeout = 4 * 60 * 1000)
+  @Test
   public void gcTest() throws Exception {
     killMacGc();
     Connector c = getConnector();
@@ -132,7 +137,7 @@ public class GarbageCollectorIT extends ConfigurableMacIT {
     assertTrue(after < before);
   }
 
-  @Test(timeout = 4 * 60 * 1000)
+  @Test
   public void gcLotsOfCandidatesIT() throws Exception {
     killMacGc();
 
@@ -147,7 +152,7 @@ public class GarbageCollectorIT extends ConfigurableMacIT {
     assertTrue(output.contains("delete candidates has exceeded"));
   }
 
-  @Test(timeout = 20 * 60 * 1000)
+  @Test
   public void dontGCRootLog() throws Exception {
     killMacGc();
     // dirty metadata
@@ -176,7 +181,7 @@ public class GarbageCollectorIT extends ConfigurableMacIT {
     return delFlag;
   }
 
-  @Test(timeout = 60 * 1000)
+  @Test
   public void testInvalidDelete() throws Exception {
     killMacGc();
 
@@ -226,7 +231,7 @@ public class GarbageCollectorIT extends ConfigurableMacIT {
     Assert.assertFalse(iter.hasNext());
   }
 
-  @Test(timeout = 60 * 1000)
+  @Test
   public void testProperPortAdvertisement() throws Exception {
 
     Connector conn = getConnector();

http://git-wip-us.apache.org/repos/asf/accumulo/blob/b0771ef6/test/src/test/java/org/apache/accumulo/test/functional/MetadataIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/MetadataIT.java b/test/src/test/java/org/apache/accumulo/test/functional/MetadataIT.java
index 00fbf7e..bd0282d 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/MetadataIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/MetadataIT.java
@@ -43,11 +43,16 @@ import org.junit.Test;
 
 public class MetadataIT extends SimpleMacIT {
 
-  @Test(timeout = 60 * 1000)
+  @Override
+  public int defaultTimeoutSeconds() {
+    return 2 * 60;
+  }
+
+  @Test
   public void testFlushAndCompact() throws Exception {
     Connector c = getConnector();
     String tableNames[] = getUniqueNames(2);
-    
+
     // create a table to write some data to metadata table
     c.tableOperations().create(tableNames[0]);
 
@@ -75,12 +80,12 @@ public class MetadataIT extends SimpleMacIT {
     Set<String> files3 = new HashSet<String>();
     for (Entry<Key,Value> entry : rootScanner)
       files3.add(entry.getKey().getColumnQualifier().toString());
-    
+
     // compaction of metadata table should change file set in root table
     Assert.assertNotEquals(files2, files3);
   }
 
-  @Test(timeout = 60 * 1000)
+  @Test
   public void mergeMeta() throws Exception {
     Connector c = getConnector();
     SortedSet<Text> splits = new TreeSet<Text>();
@@ -100,7 +105,7 @@ public class MetadataIT extends SimpleMacIT {
     assertEquals(0, c.tableOperations().listSplits(MetadataTable.NAME).size());
   }
 
-  @Test(timeout = 2 * 60 * 1000)
+  @Test
   public void batchScanTest() throws Exception {
     Connector c = getConnector();
     String tableName = getUniqueNames(1)[0];

http://git-wip-us.apache.org/repos/asf/accumulo/blob/b0771ef6/test/src/test/java/org/apache/accumulo/test/functional/RestartIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/RestartIT.java b/test/src/test/java/org/apache/accumulo/test/functional/RestartIT.java
index cb7bddb..e4b9c5a 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/RestartIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/RestartIT.java
@@ -43,6 +43,11 @@ import org.junit.Test;
 
 public class RestartIT extends ConfigurableMacIT {
   @Override
+  public int defaultTimeoutSeconds() {
+    return 10 * 60;
+  }
+
+  @Override
   public void configure(MiniAccumuloConfigImpl cfg, Configuration hadoopCoreSite) {
     Map<String,String> props = new HashMap<String,String>();
     props.put(Property.INSTANCE_ZK_TIMEOUT.getKey(), "5s");
@@ -60,7 +65,7 @@ public class RestartIT extends ConfigurableMacIT {
     OPTS.rows = VOPTS.rows = 10 * 1000;
   }
 
-  @Test(timeout = 2 * 60 * 1000)
+  @Test
   public void restartMaster() throws Exception {
     Connector c = getConnector();
     c.tableOperations().create("test_ingest");
@@ -75,7 +80,7 @@ public class RestartIT extends ConfigurableMacIT {
     ingest.destroy();
   }
 
-  @Test(timeout = 8 * 60 * 1000)
+  @Test
   public void restartMasterRecovery() throws Exception {
     Connector c = getConnector();
     c.tableOperations().create("test_ingest");
@@ -94,7 +99,7 @@ public class RestartIT extends ConfigurableMacIT {
     VerifyIngest.verifyIngest(c, VOPTS, SOPTS);
   }
 
-  @Test(timeout = 4 * 60 * 1000)
+  @Test
   public void restartMasterSplit() throws Exception {
     Connector c = getConnector();
     c.tableOperations().create("test_ingest");
@@ -110,7 +115,7 @@ public class RestartIT extends ConfigurableMacIT {
     ingest.destroy();
   }
 
-  @Test(timeout = 10 * 60 * 1000)
+  @Test
   public void killedTabletServer() throws Exception {
     Connector c = getConnector();
     c.tableOperations().create("test_ingest");
@@ -124,7 +129,7 @@ public class RestartIT extends ConfigurableMacIT {
     VerifyIngest.verifyIngest(c, VOPTS, SOPTS);
   }
 
-  @Test(timeout = 2 * 60 * 1000)
+  @Test
   public void killedTabletServer2() throws Exception {
     Connector c = getConnector();
     c.tableOperations().create("t");
@@ -139,7 +144,7 @@ public class RestartIT extends ConfigurableMacIT {
     c.tableOperations().create("tt");
   }
 
-  @Test(timeout = 4 * 60 * 1000)
+  @Test
   public void killedTabletServerDuringShutdown() throws Exception {
     Connector c = getConnector();
     c.tableOperations().create("test_ingest");
@@ -149,7 +154,7 @@ public class RestartIT extends ConfigurableMacIT {
     assertEquals(0, cluster.exec(Admin.class, "stopAll").waitFor());
   }
 
-  @Test(timeout = 8 * 60 * 1000)
+  @Test
   public void shutdownDuringCompactingSplitting() throws Exception {
     Connector c = getConnector();
     c.tableOperations().create("test_ingest");

http://git-wip-us.apache.org/repos/asf/accumulo/blob/b0771ef6/test/src/test/java/org/apache/accumulo/test/functional/SslIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/SslIT.java b/test/src/test/java/org/apache/accumulo/test/functional/SslIT.java
index 7d5e565..a14795c 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/SslIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/SslIT.java
@@ -29,33 +29,38 @@ import org.junit.Test;
  */
 public class SslIT extends ConfigurableMacIT {
   @Override
+  public int defaultTimeoutSeconds() {
+    return 6 * 60;
+  }
+
+  @Override
   public void configure(MiniAccumuloConfigImpl cfg, Configuration hadoopCoreSite) {
     super.configure(cfg, hadoopCoreSite);
     configureForSsl(cfg, createSharedTestDir(this.getClass().getName() + "-ssl"));
   }
 
-  @Test(timeout = 4 * 60 * 1000)
+  @Test
   public void binary() throws AccumuloException, AccumuloSecurityException, Exception {
     getConnector().tableOperations().create("bt");
     BinaryIT.runTest(getConnector());
   }
 
-  @Test(timeout = 4 * 60 * 1000)
+  @Test
   public void concurrency() throws Exception {
     ConcurrencyIT.runTest(getConnector());
   }
 
-  @Test(timeout = 4 * 60 * 1000)
+  @Test
   public void adminStop() throws Exception {
     ShutdownIT.runAdminStopTest(getConnector(), getCluster());
   }
 
-  @Test(timeout = 6 * 60 * 1000)
+  @Test
   public void bulk() throws Exception {
     BulkIT.runTest(getConnector(), getUniqueNames(1)[0], this.getClass().getName(), testName.getMethodName());
   }
 
-  @Test(timeout = 2 * 60 * 1000)
+  @Test
   public void mapReduce() throws Exception {
     MapReduceIT.runTest(getConnector(), getCluster());
   }

http://git-wip-us.apache.org/repos/asf/accumulo/blob/b0771ef6/test/src/test/java/org/apache/accumulo/test/functional/SslWithClientAuthIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/functional/SslWithClientAuthIT.java b/test/src/test/java/org/apache/accumulo/test/functional/SslWithClientAuthIT.java
index 8745707..bb00b19 100644
--- a/test/src/test/java/org/apache/accumulo/test/functional/SslWithClientAuthIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/functional/SslWithClientAuthIT.java
@@ -41,7 +41,7 @@ public class SslWithClientAuthIT extends SslIT {
   }
 
   @Override
-  protected int defaultTimeoutSeconds() {
+  public int defaultTimeoutSeconds() {
     return 8 * 60;
   }