You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by st...@apache.org on 2013/04/26 00:48:51 UTC

svn commit: r1475995 - in /hbase/branches/0.95: hbase-it/src/test/java/org/apache/hadoop/hbase/IntegrationTestsDriver.java hbase-server/src/main/java/org/apache/hadoop/hbase/util/AbstractHBaseTool.java src/main/docbkx/developer.xml

Author: stack
Date: Thu Apr 25 22:48:50 2013
New Revision: 1475995

URL: http://svn.apache.org/r1475995
Log:
HBASE-8428 Tighten up IntegrationTestsDriver filter

Modified:
    hbase/branches/0.95/hbase-it/src/test/java/org/apache/hadoop/hbase/IntegrationTestsDriver.java
    hbase/branches/0.95/hbase-server/src/main/java/org/apache/hadoop/hbase/util/AbstractHBaseTool.java
    hbase/branches/0.95/src/main/docbkx/developer.xml

Modified: hbase/branches/0.95/hbase-it/src/test/java/org/apache/hadoop/hbase/IntegrationTestsDriver.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.95/hbase-it/src/test/java/org/apache/hadoop/hbase/IntegrationTestsDriver.java?rev=1475995&r1=1475994&r2=1475995&view=diff
==============================================================================
--- hbase/branches/0.95/hbase-it/src/test/java/org/apache/hadoop/hbase/IntegrationTestsDriver.java (original)
+++ hbase/branches/0.95/hbase-it/src/test/java/org/apache/hadoop/hbase/IntegrationTestsDriver.java Thu Apr 25 22:48:50 2013
@@ -39,7 +39,8 @@ import org.apache.commons.logging.LogFac
  * already deployed distributed cluster.
  */
 public class IntegrationTestsDriver extends AbstractHBaseTool {
-  private static final String TESTS_ARG = "test";
+  private static final String SHORT_REGEX_ARG = "r";
+  private static final String LONG_REGEX_ARG = "regex";
   private static final Log LOG = LogFactory.getLog(IntegrationTestsDriver.class);
   private IntegrationTestFilter intTestFilter = new IntegrationTestFilter();
 
@@ -49,7 +50,7 @@ public class IntegrationTestsDriver exte
   }
 
   private class IntegrationTestFilter extends ClassTestFinder.TestClassFilter {
-    private Pattern testFilterRe = Pattern.compile(".*");
+    private Pattern testFilterRe = Pattern.compile(".*\\.IntegrationTest.*");
     public IntegrationTestFilter() {
       super(IntegrationTests.class);
     }
@@ -60,18 +61,25 @@ public class IntegrationTestsDriver exte
 
     @Override
     public boolean isCandidateClass(Class<?> c) {
-      return super.isCandidateClass(c) && testFilterRe.matcher(c.getName()).find();
+      return testFilterRe.matcher(c.getName()).find() &&
+        // Our pattern will match the below NON-IntegrationTest. Rather than
+        // do exotic regex, just filter it out here
+        !c.getName().contains("IntegrationTestingUtility") &&
+        super.isCandidateClass(c);
     }
   }
 
   @Override
   protected void addOptions() {
-    addOptWithArg(TESTS_ARG, "a Java regular expression to filter tests on");
+    addOptWithArg(SHORT_REGEX_ARG, LONG_REGEX_ARG,
+      "Java regex to use selecting tests to run: e.g. .*TestBig.*" +
+      " will select all tests that include TestBig in their name.  Default: " +
+      ".*IntegrationTest.*");
   }
 
   @Override
   protected void processOptions(CommandLine cmd) {
-    String testFilterString = cmd.getOptionValue(TESTS_ARG, null);
+    String testFilterString = cmd.getOptionValue(SHORT_REGEX_ARG, null);
     if (testFilterString != null) {
       intTestFilter.setPattern(testFilterString);
     }
@@ -95,8 +103,10 @@ public class IntegrationTestsDriver exte
     //this is called from the command line, so we should set to use the distributed cluster
     IntegrationTestingUtility.setUseDistributedCluster(conf);
     Class<?>[] classes = findIntegrationTestClasses();
-    LOG.info("Found " + classes.length + " integration tests to run");
-
+    LOG.info("Found " + classes.length + " integration tests to run:");
+    for (int i = 0; i < classes.length; i++) {
+      LOG.info("  " + classes[i]);
+    }
     JUnitCore junit = new JUnitCore();
     junit.addListener(new TextListener(System.out));
     Result result = junit.run(classes);
@@ -104,4 +114,4 @@ public class IntegrationTestsDriver exte
     return result.wasSuccessful() ? 0 : 1;
   }
 
-}
\ No newline at end of file
+}

Modified: hbase/branches/0.95/hbase-server/src/main/java/org/apache/hadoop/hbase/util/AbstractHBaseTool.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.95/hbase-server/src/main/java/org/apache/hadoop/hbase/util/AbstractHBaseTool.java?rev=1475995&r1=1475994&r2=1475995&view=diff
==============================================================================
--- hbase/branches/0.95/hbase-server/src/main/java/org/apache/hadoop/hbase/util/AbstractHBaseTool.java (original)
+++ hbase/branches/0.95/hbase-server/src/main/java/org/apache/hadoop/hbase/util/AbstractHBaseTool.java Thu Apr 25 22:48:50 2013
@@ -43,7 +43,8 @@ public abstract class AbstractHBaseTool 
   private static final int EXIT_SUCCESS = 0;
   private static final int EXIT_FAILURE = 1;
 
-  private static final String HELP_OPTION = "help";
+  private static final String SHORT_HELP_OPTION = "h";
+  private static final String LONG_HELP_OPTION = "help";
 
   private static final Log LOG = LogFactory.getLog(AbstractHBaseTool.class);
 
@@ -94,7 +95,8 @@ public abstract class AbstractHBaseTool 
       return EXIT_FAILURE;
     }
 
-    if (cmd.hasOption(HELP_OPTION) || !sanityCheckOptions(cmd)) {
+    if (cmd.hasOption(SHORT_HELP_OPTION) || cmd.hasOption(LONG_HELP_OPTION) ||
+        !sanityCheckOptions(cmd)) {
       printUsage();
       return EXIT_FAILURE;
     }
@@ -123,7 +125,7 @@ public abstract class AbstractHBaseTool 
   }
 
   private CommandLine parseArgs(String[] args) throws ParseException {
-    options.addOption(HELP_OPTION, false, "Show usage");
+    options.addOption(SHORT_HELP_OPTION, LONG_HELP_OPTION, false, "Show usage");
     addOptions();
     CommandLineParser parser = new BasicParser();
     return parser.parse(options, args);
@@ -149,10 +151,18 @@ public abstract class AbstractHBaseTool 
     options.addOption(opt, false, description);
   }
 
+  protected void addOptNoArg(String shortOpt, String longOpt, String description) {
+    options.addOption(shortOpt, longOpt, false, description);
+  }
+
   protected void addOptWithArg(String opt, String description) {
     options.addOption(opt, true, description);
   }
 
+  protected void addOptWithArg(String shortOpt, String longOpt, String description) {
+    options.addOption(shortOpt, longOpt, true, description);
+  }
+
   /**
    * Parse a number and enforce a range.
    */

Modified: hbase/branches/0.95/src/main/docbkx/developer.xml
URL: http://svn.apache.org/viewvc/hbase/branches/0.95/src/main/docbkx/developer.xml?rev=1475995&r1=1475994&r2=1475995&view=diff
==============================================================================
Binary files - no diff available.