You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by su...@apache.org on 2013/06/06 06:02:25 UTC

svn commit: r1490120 - in /hadoop/common/trunk/hadoop-common-project/hadoop-common: CHANGES.txt src/test/java/org/apache/hadoop/ha/TestShellCommandFencer.java src/test/java/org/apache/hadoop/util/TestShell.java

Author: suresh
Date: Thu Jun  6 04:02:24 2013
New Revision: 1490120

URL: http://svn.apache.org/r1490120
Log:
HADOOP-9526. TestShellCommandFencer and TestShell fail on Windows. Contributed by Arpit Agarwal.

Modified:
    hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt
    hadoop/common/trunk/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ha/TestShellCommandFencer.java
    hadoop/common/trunk/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/util/TestShell.java

Modified: hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt?rev=1490120&r1=1490119&r2=1490120&view=diff
==============================================================================
--- hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt (original)
+++ hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt Thu Jun  6 04:02:24 2013
@@ -746,6 +746,9 @@ Release 2.1.0-beta - UNRELEASED
     HADOOP-9131. Turn off TestLocalFileSystem#testListStatusWithColons on
     Windows. (Chris Nauroth via suresh)
 
+    HADOOP-9526. TestShellCommandFencer and TestShell fail on Windows.
+    (Arpit Agarwal via suresh)
+
 Release 2.0.5-alpha - UNRELEASED
 
   INCOMPATIBLE CHANGES

Modified: hadoop/common/trunk/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ha/TestShellCommandFencer.java
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ha/TestShellCommandFencer.java?rev=1490120&r1=1490119&r2=1490120&view=diff
==============================================================================
--- hadoop/common/trunk/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ha/TestShellCommandFencer.java (original)
+++ hadoop/common/trunk/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ha/TestShellCommandFencer.java Thu Jun  6 04:02:24 2013
@@ -23,6 +23,7 @@ import java.net.InetSocketAddress;
 
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.ha.HAServiceProtocol.HAServiceState;
+import org.apache.hadoop.util.Shell;
 import org.apache.hadoop.util.StringUtils;
 import org.junit.Before;
 import org.junit.BeforeClass;
@@ -110,9 +111,9 @@ public class TestShellCommandFencer {
    */
   @Test
   public void testStderrLogging() {
-    assertTrue(fencer.tryFence(TEST_TARGET, "echo hello >&2"));
+    assertTrue(fencer.tryFence(TEST_TARGET, "echo hello>&2"));
     Mockito.verify(ShellCommandFencer.LOG).warn(
-        Mockito.endsWith("echo hello >&2: hello"));
+        Mockito.endsWith("echo hello>&2: hello"));
   }
 
   /**
@@ -121,9 +122,15 @@ public class TestShellCommandFencer {
    */
   @Test
   public void testConfAsEnvironment() {
-    fencer.tryFence(TEST_TARGET, "echo $in_fencing_tests");
-    Mockito.verify(ShellCommandFencer.LOG).info(
-        Mockito.endsWith("echo $in...ing_tests: yessir"));
+    if (!Shell.WINDOWS) {
+      fencer.tryFence(TEST_TARGET, "echo $in_fencing_tests");
+      Mockito.verify(ShellCommandFencer.LOG).info(
+          Mockito.endsWith("echo $in...ing_tests: yessir"));
+    } else {
+      fencer.tryFence(TEST_TARGET, "echo %in_fencing_tests%");
+      Mockito.verify(ShellCommandFencer.LOG).info(
+          Mockito.endsWith("echo %in...ng_tests%: yessir"));
+    }
   }
   
   /**
@@ -132,9 +139,15 @@ public class TestShellCommandFencer {
    */
   @Test
   public void testTargetAsEnvironment() {
-    fencer.tryFence(TEST_TARGET, "echo $target_host $target_port $target_address");
-    Mockito.verify(ShellCommandFencer.LOG).info(
-        Mockito.endsWith("echo $ta...t_address: host 1234 host:1234"));
+    if (!Shell.WINDOWS) {
+      fencer.tryFence(TEST_TARGET, "echo $target_host $target_port $target_address");
+      Mockito.verify(ShellCommandFencer.LOG).info(
+          Mockito.endsWith("echo $ta...t_address: host 1234 host:1234"));
+    } else {
+      fencer.tryFence(TEST_TARGET, "echo %target_host% %target_port% %target_address%");
+      Mockito.verify(ShellCommandFencer.LOG).info(
+          Mockito.endsWith("echo %ta..._address%: host 1234 host:1234"));
+    }
   }
 
 

Modified: hadoop/common/trunk/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/util/TestShell.java
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/util/TestShell.java?rev=1490120&r1=1490119&r2=1490120&view=diff
==============================================================================
--- hadoop/common/trunk/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/util/TestShell.java (original)
+++ hadoop/common/trunk/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/util/TestShell.java Thu Jun  6 04:02:24 2013
@@ -41,7 +41,12 @@ public class TestShell extends TestCase 
 
     @Override
     protected String[] getExecString() {
-      return new String[] {"echo", "hello"};
+      // There is no /bin/echo equivalent on Windows so just launch it as a
+      // shell built-in.
+      //
+      return Shell.WINDOWS ?
+          (new String[] {"cmd.exe", "/c", "echo", "hello"}) :
+          (new String[] {"echo", "hello"});
     }
 
     @Override