HADOOP-8982. TestSocketIOWithTimeout fails on Windows. Contributed by Chris Nauroth.

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1490124 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Suresh Srinivas 2013-06-06 04:17:04 +00:00
parent 8f201a070e
commit ba6bd09811
2 changed files with 18 additions and 6 deletions

View File

@ -749,6 +749,9 @@ Release 2.1.0-beta - UNRELEASED
HADOOP-9526. TestShellCommandFencer and TestShell fail on Windows. HADOOP-9526. TestShellCommandFencer and TestShell fail on Windows.
(Arpit Agarwal via suresh) (Arpit Agarwal via suresh)
HADOOP-8982. TestSocketIOWithTimeout fails on Windows.
(Chris Nauroth via suresh)
Release 2.0.5-alpha - UNRELEASED Release 2.0.5-alpha - UNRELEASED
INCOMPATIBLE CHANGES INCOMPATIBLE CHANGES

View File

@ -32,6 +32,7 @@ import org.apache.hadoop.test.MultithreadedTestUtil;
import org.apache.hadoop.test.MultithreadedTestUtil.TestContext; import org.apache.hadoop.test.MultithreadedTestUtil.TestContext;
import org.apache.hadoop.test.MultithreadedTestUtil.TestingThread; import org.apache.hadoop.test.MultithreadedTestUtil.TestingThread;
import org.apache.hadoop.util.Time; import org.apache.hadoop.util.Time;
import org.apache.hadoop.util.Shell;
import org.junit.Test; import org.junit.Test;
import static org.junit.Assert.*; import static org.junit.Assert.*;
@ -144,12 +145,20 @@ public class TestSocketIOWithTimeout {
// Nevertheless, the output stream is closed, because // Nevertheless, the output stream is closed, because
// a partial write may have succeeded (see comment in // a partial write may have succeeded (see comment in
// SocketOutputStream#write(byte[]), int, int) // SocketOutputStream#write(byte[]), int, int)
try { // This portion of the test cannot pass on Windows due to differences in
out.write(1); // behavior of partial writes. Windows appears to buffer large amounts of
fail("Did not throw"); // written data and send it all atomically, thus making it impossible to
} catch (IOException ioe) { // simulate a partial write scenario. Attempts were made to switch the
GenericTestUtils.assertExceptionContains( // test from using a pipe to a network socket and also to use larger and
"stream is closed", ioe); // larger buffers in doIO. Nothing helped the situation though.
if (!Shell.WINDOWS) {
try {
out.write(1);
fail("Did not throw");
} catch (IOException ioe) {
GenericTestUtils.assertExceptionContains(
"stream is closed", ioe);
}
} }
out.close(); out.close();