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/01/23 19:05:47 UTC

[07/15] git commit: ACCUMULO-2235 Fix up formatter for madrob and make the du test a little less sensitive to other tests

ACCUMULO-2235 Fix up formatter for madrob and make the du test a little less sensitive to other tests


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

Branch: refs/heads/1.6.0-SNAPSHOT
Commit: 00bd820ef9ff016305241504eb83e3c6e90dd873
Parents: 956c32f
Author: Josh Elser <el...@apache.org>
Authored: Thu Jan 23 12:20:46 2014 -0500
Committer: Josh Elser <el...@apache.org>
Committed: Thu Jan 23 12:20:46 2014 -0500

----------------------------------------------------------------------
 .../core/util/shell/commands/DUCommand.java     |  26 ++--
 .../apache/accumulo/test/ShellServerTest.java   | 156 ++++++++++---------
 2 files changed, 93 insertions(+), 89 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/accumulo/blob/00bd820e/core/src/main/java/org/apache/accumulo/core/util/shell/commands/DUCommand.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/accumulo/core/util/shell/commands/DUCommand.java b/core/src/main/java/org/apache/accumulo/core/util/shell/commands/DUCommand.java
index b03f516..ca80e37 100644
--- a/core/src/main/java/org/apache/accumulo/core/util/shell/commands/DUCommand.java
+++ b/core/src/main/java/org/apache/accumulo/core/util/shell/commands/DUCommand.java
@@ -35,11 +35,11 @@ import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.FileSystem;
 
 public class DUCommand extends Command {
-  
+
   private Option optTablePattern, optHumanReadble;
-  
+
   public int execute(final String fullCommand, final CommandLine cl, final Shell shellState) throws IOException, TableNotFoundException {
-    
+
     final SortedSet<String> tablesToFlush = new TreeSet<String>(Arrays.asList(cl.getArgs()));
 
     boolean prettyPrint = cl.hasOption(optHumanReadble.getOpt()) ? true : false;
@@ -52,12 +52,12 @@ public class DUCommand extends Command {
         }
       }
     }
-    
+
     // If we didn't get any tables, and we have a table selected, add the current table
     if (tablesToFlush.isEmpty() && !shellState.getTableName().isEmpty()) {
       tablesToFlush.add(shellState.getTableName());
     }
-    
+
     try {
       final AccumuloConfiguration acuConf = new ConfigurationCopy(shellState.getConnector().instanceOperations().getSystemConfiguration());
       TableDiskUsage.printDiskUsage(acuConf, tablesToFlush, FileSystem.get(new Configuration()), shellState.getConnector(), new Printer() {
@@ -69,40 +69,40 @@ public class DUCommand extends Command {
             throw new RuntimeException(ex);
           }
         }
-        
+
       }, prettyPrint);
     } catch (Exception ex) {
       throw new RuntimeException(ex);
     }
     return 0;
   }
-  
+
   @Override
   public String description() {
     return "prints how much space, in bytes, is used by files referenced by a table.  When multiple tables are specified it prints how much space, in bytes, is used by files shared between tables, if any.";
   }
-  
+
   @Override
   public Options getOptions() {
     final Options o = new Options();
-    
+
     optTablePattern = new Option("p", "pattern", true, "regex pattern of table names");
     optTablePattern.setArgName("pattern");
-    
+
     optHumanReadble = new Option("h", "human-readable", false, "format large sizes to human readable units");
     optHumanReadble.setArgName("human readable output");
 
     o.addOption(optTablePattern);
     o.addOption(optHumanReadble);
-    
+
     return o;
   }
-  
+
   @Override
   public String usage() {
     return getName() + " <table>{ <table>}";
   }
-  
+
   @Override
   public int numArgs() {
     return Shell.NO_FIXED_ARG_LENGTH_CHECK;

http://git-wip-us.apache.org/repos/asf/accumulo/blob/00bd820e/test/src/test/java/org/apache/accumulo/test/ShellServerTest.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/ShellServerTest.java b/test/src/test/java/org/apache/accumulo/test/ShellServerTest.java
index bc73c9f..80e56d9 100644
--- a/test/src/test/java/org/apache/accumulo/test/ShellServerTest.java
+++ b/test/src/test/java/org/apache/accumulo/test/ShellServerTest.java
@@ -64,34 +64,34 @@ import org.junit.rules.TemporaryFolder;
 public class ShellServerTest {
   public static class TestOutputStream extends OutputStream {
     StringBuilder sb = new StringBuilder();
-    
+
     @Override
     public void write(int b) throws IOException {
       sb.append((char) (0xff & b));
     }
-    
+
     public String get() {
       return sb.toString();
     }
-    
+
     public void clear() {
       sb.setLength(0);
     }
   }
-  
+
   private static String secret = "superSecret";
   public static TemporaryFolder folder = new TemporaryFolder();
   public static MiniAccumuloCluster cluster;
   public static TestOutputStream output;
   public static Shell shell;
   private static Process traceProcess;
-  
+
   static String exec(String cmd) throws IOException {
     output.clear();
     shell.execCommand(cmd, true, true);
     return output.get();
   }
-  
+
   static String exec(String cmd, boolean expectGoodExit) throws IOException {
     String result = exec(cmd);
     if (expectGoodExit)
@@ -100,11 +100,11 @@ public class ShellServerTest {
       assertBadExit("", true);
     return result;
   }
-  
+
   static String exec(String cmd, boolean expectGoodExit, String expectString) throws IOException {
     return exec(cmd, expectGoodExit, expectString, true);
   }
-  
+
   static String exec(String cmd, boolean expectGoodExit, String expectString, boolean stringPresent) throws IOException {
     String result = exec(cmd);
     if (expectGoodExit)
@@ -113,15 +113,15 @@ public class ShellServerTest {
       assertBadExit(expectString, stringPresent);
     return result;
   }
-  
+
   static void assertGoodExit(String s, boolean stringPresent) {
     Shell.log.debug(output.get());
     assertEquals(0, shell.getExitCode());
-    
+
     if (s.length() > 0)
       assertEquals(s + " present in " + output.get() + " was not " + stringPresent, stringPresent, output.get().contains(s));
   }
-  
+
   static void assertBadExit(String s, boolean stringPresent) {
     Shell.log.debug(output.get());
     assertTrue(shell.getExitCode() > 0);
@@ -129,16 +129,16 @@ public class ShellServerTest {
       assertEquals(s + " present in " + output.get() + " was not " + stringPresent, stringPresent, output.get().contains(s));
     shell.resetExitCode();
   }
-  
+
   @BeforeClass
   public static void setUpBeforeClass() throws Exception {
     folder.create();
     MiniAccumuloConfig cfg = new MiniAccumuloConfig(folder.newFolder("miniAccumulo"), secret);
     cluster = new MiniAccumuloCluster(cfg);
     cluster.start();
-    
+
     System.setProperty("HOME", folder.getRoot().getAbsolutePath());
-    
+
     // start the shell
     output = new TestOutputStream();
     shell = new Shell(new ConsoleReader(new FileInputStream(FileDescriptor.in), new OutputStreamWriter(output)));
@@ -147,23 +147,23 @@ public class ShellServerTest {
     exec("quit", true);
     shell.start();
     shell.setExit(false);
-    
+
     // use reflection to call this method so it does not need to be made public
     Method method = cluster.getClass().getDeclaredMethod("exec", Class.class, String[].class);
     method.setAccessible(true);
     traceProcess = (Process) method.invoke(cluster, TraceServer.class, new String[0]);
-    
+
     // give the tracer some time to start
     UtilWaitThread.sleep(1000);
   }
-  
+
   @AfterClass
   public static void tearDownAfterClass() throws Exception {
     cluster.stop();
     traceProcess.destroy();
     folder.delete();
   }
-  
+
   @Test(timeout = 30000)
   public void exporttableImporttable() throws Exception {
     // exporttable / importtable
@@ -185,7 +185,7 @@ public class ShellServerTest {
     exec("deletetable -f t", true);
     exec("deletetable -f t2", true);
   }
-  
+
   private DistCp newDistCp() {
     try {
       @SuppressWarnings("unchecked")
@@ -205,7 +205,7 @@ public class ShellServerTest {
     }
     throw new RuntimeException("Unexpected constructors for DistCp");
   }
-  
+
   @Test(timeout = 30000)
   public void setscaniterDeletescaniter() throws Exception {
     // setscaniter, deletescaniter
@@ -219,9 +219,9 @@ public class ShellServerTest {
     exec("deletescaniter -n name", true);
     exec("scan", true, "1", true);
     exec("deletetable -f t");
-    
+
   }
-  
+
   @Test(timeout = 30000)
   public void execfile() throws Exception {
     // execfile
@@ -230,9 +230,9 @@ public class ShellServerTest {
     writer.println("about");
     writer.close();
     exec("execfile " + file.getAbsolutePath(), true, Constants.VERSION, true);
-    
+
   }
-  
+
   @Test(timeout = 30000)
   public void egrep() throws Exception {
     // egrep
@@ -242,13 +242,17 @@ public class ShellServerTest {
     assertTrue(lines.split("\n").length - 1 == 3);
     exec("deletetable -f t");
   }
-  
+
   @Test(timeout = 30000)
   public void du() throws Exception {
+    // create and delete a table so we get out of a table context in the shell
+    exec("createtable du_test_table", true);
+    exec("deletetable -f du_test_table", true);
+
     // Calling du not in a table context shouldn't throw an error
     output.clear();
     exec("du", true, "", true);
-    
+
     output.clear();
     exec("createtable t");
     make10();
@@ -258,10 +262,10 @@ public class ShellServerTest {
     shell.execCommand("du -h", false, false);
     String o = output.get();
     // for some reason, there's a bit of fluctuation
-    assertTrue("Output did not match regex: '" + o + "'", o.matches(".*2[6-7][0-9]B\\s\\[t\\]\\n")); 
+    assertTrue("Output did not match regex: '" + o + "'", o.matches(".*2[6-7][0-9]B\\s\\[t\\]\\n"));
     exec("deletetable -f t");
   }
-  
+
   @Test(timeout = 1000)
   public void debug() throws Exception {
     exec("debug", true, "off", true);
@@ -272,7 +276,7 @@ public class ShellServerTest {
     exec("debug debug", false);
     exec("debug debug debug", false);
   }
-  
+
   @Test(timeout = 30000)
   public void user() throws Exception {
     // createuser, deleteuser, user, users, droptable, grant, revoke
@@ -306,7 +310,7 @@ public class ShellServerTest {
     exec("deleteuser xyzzy", true);
     exec("users", true, "xyzzy", false);
   }
-  
+
   @Test(timeout = 30000)
   public void iter() throws Exception {
     // setshelliter, listshelliter, deleteshelliter
@@ -347,9 +351,9 @@ public class ShellServerTest {
     exec("listiter -scan", true, "Iterator name", false);
     exec("listiter -scan", true, "Iterator xyzzy", true);
     exec("deletetable -f t");
-    
+
   }
-  
+
   @Test(timeout = 30000)
   public void notable() throws Exception {
     // notable
@@ -361,7 +365,7 @@ public class ShellServerTest {
     assertFalse(output.get().contains(" xyzzy>"));
     exec("deletetable -f xyzzy");
   }
-  
+
   @Test(timeout = 30000)
   public void sleep() throws Exception {
     // sleep
@@ -371,7 +375,7 @@ public class ShellServerTest {
     assertTrue(diff >= 200);
     assertTrue(diff < 400);
   }
-  
+
   @Test(timeout = 30000)
   public void addauths() throws Exception {
     // addauths
@@ -385,7 +389,7 @@ public class ShellServerTest {
     exec("scan -s bar", true, "[foo]", false);
     exec("deletetable -f xyzzy");
   }
-  
+
   @Test(timeout = 30000)
   public void byeQuitExit() throws Exception {
     // bye, quit, exit
@@ -396,20 +400,20 @@ public class ShellServerTest {
       shell.setExit(false);
     }
   }
-  
+
   @Test(timeout = 30000)
   public void classpath() throws Exception {
     // classpath
     exec("classpath", true, "Level 2: Java Classloader (loads everything defined by java classpath) URL classpath items are", true);
   }
-  
+
   @Test(timeout = 30000)
   public void clearCls() throws Exception {
     // clear/cls
     exec("cls", true, "[1;1H");
     exec("clear", true, "[2J");
   }
-  
+
   @Test(timeout = 30000)
   public void clonetable() throws Exception {
     // clonetable
@@ -454,7 +458,7 @@ public class ShellServerTest {
     exec("deletetable -f clone");
     exec("deletetable -f c");
   }
-  
+
   @Test(timeout = 30000)
   public void constraint() throws Exception {
     // constraint
@@ -467,7 +471,7 @@ public class ShellServerTest {
     exec("constraint -l -t c", true, "VisibilityConstraint=1", false);
     exec("deletetable -f c");
   }
-  
+
   @Test(timeout = 30000)
   public void deletemany() throws Exception {
     // deletemany
@@ -494,7 +498,7 @@ public class ShellServerTest {
     assertEquals(9, countkeys("t"));
     exec("deletetable -f t");
   }
-  
+
   @Test(timeout = 30000)
   public void deleterows() throws Exception {
     // deleterows
@@ -508,7 +512,7 @@ public class ShellServerTest {
     assertTrue(base + 2 == countFiles());
     exec("deletetable -f t");
   }
-  
+
   @Test(timeout = 30000)
   public void groups() throws Exception {
     exec("createtable t");
@@ -517,7 +521,7 @@ public class ShellServerTest {
     exec("getgroups -t t", true, "num=1,2,3", true);
     exec("deletetable -f t");
   }
-  
+
   @Test(timeout = 30000)
   public void grep() throws Exception {
     exec("createtable t", true);
@@ -526,7 +530,7 @@ public class ShellServerTest {
     exec("grep row5", true, "row5", true);
     exec("deletetable -f t", true);
   }
-  
+
   @Test(timeout = 30000)
   public void help() throws Exception {
     exec("help -np", true, "Help Commands", true);
@@ -540,7 +544,7 @@ public class ShellServerTest {
       exec("help " + c, true);
     }
   }
-  
+
   // @Test(timeout = 30000)
   public void history() throws Exception {
     exec("history -c", true);
@@ -549,7 +553,7 @@ public class ShellServerTest {
     exec("history", true, "unusualstring", true);
     exec("history", true, "history", true);
   }
-  
+
   @Test(timeout = 30000)
   public void importDirectory() throws Exception {
     Configuration conf = new Configuration();
@@ -582,12 +586,12 @@ public class ShellServerTest {
     exec("scan -r 00000099", true, "00000099", true);
     exec("deletetable -f t");
   }
-  
+
   @Test(timeout = 30000)
   public void info() throws Exception {
     exec("info", true, Constants.VERSION, true);
   }
-  
+
   @Test(timeout = 30000)
   public void interpreter() throws Exception {
     exec("createtable t", true);
@@ -599,7 +603,7 @@ public class ShellServerTest {
     exec("scan -b 02", true, "value", true);
     exec("deletetable -f t", true);
   }
-  
+
   @Test(timeout = 30000)
   public void listcompactions() throws Exception {
     exec("createtable t", true);
@@ -618,7 +622,7 @@ public class ShellServerTest {
     assertEquals(12, parts.length);
     exec("deletetable -f t", true);
   }
-  
+
   @Test(timeout = 30000)
   public void maxrow() throws Exception {
     exec("createtable t", true);
@@ -631,7 +635,7 @@ public class ShellServerTest {
     exec("maxrow", true, "ccc", true);
     exec("deletetable -f t", true);
   }
-  
+
   @Test(timeout = 30000)
   public void merge() throws Exception {
     exec("createtable t");
@@ -646,7 +650,7 @@ public class ShellServerTest {
     exec("getsplits -t !METADATA", true);
     assertEquals(2, output.get().split("\n").length);
   }
-  
+
   @Test(timeout = 30000)
   public void ping() throws Exception {
     for (int i = 0; i < 10; i++) {
@@ -655,11 +659,11 @@ public class ShellServerTest {
       if (output.get().split("\n").length == 3)
         break;
       UtilWaitThread.sleep(1000);
-      
+
     }
     assertEquals(3, output.get().split("\n").length);
   }
-  
+
   @Test(timeout = 30000)
   public void renametable() throws Exception {
     exec("createtable aaaa");
@@ -670,7 +674,7 @@ public class ShellServerTest {
     exec("scan -t xyzzy", true, "value", true);
     exec("deletetable -f xyzzy", true);
   }
-  
+
   @Test(timeout = 30000)
   public void systempermission() throws Exception {
     exec("systempermissions");
@@ -678,7 +682,7 @@ public class ShellServerTest {
     exec("tablepermissions", true);
     assertEquals(6, output.get().split("\n").length - 1);
   }
-  
+
   @Test(timeout = 30000)
   public void listscans() throws Exception {
     exec("createtable t", true);
@@ -713,52 +717,52 @@ public class ShellServerTest {
     thread.join();
     exec("deletetable -f t", true);
   }
-  
+
   @Test(timeout = 30000)
   public void testPertableClasspath() throws Exception {
     File fooFilterJar = File.createTempFile("FooFilter", ".jar");
     FileUtils.copyURLToFile(this.getClass().getResource("/FooFilter.jar"), fooFilterJar);
     fooFilterJar.deleteOnExit();
-    
+
     File fooConstraintJar = File.createTempFile("FooConstraint", ".jar");
     FileUtils.copyURLToFile(this.getClass().getResource("/FooConstraint.jar"), fooConstraintJar);
     fooConstraintJar.deleteOnExit();
-    
+
     exec(
         "config -s " + Property.VFS_CONTEXT_CLASSPATH_PROPERTY.getKey() + "cx1=" + fooFilterJar.toURI().toString() + "," + fooConstraintJar.toURI().toString(),
         true);
-    
+
     exec("createtable ptc", true);
     exec("config -t ptc -s " + Property.TABLE_CLASSPATH.getKey() + "=cx1", true);
-    
+
     UtilWaitThread.sleep(200);
-    
-    // We can't use the setiter command as Filter implements OptionDescriber which 
+
+    // We can't use the setiter command as Filter implements OptionDescriber which
     // forces us to enter more input that I don't know how to input
     // Instead, we can just manually set the property on the table.
     exec("config -t ptc -s " + Property.TABLE_ITERATOR_PREFIX.getKey() + "scan.foo=10,org.apache.accumulo.test.FooFilter");
-    
+
     exec("insert foo f q v", true);
-    
+
     UtilWaitThread.sleep(100);
-    
+
     exec("scan -np", true, "foo", false);
-    
+
     exec("constraint -a FooConstraint", true);
-    
+
     exec("offline ptc");
     UtilWaitThread.sleep(500);
     exec("online ptc");
-    
+
     exec("table ptc", true);
     exec("insert foo f q v", false);
     exec("insert ok foo q v", true);
-    
+
     exec("deletetable -f ptc", true);
     exec("config -d " + Property.VFS_CONTEXT_CLASSPATH_PROPERTY.getKey() + "cx1");
-    
+
   }
-  
+
   @Test(timeout = 30000)
   public void trace() throws Exception {
     exec("trace on", true);
@@ -772,21 +776,21 @@ public class ShellServerTest {
     assertTrue(trace.contains("update"));
     assertTrue(trace.contains("DeleteTable"));
   }
-  
+
   private int countkeys(String table) throws IOException {
     exec("scan -np -t " + table);
     return output.get().split("\n").length - 1;
   }
-  
+
   private void make10() throws IOException {
     for (int i = 0; i < 10; i++) {
       exec(String.format("insert row%d cf col%d value", i, i));
     }
   }
-  
+
   private int countFiles() throws IOException {
     exec("scan -t !METADATA -np -c file");
     return output.get().split("\n").length - 1;
   }
-  
+
 }