hadoop-common-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From c..@apache.org
Subject svn commit: r890964 - in /hadoop/common/trunk: ./ src/test/core/org/apache/hadoop/cli/ src/test/core/org/apache/hadoop/cli/util/
Date Tue, 15 Dec 2009 19:59:21 GMT
Author: cos
Date: Tue Dec 15 19:59:20 2009
New Revision: 890964

URL: http://svn.apache.org/viewvc?rev=890964&view=rev
Log:
HADOOP-6222. Core doesn't have TestCommonCLI facility. Contributed by Konstantin Boudnik.

Added:
    hadoop/common/trunk/src/test/core/org/apache/hadoop/cli/CLITestHelper.java
      - copied, changed from r889791, hadoop/common/trunk/src/test/core/org/apache/hadoop/cli/TestCLI.java
    hadoop/common/trunk/src/test/core/org/apache/hadoop/cli/util/CLICommands.java
    hadoop/common/trunk/src/test/core/org/apache/hadoop/cli/util/CmdFactory.java
Modified:
    hadoop/common/trunk/CHANGES.txt
    hadoop/common/trunk/src/test/core/org/apache/hadoop/cli/TestCLI.java
    hadoop/common/trunk/src/test/core/org/apache/hadoop/cli/testConf.xml
    hadoop/common/trunk/src/test/core/org/apache/hadoop/cli/util/CommandExecutor.java

Modified: hadoop/common/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/CHANGES.txt?rev=890964&r1=890963&r2=890964&view=diff
==============================================================================
--- hadoop/common/trunk/CHANGES.txt (original)
+++ hadoop/common/trunk/CHANGES.txt Tue Dec 15 19:59:20 2009
@@ -61,6 +61,8 @@
 
     HADOOP-6413. Move TestReflectionUtils to Common. (Todd Lipcon via tomwhite)
 
+    HADOOP-6222. Core doesn't have TestCommonCLI facility. (cos)
+
   OPTIMIZATIONS
 
   BUG FIXES

Copied: hadoop/common/trunk/src/test/core/org/apache/hadoop/cli/CLITestHelper.java (from r889791,
hadoop/common/trunk/src/test/core/org/apache/hadoop/cli/TestCLI.java)
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/src/test/core/org/apache/hadoop/cli/CLITestHelper.java?p2=hadoop/common/trunk/src/test/core/org/apache/hadoop/cli/CLITestHelper.java&p1=hadoop/common/trunk/src/test/core/org/apache/hadoop/cli/TestCLI.java&r1=889791&r2=890964&rev=890964&view=diff
==============================================================================
--- hadoop/common/trunk/src/test/core/org/apache/hadoop/cli/TestCLI.java (original)
+++ hadoop/common/trunk/src/test/core/org/apache/hadoop/cli/CLITestHelper.java Tue Dec 15
19:59:20 2009
@@ -18,36 +18,35 @@
 
 package org.apache.hadoop.cli;
 
-import java.io.File;
-import java.util.ArrayList;
-
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
-
-import junit.framework.TestCase;
-
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.cli.util.CLITestData;
-import org.apache.hadoop.cli.util.CommandExecutor;
-import org.apache.hadoop.cli.util.ComparatorBase;
-import org.apache.hadoop.cli.util.ComparatorData;
 import org.apache.hadoop.cli.util.CLITestData.TestCmd;
 import org.apache.hadoop.cli.util.CLITestData.TestCmd.CommandType;
+import org.apache.hadoop.cli.util.CommandExecutor;
 import org.apache.hadoop.cli.util.CommandExecutor.Result;
+import org.apache.hadoop.cli.util.ComparatorBase;
+import org.apache.hadoop.cli.util.ComparatorData;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.security.authorize.ServiceAuthorizationManager;
 import org.apache.hadoop.util.StringUtils;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
 import org.xml.sax.Attributes;
 import org.xml.sax.SAXException;
 import org.xml.sax.helpers.DefaultHandler;
 
+import javax.xml.parsers.SAXParser;
+import javax.xml.parsers.SAXParserFactory;
+import java.io.File;
+import java.util.ArrayList;
+
 /**
  * Tests for the Command Line Interface (CLI)
  */
-public class TestCLI extends TestCase {
+public class CLITestHelper {
   private static final Log LOG =
-    LogFactory.getLog(TestCLI.class.getName());
+    LogFactory.getLog(CLITestHelper.class.getName());
   
   // In this mode, it runs the command and compares the actual output
   // with the expected output  
@@ -94,7 +93,7 @@
   }
   
   protected String getTestFile() {
-    return "testConf.xml";
+    return "";
   }
   
   /*
@@ -293,12 +292,13 @@
   }
   
   /***********************************
-   ************* TESTS
+   ************* TESTS RUNNER
    *********************************/
   
   public void testAll() {
+    assertTrue("Number of tests has to be greater then zero",
+      testsFromConfigFile.size() > 0);
     LOG.info("TestAll");
-    
     // Run the tests defined in the testConf.xml config file.
     for (int index = 0; index < testsFromConfigFile.size(); index++) {
       

Modified: hadoop/common/trunk/src/test/core/org/apache/hadoop/cli/TestCLI.java
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/src/test/core/org/apache/hadoop/cli/TestCLI.java?rev=890964&r1=890963&r2=890964&view=diff
==============================================================================
--- hadoop/common/trunk/src/test/core/org/apache/hadoop/cli/TestCLI.java (original)
+++ hadoop/common/trunk/src/test/core/org/apache/hadoop/cli/TestCLI.java Tue Dec 15 19:59:20
2009
@@ -18,433 +18,42 @@
 
 package org.apache.hadoop.cli;
 
-import java.io.File;
-import java.util.ArrayList;
-
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
-
-import junit.framework.TestCase;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.cli.util.CLITestData;
+import org.apache.hadoop.cli.util.CmdFactory;
 import org.apache.hadoop.cli.util.CommandExecutor;
-import org.apache.hadoop.cli.util.ComparatorBase;
-import org.apache.hadoop.cli.util.ComparatorData;
-import org.apache.hadoop.cli.util.CLITestData.TestCmd;
-import org.apache.hadoop.cli.util.CLITestData.TestCmd.CommandType;
-import org.apache.hadoop.cli.util.CommandExecutor.Result;
-import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.security.authorize.ServiceAuthorizationManager;
-import org.apache.hadoop.util.StringUtils;
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-import org.xml.sax.helpers.DefaultHandler;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
 
 /**
  * Tests for the Command Line Interface (CLI)
  */
-public class TestCLI extends TestCase {
-  private static final Log LOG =
-    LogFactory.getLog(TestCLI.class.getName());
-  
-  // In this mode, it runs the command and compares the actual output
-  // with the expected output  
-  public static final String TESTMODE_TEST = "test"; // Run the tests
-  
-  // If it is set to nocompare, run the command and do not compare.
-  // This can be useful populate the testConfig.xml file the first time
-  // a new command is added
-  public static final String TESTMODE_NOCOMPARE = "nocompare";
-  public static final String TEST_CACHE_DATA_DIR =
-    System.getProperty("test.cache.data", "build/test/cache");
-  
-  //By default, run the tests. The other mode is to run the commands and not
-  // compare the output
-  protected String testMode = TESTMODE_TEST;
-  
-  // Storage for tests read in from the config file
-  protected ArrayList<CLITestData> testsFromConfigFile = null;
-  protected ArrayList<ComparatorData> testComparators = null;
-  protected String thisTestCaseName = null;
-  protected ComparatorData comparatorData = null;
-  protected Configuration conf = null;
-  protected String clitestDataDir = null;
-  protected String username = null;
-  
-  /**
-   * Read the test config file - testConfig.xml
-   */
-  protected void readTestConfigFile() {
-    String testConfigFile = getTestFile();
-    if (testsFromConfigFile == null) {
-      boolean success = false;
-      testConfigFile = TEST_CACHE_DATA_DIR + File.separator + testConfigFile;
-      try {
-        SAXParser p = (SAXParserFactory.newInstance()).newSAXParser();
-        p.parse(testConfigFile, new TestConfigFileParser());
-        success = true;
-      } catch (Exception e) {
-        LOG.info("File: " + testConfigFile + " not found");
-        success = false;
-      }
-      assertTrue("Error reading test config file", success);
-    }
-  }
-  
-  protected String getTestFile() {
-    return "testConf.xml";
-  }
-  
-  /*
-   * Setup
-   */
+public class TestCLI extends CLITestHelper {
+  @Before
+  @Override
   public void setUp() throws Exception {
-    // Read the testConfig.xml file
-    readTestConfigFile();
-    
-    conf = new Configuration();
-    conf.setBoolean(ServiceAuthorizationManager.SERVICE_AUTHORIZATION_CONFIG, 
-                    true);
-
-    clitestDataDir = new File(TEST_CACHE_DATA_DIR).
-    toURI().toString().replace(' ', '+');
+    super.setUp();
   }
-  
-  /**
-   * Tear down
-   */
+
+  @After
+  @Override
   public void tearDown() throws Exception {
-    displayResults();
-  }
-  
-  /**
-   * Expand the commands from the test config xml file
-   * @param cmd
-   * @return String expanded command
-   */
-  protected String expandCommand(final String cmd) {
-    String expCmd = cmd;
-    expCmd = expCmd.replaceAll("CLITEST_DATA", clitestDataDir);
-    expCmd = expCmd.replaceAll("USERNAME", username);
-    
-    return expCmd;
+    super.tearDown();
   }
-  
-  /**
-   * Display the summarized results
-   */
-  private void displayResults() {
-    LOG.info("Detailed results:");
-    LOG.info("----------------------------------\n");
-    
-    for (int i = 0; i < testsFromConfigFile.size(); i++) {
-      CLITestData td = testsFromConfigFile.get(i);
-      
-      boolean testResult = td.getTestResult();
-      
-      // Display the details only if there is a failure
-      if (!testResult) {
-        LOG.info("-------------------------------------------");
-        LOG.info("                    Test ID: [" + (i + 1) + "]");
-        LOG.info("           Test Description: [" + td.getTestDesc() + "]");
-        LOG.info("");
-
-        ArrayList<TestCmd> testCommands = td.getTestCommands();
-        for (TestCmd cmd : testCommands) {
-          LOG.info("              Test Commands: [" + 
-                   expandCommand(cmd.getCmd()) + "]");
-        }
-
-        LOG.info("");
-        ArrayList<TestCmd> cleanupCommands = td.getCleanupCommands();
-        for (TestCmd cmd : cleanupCommands) {
-          LOG.info("           Cleanup Commands: [" +
-                   expandCommand(cmd.getCmd()) + "]");
-        }
-
-        LOG.info("");
-        ArrayList<ComparatorData> compdata = td.getComparatorData();
-        for (ComparatorData cd : compdata) {
-          boolean resultBoolean = cd.getTestResult();
-          LOG.info("                 Comparator: [" + 
-                   cd.getComparatorType() + "]");
-          LOG.info("         Comparision result:   [" + 
-                   (resultBoolean ? "pass" : "fail") + "]");
-          LOG.info("            Expected output:   [" + 
-                   cd.getExpectedOutput() + "]");
-          LOG.info("              Actual output:   [" + 
-                   cd.getActualOutput() + "]");
-        }
-        LOG.info("");
-      }
-    }
-    
-    LOG.info("Summary results:");
-    LOG.info("----------------------------------\n");
-    
-    boolean overallResults = true;
-    int totalPass = 0;
-    int totalFail = 0;
-    int totalComparators = 0;
-    for (int i = 0; i < testsFromConfigFile.size(); i++) {
-      CLITestData td = testsFromConfigFile.get(i);
-      totalComparators += 
-    	  testsFromConfigFile.get(i).getComparatorData().size();
-      boolean resultBoolean = td.getTestResult();
-      if (resultBoolean) {
-        totalPass ++;
-      } else {
-        totalFail ++;
-      }
-      overallResults &= resultBoolean;
-    }
-    
-    
-    LOG.info("               Testing mode: " + testMode);
-    LOG.info("");
-    LOG.info("             Overall result: " + 
-    		(overallResults ? "+++ PASS +++" : "--- FAIL ---"));
-    if ((totalPass + totalFail) == 0) {
-      LOG.info("               # Tests pass: " + 0);
-      LOG.info("               # Tests fail: " + 0);
-    }
-    else 
-    {
-      LOG.info("               # Tests pass: " + totalPass +
-          " (" + (100 * totalPass / (totalPass + totalFail)) + "%)");
-      LOG.info("               # Tests fail: " + totalFail + 
-          " (" + (100 * totalFail / (totalPass + totalFail)) + "%)");
-    }
-    
-    LOG.info("         # Validations done: " + totalComparators + 
-    		" (each test may do multiple validations)");
-    
-    LOG.info("");
-    LOG.info("Failing tests:");
-    LOG.info("--------------");
-    int i = 0;
-    boolean foundTests = false;
-    for (i = 0; i < testsFromConfigFile.size(); i++) {
-      boolean resultBoolean = testsFromConfigFile.get(i).getTestResult();
-      if (!resultBoolean) {
-        LOG.info((i + 1) + ": " + 
-        		testsFromConfigFile.get(i).getTestDesc());
-        foundTests = true;
-      }
-    }
-    if (!foundTests) {
-    	LOG.info("NONE");
-    }
-    
-    foundTests = false;
-    LOG.info("");
-    LOG.info("Passing tests:");
-    LOG.info("--------------");
-    for (i = 0; i < testsFromConfigFile.size(); i++) {
-      boolean resultBoolean = testsFromConfigFile.get(i).getTestResult();
-      if (resultBoolean) {
-        LOG.info((i + 1) + ": " + 
-        		testsFromConfigFile.get(i).getTestDesc());
-        foundTests = true;
-      }
-    }
-    if (!foundTests) {
-    	LOG.info("NONE");
-    }
 
-    assertTrue("One of the tests failed. " +
-    		"See the Detailed results to identify " +
-    		"the command that failed", overallResults);
-    
+  @Override
+  protected CommandExecutor.Result execute(CLITestData.TestCmd cmd) throws Exception {
+    return CmdFactory.getCommandExecutor(cmd, "").executeCommand(cmd.getCmd());
   }
   
-  /**
-   * Compare the actual output with the expected output
-   * @param compdata
-   * @return
-   */
-  private boolean compareTestOutput(ComparatorData compdata, Result cmdResult) {
-    // Compare the output based on the comparator
-    String comparatorType = compdata.getComparatorType();
-    Class<?> comparatorClass = null;
-    
-    // If testMode is "test", then run the command and compare the output
-    // If testMode is "nocompare", then run the command and dump the output.
-    // Do not compare
-    
-    boolean compareOutput = false;
-    
-    if (testMode.equals(TESTMODE_TEST)) {
-      try {
-    	// Initialize the comparator class and run its compare method
-        comparatorClass = Class.forName("org.apache.hadoop.cli.util." + 
-          comparatorType);
-        ComparatorBase comp = (ComparatorBase) comparatorClass.newInstance();
-        compareOutput = comp.compare(cmdResult.getCommandOutput(), 
-          compdata.getExpectedOutput());
-      } catch (Exception e) {
-        LOG.info("Error in instantiating the comparator" + e);
-      }
-    }
-    
-    return compareOutput;
+  @Override
+  protected String getTestFile() {
+    return "testConf.xml";
   }
   
-  /***********************************
-   ************* TESTS
-   *********************************/
-  
+  @Test
+  @Override
   public void testAll() {
-    LOG.info("TestAll");
-    
-    // Run the tests defined in the testConf.xml config file.
-    for (int index = 0; index < testsFromConfigFile.size(); index++) {
-      
-      CLITestData testdata = (CLITestData) testsFromConfigFile.get(index);
-   
-      // Execute the test commands
-      ArrayList<TestCmd> testCommands = testdata.getTestCommands();
-      Result cmdResult = null;
-      for (TestCmd cmd : testCommands) {
-      try {
-        cmdResult = execute(cmd);
-      } catch (Exception e) {
-        fail(StringUtils.stringifyException(e));
-      }
-      }
-      
-      boolean overallTCResult = true;
-      // Run comparators
-      ArrayList<ComparatorData> compdata = testdata.getComparatorData();
-      for (ComparatorData cd : compdata) {
-        final String comptype = cd.getComparatorType();
-        
-        boolean compareOutput = false;
-        
-        if (! comptype.equalsIgnoreCase("none")) {
-          compareOutput = compareTestOutput(cd, cmdResult);
-          overallTCResult &= compareOutput;
-        }
-        
-        cd.setExitCode(cmdResult.getExitCode());
-        cd.setActualOutput(cmdResult.getCommandOutput());
-        cd.setTestResult(compareOutput);
-      }
-      testdata.setTestResult(overallTCResult);
-      
-      // Execute the cleanup commands
-      ArrayList<TestCmd> cleanupCommands = testdata.getCleanupCommands();
-      for (TestCmd cmd : cleanupCommands) {
-      try { 
-        execute(cmd);
-      } catch (Exception e) {
-        fail(StringUtils.stringifyException(e));
-      }
-      }
-    }
-  }
-  
-  protected CommandExecutor.Result execute(TestCmd cmd) throws Exception {
-    throw new Exception("Unknow type of Test command:"+ cmd.getType());
-  }
-  
-  /*
-   * Parser class for the test config xml file
-   */
-  class TestConfigFileParser extends DefaultHandler {
-    String charString = null;
-    CLITestData td = null;
-    ArrayList<TestCmd> testCommands = null;
-    ArrayList<TestCmd> cleanupCommands = null;
-    
-    @Override
-    public void startDocument() throws SAXException {
-      testsFromConfigFile = new ArrayList<CLITestData>();
-    }
-    
-    @Override
-    public void startElement(String uri, 
-    		String localName, 
-    		String qName, 
-    		Attributes attributes) throws SAXException {
-      if (qName.equals("test")) {
-        td = new CLITestData();
-      } else if (qName.equals("test-commands")) {
-        testCommands = new ArrayList<TestCmd>();
-      } else if (qName.equals("cleanup-commands")) {
-        cleanupCommands = new ArrayList<TestCmd>();
-      } else if (qName.equals("comparators")) {
-        testComparators = new ArrayList<ComparatorData>();
-      } else if (qName.equals("comparator")) {
-        comparatorData = new ComparatorData();
-      }
-      charString = "";
-    }
-    
-    @Override
-    public void endElement(String uri, 
-    		String localName, 
-    		String qName) throws SAXException {
-      if (qName.equals("description")) {
-        td.setTestDesc(charString);
-      } else if (qName.equals("test-commands")) {
-        td.setTestCommands(testCommands);
-        testCommands = null;
-      } else if (qName.equals("cleanup-commands")) {
-        td.setCleanupCommands(cleanupCommands);
-        cleanupCommands = null;
-      } else if (qName.equals("command")) {
-        if (testCommands != null) {
-          testCommands.add(new TestCmd(charString, CommandType.FS));
-        } else if (cleanupCommands != null) {
-          cleanupCommands.add(new TestCmd(charString, CommandType.FS));
-        }
-      } else if (qName.equals("dfs-admin-command")) {
-        if (testCommands != null) {
-          testCommands.add(new TestCmd(charString, CommandType.DFSADMIN));
-        } else if (cleanupCommands != null) {
-          cleanupCommands.add(new TestCmd(charString, CommandType.DFSADMIN));
-        } 
-      } else if (qName.equals("mr-admin-command")) {
-        if (testCommands != null) {
-          testCommands.add(new TestCmd(charString, CommandType.MRADMIN));
-        } else if (cleanupCommands != null) {
-          cleanupCommands.add(new TestCmd(charString, CommandType.MRADMIN));
-        } 
-      } else if (qName.equals("archive-command")) {
-        if (testCommands != null) {
-          testCommands.add(new TestCmd(charString, CommandType.ARCHIVE));
-        } else if (cleanupCommands != null) {
-          cleanupCommands.add(new TestCmd(charString, CommandType.ARCHIVE));
-        }
-      } else if (qName.equals("comparators")) {
-        td.setComparatorData(testComparators);
-      } else if (qName.equals("comparator")) {
-        testComparators.add(comparatorData);
-      } else if (qName.equals("type")) {
-        comparatorData.setComparatorType(charString);
-      } else if (qName.equals("expected-output")) {
-        comparatorData.setExpectedOutput(charString);
-      } else if (qName.equals("test")) {
-        testsFromConfigFile.add(td);
-        td = null;
-      } else if (qName.equals("mode")) {
-        testMode = charString;
-        if (!testMode.equals(TESTMODE_NOCOMPARE) &&
-            !testMode.equals(TESTMODE_TEST)) {
-          testMode = TESTMODE_TEST;
-        }
-      }
-    }
-    
-    @Override
-    public void characters(char[] ch, 
-    		int start, 
-    		int length) throws SAXException {
-      String s = new String(ch, start, length);
-      charString += s;
-    }
+    super.testAll();
   }
 }

Modified: hadoop/common/trunk/src/test/core/org/apache/hadoop/cli/testConf.xml
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/src/test/core/org/apache/hadoop/cli/testConf.xml?rev=890964&r1=890963&r2=890964&view=diff
==============================================================================
--- hadoop/common/trunk/src/test/core/org/apache/hadoop/cli/testConf.xml (original)
+++ hadoop/common/trunk/src/test/core/org/apache/hadoop/cli/testConf.xml Tue Dec 15 19:59:20
2009
@@ -28,6 +28,21 @@
            TokenComparator
            -->
   <tests>
+    <!-- Tests for help -->
+    <test> <!-- TESTED -->
+      <description>help: check if fs help message is shown</description>
+      <test-commands>
+        <command>-help</command>
+      </test-commands>
+      <cleanup-commands>
+      </cleanup-commands>
+      <comparators>
+        <comparator>
+          <type>SubstringComparator</type>
+          <expected-output>hadoop fs is the command to execute fs commands. The full
syntax is</expected-output>
+        </comparator>
+      </comparators>
+    </test>
 
   </tests>
 </configuration>

Added: hadoop/common/trunk/src/test/core/org/apache/hadoop/cli/util/CLICommands.java
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/src/test/core/org/apache/hadoop/cli/util/CLICommands.java?rev=890964&view=auto
==============================================================================
--- hadoop/common/trunk/src/test/core/org/apache/hadoop/cli/util/CLICommands.java (added)
+++ hadoop/common/trunk/src/test/core/org/apache/hadoop/cli/util/CLICommands.java Tue Dec
15 19:59:20 2009
@@ -0,0 +1,39 @@
+/*
+ * 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.hadoop.cli.util;
+
+import org.apache.hadoop.fs.FsShell;
+import org.apache.hadoop.util.ToolRunner;
+
+public class CLICommands {
+
+  public static class FSCmdExecutor extends CommandExecutor {
+    protected String namenode = null;
+    protected FsShell shell = null;
+    
+    public FSCmdExecutor(String namenode, FsShell shell) {
+      this.namenode = namenode;
+      this.shell = shell;
+    }
+
+    protected void execute(final String cmd) throws Exception{
+      String[] args = getCommandAsArgs(cmd, "NAMENODE", this.namenode);
+      ToolRunner.run(shell, args);
+    }
+  }
+}

Added: hadoop/common/trunk/src/test/core/org/apache/hadoop/cli/util/CmdFactory.java
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/src/test/core/org/apache/hadoop/cli/util/CmdFactory.java?rev=890964&view=auto
==============================================================================
--- hadoop/common/trunk/src/test/core/org/apache/hadoop/cli/util/CmdFactory.java (added)
+++ hadoop/common/trunk/src/test/core/org/apache/hadoop/cli/util/CmdFactory.java Tue Dec 15
19:59:20 2009
@@ -0,0 +1,37 @@
+/**
+ * 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.hadoop.cli.util;
+
+import org.apache.hadoop.fs.FsShell;
+
+public abstract class CmdFactory {
+  public static CommandExecutor getCommandExecutor(CLITestData.TestCmd cmd,
+                                                   String tag)
+    throws IllegalArgumentException {
+    CommandExecutor executor = null;
+    switch (cmd.getType()) {
+      case FS:
+        executor = new CLICommands.FSCmdExecutor(tag, new FsShell());
+        break;
+      default:
+        throw new IllegalArgumentException("Unknown type of Test command:" +
+          cmd.getType());
+    }
+    return executor;
+  }
+}

Modified: hadoop/common/trunk/src/test/core/org/apache/hadoop/cli/util/CommandExecutor.java
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/src/test/core/org/apache/hadoop/cli/util/CommandExecutor.java?rev=890964&r1=890963&r2=890964&view=diff
==============================================================================
--- hadoop/common/trunk/src/test/core/org/apache/hadoop/cli/util/CommandExecutor.java (original)
+++ hadoop/common/trunk/src/test/core/org/apache/hadoop/cli/util/CommandExecutor.java Tue
Dec 15 19:59:20 2009
@@ -18,13 +18,13 @@
 
 package org.apache.hadoop.cli.util;
 
+import org.apache.hadoop.cli.CLITestHelper;
+
 import java.io.ByteArrayOutputStream;
 import java.io.File;
 import java.io.PrintStream;
 import java.util.StringTokenizer;
 
-import org.apache.hadoop.cli.TestCLI;
-
 /**
  *
  * This class execute commands and captures the output
@@ -41,7 +41,7 @@
 
       args[i] = args[i].replaceAll(masterKey, master);
       args[i] = args[i].replaceAll("CLITEST_DATA", 
-        new File(TestCLI.TEST_CACHE_DATA_DIR).
+        new File(CLITestHelper.TEST_CACHE_DATA_DIR).
         toURI().toString().replace(' ', '+'));
       args[i] = args[i].replaceAll("USERNAME", System.getProperty("user.name"));
 



Mime
View raw message