HDFS-9410. Some tests should always reset sysout and syserr. Contributed by Xiao Chen.
This commit is contained in:
parent
7ff280fca9
commit
cccf88480b
@ -2299,6 +2299,9 @@ Release 2.8.0 - UNRELEASED
|
|||||||
HDFS-9396. Total files and directories on jmx and web UI on standby is
|
HDFS-9396. Total files and directories on jmx and web UI on standby is
|
||||||
uninitialized. (kihwal)
|
uninitialized. (kihwal)
|
||||||
|
|
||||||
|
HDFS-9410. Some tests should always reset sysout and syserr.
|
||||||
|
(Xiao Chen via waltersu4549)
|
||||||
|
|
||||||
Release 2.7.3 - UNRELEASED
|
Release 2.7.3 - UNRELEASED
|
||||||
|
|
||||||
INCOMPATIBLE CHANGES
|
INCOMPATIBLE CHANGES
|
||||||
|
@ -955,9 +955,9 @@ private static void runCount(String path, long dirs, long files, FsShell shell
|
|||||||
assertEquals(dirs, in.nextLong());
|
assertEquals(dirs, in.nextLong());
|
||||||
assertEquals(files, in.nextLong());
|
assertEquals(files, in.nextLong());
|
||||||
} finally {
|
} finally {
|
||||||
|
System.setOut(oldOut);
|
||||||
if (in!=null) in.close();
|
if (in!=null) in.close();
|
||||||
IOUtils.closeStream(out);
|
IOUtils.closeStream(out);
|
||||||
System.setOut(oldOut);
|
|
||||||
System.out.println("results:\n" + results);
|
System.out.println("results:\n" + results);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1720,9 +1720,9 @@ private static String runLsr(final FsShell shell, String root, int returnvalue
|
|||||||
assertEquals(returnvalue, shell.run(new String[]{"-lsr", root}));
|
assertEquals(returnvalue, shell.run(new String[]{"-lsr", root}));
|
||||||
results = bytes.toString();
|
results = bytes.toString();
|
||||||
} finally {
|
} finally {
|
||||||
IOUtils.closeStream(out);
|
|
||||||
System.setOut(oldOut);
|
System.setOut(oldOut);
|
||||||
System.setErr(oldErr);
|
System.setErr(oldErr);
|
||||||
|
IOUtils.closeStream(out);
|
||||||
}
|
}
|
||||||
System.out.println("results:\n" + results);
|
System.out.println("results:\n" + results);
|
||||||
return results;
|
return results;
|
||||||
@ -3179,16 +3179,17 @@ public void testListReserved() throws IOException {
|
|||||||
final ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
final ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||||
PrintStream ps = new PrintStream(baos);
|
PrintStream ps = new PrintStream(baos);
|
||||||
System.setErr(ps);
|
System.setErr(ps);
|
||||||
|
try {
|
||||||
runCmd(shell, "-ls", "/.reserved");
|
runCmd(shell, "-ls", "/.reserved");
|
||||||
assertEquals(0, baos.toString().length());
|
assertEquals(0, baos.toString().length());
|
||||||
|
|
||||||
runCmd(shell, "-ls", "/.reserved/raw/.reserved");
|
runCmd(shell, "-ls", "/.reserved/raw/.reserved");
|
||||||
assertTrue(baos.toString().contains("No such file or directory"));
|
assertTrue(baos.toString().contains("No such file or directory"));
|
||||||
|
} finally {
|
||||||
System.setErr(syserr);
|
System.setErr(syserr);
|
||||||
cluster.shutdown();
|
cluster.shutdown();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Test (timeout = 30000)
|
@Test (timeout = 30000)
|
||||||
public void testMkdirReserved() throws IOException {
|
public void testMkdirReserved() throws IOException {
|
||||||
@ -3253,14 +3254,16 @@ public void testCopyReserved() throws IOException {
|
|||||||
final ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
final ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||||
PrintStream ps = new PrintStream(baos);
|
PrintStream ps = new PrintStream(baos);
|
||||||
System.setErr(ps);
|
System.setErr(ps);
|
||||||
|
try {
|
||||||
FsShell shell = new FsShell();
|
FsShell shell = new FsShell();
|
||||||
shell.setConf(conf);
|
shell.setConf(conf);
|
||||||
runCmd(shell, "-cp", src.toString(), "/.reserved");
|
runCmd(shell, "-cp", src.toString(), "/.reserved");
|
||||||
assertTrue(baos.toString().contains("Invalid path name /.reserved"));
|
assertTrue(baos.toString().contains("Invalid path name /.reserved"));
|
||||||
|
} finally {
|
||||||
System.setErr(syserr);
|
System.setErr(syserr);
|
||||||
cluster.shutdown();
|
cluster.shutdown();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Test (timeout = 30000)
|
@Test (timeout = 30000)
|
||||||
public void testChmodReserved() throws IOException {
|
public void testChmodReserved() throws IOException {
|
||||||
@ -3274,14 +3277,16 @@ public void testChmodReserved() throws IOException {
|
|||||||
final ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
final ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||||
PrintStream ps = new PrintStream(baos);
|
PrintStream ps = new PrintStream(baos);
|
||||||
System.setErr(ps);
|
System.setErr(ps);
|
||||||
|
try {
|
||||||
FsShell shell = new FsShell();
|
FsShell shell = new FsShell();
|
||||||
shell.setConf(conf);
|
shell.setConf(conf);
|
||||||
runCmd(shell, "-chmod", "777", "/.reserved");
|
runCmd(shell, "-chmod", "777", "/.reserved");
|
||||||
assertTrue(baos.toString().contains("Invalid path name /.reserved"));
|
assertTrue(baos.toString().contains("Invalid path name /.reserved"));
|
||||||
|
} finally {
|
||||||
System.setErr(syserr);
|
System.setErr(syserr);
|
||||||
cluster.shutdown();
|
cluster.shutdown();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Test (timeout = 30000)
|
@Test (timeout = 30000)
|
||||||
public void testChownReserved() throws IOException {
|
public void testChownReserved() throws IOException {
|
||||||
@ -3295,14 +3300,16 @@ public void testChownReserved() throws IOException {
|
|||||||
final ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
final ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||||
PrintStream ps = new PrintStream(baos);
|
PrintStream ps = new PrintStream(baos);
|
||||||
System.setErr(ps);
|
System.setErr(ps);
|
||||||
|
try {
|
||||||
FsShell shell = new FsShell();
|
FsShell shell = new FsShell();
|
||||||
shell.setConf(conf);
|
shell.setConf(conf);
|
||||||
runCmd(shell, "-chown", "user1", "/.reserved");
|
runCmd(shell, "-chown", "user1", "/.reserved");
|
||||||
assertTrue(baos.toString().contains("Invalid path name /.reserved"));
|
assertTrue(baos.toString().contains("Invalid path name /.reserved"));
|
||||||
|
} finally {
|
||||||
System.setErr(syserr);
|
System.setErr(syserr);
|
||||||
cluster.shutdown();
|
cluster.shutdown();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Test (timeout = 30000)
|
@Test (timeout = 30000)
|
||||||
public void testSymLinkReserved() throws IOException {
|
public void testSymLinkReserved() throws IOException {
|
||||||
|
@ -97,10 +97,14 @@ static String execCmd(FsShell shell, final String[] args) throws Exception {
|
|||||||
ByteArrayOutputStream baout = new ByteArrayOutputStream();
|
ByteArrayOutputStream baout = new ByteArrayOutputStream();
|
||||||
PrintStream out = new PrintStream(baout, true);
|
PrintStream out = new PrintStream(baout, true);
|
||||||
PrintStream old = System.out;
|
PrintStream old = System.out;
|
||||||
|
int ret;
|
||||||
|
try {
|
||||||
System.setOut(out);
|
System.setOut(out);
|
||||||
int ret = shell.run(args);
|
ret = shell.run(args);
|
||||||
out.close();
|
out.close();
|
||||||
|
} finally {
|
||||||
System.setOut(old);
|
System.setOut(old);
|
||||||
|
}
|
||||||
return String.valueOf(ret);
|
return String.valueOf(ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1054,13 +1054,18 @@ public void testSetSpaceQuotaWhenStorageTypeIsWrong() throws Exception {
|
|||||||
conf.set(FS_DEFAULT_NAME_KEY, "hdfs://127.0.0.1:8020");
|
conf.set(FS_DEFAULT_NAME_KEY, "hdfs://127.0.0.1:8020");
|
||||||
DFSAdmin admin = new DFSAdmin(conf);
|
DFSAdmin admin = new DFSAdmin(conf);
|
||||||
ByteArrayOutputStream err = new ByteArrayOutputStream();
|
ByteArrayOutputStream err = new ByteArrayOutputStream();
|
||||||
|
PrintStream oldErr = System.err;
|
||||||
|
try {
|
||||||
System.setErr(new PrintStream(err));
|
System.setErr(new PrintStream(err));
|
||||||
String[] args = { "-setSpaceQuota", "100", "-storageType", "COLD",
|
String[] args =
|
||||||
"/testDir" };
|
{ "-setSpaceQuota", "100", "-storageType", "COLD", "/testDir" };
|
||||||
admin.run(args);
|
admin.run(args);
|
||||||
String errOutput = new String(err.toByteArray(), Charsets.UTF_8);
|
String errOutput = new String(err.toByteArray(), Charsets.UTF_8);
|
||||||
assertTrue(errOutput.contains(StorageType.getTypesSupportingQuota()
|
assertTrue(
|
||||||
.toString()));
|
errOutput.contains(StorageType.getTypesSupportingQuota().toString()));
|
||||||
|
} finally {
|
||||||
|
System.setErr(oldErr);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -232,12 +232,14 @@ public void testFormatWithInvalidClusterIdOption() throws IOException {
|
|||||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||||
PrintStream stdErr = new PrintStream(baos);
|
PrintStream stdErr = new PrintStream(baos);
|
||||||
System.setErr(stdErr);
|
System.setErr(stdErr);
|
||||||
|
try {
|
||||||
NameNode.createNameNode(argv, config);
|
NameNode.createNameNode(argv, config);
|
||||||
|
|
||||||
// Check if usage is printed
|
// Check if usage is printed
|
||||||
assertTrue(baos.toString("UTF-8").contains("Usage: hdfs namenode"));
|
assertTrue(baos.toString("UTF-8").contains("Usage: hdfs namenode"));
|
||||||
|
} finally {
|
||||||
System.setErr(origErr);
|
System.setErr(origErr);
|
||||||
|
}
|
||||||
|
|
||||||
// check if the version file does not exists.
|
// check if the version file does not exists.
|
||||||
File version = new File(hdfsDir, "current/VERSION");
|
File version = new File(hdfsDir, "current/VERSION");
|
||||||
@ -258,12 +260,14 @@ public void testFormatWithNoClusterIdOption() throws IOException {
|
|||||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||||
PrintStream stdErr = new PrintStream(baos);
|
PrintStream stdErr = new PrintStream(baos);
|
||||||
System.setErr(stdErr);
|
System.setErr(stdErr);
|
||||||
|
try {
|
||||||
NameNode.createNameNode(argv, config);
|
NameNode.createNameNode(argv, config);
|
||||||
|
|
||||||
// Check if usage is printed
|
// Check if usage is printed
|
||||||
assertTrue(baos.toString("UTF-8").contains("Usage: hdfs namenode"));
|
assertTrue(baos.toString("UTF-8").contains("Usage: hdfs namenode"));
|
||||||
|
} finally {
|
||||||
System.setErr(origErr);
|
System.setErr(origErr);
|
||||||
|
}
|
||||||
|
|
||||||
// check if the version file does not exists.
|
// check if the version file does not exists.
|
||||||
File version = new File(hdfsDir, "current/VERSION");
|
File version = new File(hdfsDir, "current/VERSION");
|
||||||
@ -285,12 +289,14 @@ public void testFormatWithEmptyClusterIdOption() throws IOException {
|
|||||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||||
PrintStream stdErr = new PrintStream(baos);
|
PrintStream stdErr = new PrintStream(baos);
|
||||||
System.setErr(stdErr);
|
System.setErr(stdErr);
|
||||||
|
try {
|
||||||
NameNode.createNameNode(argv, config);
|
NameNode.createNameNode(argv, config);
|
||||||
|
|
||||||
// Check if usage is printed
|
// Check if usage is printed
|
||||||
assertTrue(baos.toString("UTF-8").contains("Usage: hdfs namenode"));
|
assertTrue(baos.toString("UTF-8").contains("Usage: hdfs namenode"));
|
||||||
|
} finally {
|
||||||
System.setErr(origErr);
|
System.setErr(origErr);
|
||||||
|
}
|
||||||
|
|
||||||
// check if the version file does not exists.
|
// check if the version file does not exists.
|
||||||
File version = new File(hdfsDir, "current/VERSION");
|
File version = new File(hdfsDir, "current/VERSION");
|
||||||
|
@ -72,6 +72,7 @@ public void testMetadataVersionOutput() throws IOException {
|
|||||||
final PrintStream origOut = System.out;
|
final PrintStream origOut = System.out;
|
||||||
final ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
final ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||||
final PrintStream stdOut = new PrintStream(baos);
|
final PrintStream stdOut = new PrintStream(baos);
|
||||||
|
try {
|
||||||
System.setOut(stdOut);
|
System.setOut(stdOut);
|
||||||
try {
|
try {
|
||||||
NameNode.createNameNode(new String[] { "-metadataVersion" }, conf);
|
NameNode.createNameNode(new String[] { "-metadataVersion" }, conf);
|
||||||
@ -84,6 +85,8 @@ public void testMetadataVersionOutput() throws IOException {
|
|||||||
contains("HDFS Image Version: " + verNumStr));
|
contains("HDFS Image Version: " + verNumStr));
|
||||||
assertTrue(baos.toString("UTF-8").
|
assertTrue(baos.toString("UTF-8").
|
||||||
contains("Software format version: " + verNumStr));
|
contains("Software format version: " + verNumStr));
|
||||||
|
} finally {
|
||||||
System.setOut(origOut);
|
System.setOut(origOut);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1044,25 +1044,32 @@ public void testRenameSnapshotDiff() throws Exception {
|
|||||||
public void testDeleteSnapshotCommandWithIllegalArguments() throws Exception {
|
public void testDeleteSnapshotCommandWithIllegalArguments() throws Exception {
|
||||||
ByteArrayOutputStream out = new ByteArrayOutputStream();
|
ByteArrayOutputStream out = new ByteArrayOutputStream();
|
||||||
PrintStream psOut = new PrintStream(out);
|
PrintStream psOut = new PrintStream(out);
|
||||||
|
PrintStream oldOut = System.out;
|
||||||
|
PrintStream oldErr = System.err;
|
||||||
|
try {
|
||||||
System.setOut(psOut);
|
System.setOut(psOut);
|
||||||
System.setErr(psOut);
|
System.setErr(psOut);
|
||||||
FsShell shell = new FsShell();
|
FsShell shell = new FsShell();
|
||||||
shell.setConf(conf);
|
shell.setConf(conf);
|
||||||
|
|
||||||
String[] argv1 = {"-deleteSnapshot", "/tmp"};
|
String[] argv1 = { "-deleteSnapshot", "/tmp" };
|
||||||
int val = shell.run(argv1);
|
int val = shell.run(argv1);
|
||||||
assertTrue(val == -1);
|
assertTrue(val == -1);
|
||||||
assertTrue(out.toString().contains(
|
assertTrue(out.toString()
|
||||||
argv1[0] + ": Incorrect number of arguments."));
|
.contains(argv1[0] + ": Incorrect number of arguments."));
|
||||||
out.reset();
|
out.reset();
|
||||||
|
|
||||||
String[] argv2 = {"-deleteSnapshot", "/tmp", "s1", "s2"};
|
String[] argv2 = { "-deleteSnapshot", "/tmp", "s1", "s2" };
|
||||||
val = shell.run(argv2);
|
val = shell.run(argv2);
|
||||||
assertTrue(val == -1);
|
assertTrue(val == -1);
|
||||||
assertTrue(out.toString().contains(
|
assertTrue(out.toString()
|
||||||
argv2[0] + ": Incorrect number of arguments."));
|
.contains(argv2[0] + ": Incorrect number of arguments."));
|
||||||
psOut.close();
|
psOut.close();
|
||||||
out.close();
|
out.close();
|
||||||
|
} finally {
|
||||||
|
System.setOut(oldOut);
|
||||||
|
System.setErr(oldErr);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -237,24 +237,31 @@ public void testRenameWithIllegalName() throws Exception {
|
|||||||
public void testRenameSnapshotCommandWithIllegalArguments() throws Exception {
|
public void testRenameSnapshotCommandWithIllegalArguments() throws Exception {
|
||||||
ByteArrayOutputStream out = new ByteArrayOutputStream();
|
ByteArrayOutputStream out = new ByteArrayOutputStream();
|
||||||
PrintStream psOut = new PrintStream(out);
|
PrintStream psOut = new PrintStream(out);
|
||||||
|
PrintStream oldOut = System.out;
|
||||||
|
PrintStream oldErr = System.err;
|
||||||
|
try {
|
||||||
System.setOut(psOut);
|
System.setOut(psOut);
|
||||||
System.setErr(psOut);
|
System.setErr(psOut);
|
||||||
FsShell shell = new FsShell();
|
FsShell shell = new FsShell();
|
||||||
shell.setConf(conf);
|
shell.setConf(conf);
|
||||||
|
|
||||||
String[] argv1 = {"-renameSnapshot", "/tmp", "s1"};
|
String[] argv1 = { "-renameSnapshot", "/tmp", "s1" };
|
||||||
int val = shell.run(argv1);
|
int val = shell.run(argv1);
|
||||||
assertTrue(val == -1);
|
assertTrue(val == -1);
|
||||||
assertTrue(out.toString().contains(
|
assertTrue(out.toString()
|
||||||
argv1[0] + ": Incorrect number of arguments."));
|
.contains(argv1[0] + ": Incorrect number of arguments."));
|
||||||
out.reset();
|
out.reset();
|
||||||
|
|
||||||
String[] argv2 = {"-renameSnapshot", "/tmp", "s1", "s2", "s3"};
|
String[] argv2 = { "-renameSnapshot", "/tmp", "s1", "s2", "s3" };
|
||||||
val = shell.run(argv2);
|
val = shell.run(argv2);
|
||||||
assertTrue(val == -1);
|
assertTrue(val == -1);
|
||||||
assertTrue(out.toString().contains(
|
assertTrue(out.toString()
|
||||||
argv2[0] + ": Incorrect number of arguments."));
|
.contains(argv2[0] + ": Incorrect number of arguments."));
|
||||||
psOut.close();
|
psOut.close();
|
||||||
out.close();
|
out.close();
|
||||||
|
} finally {
|
||||||
|
System.setOut(oldOut);
|
||||||
|
System.setErr(oldErr);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -43,8 +43,8 @@ public class TestDFSAdminWithHA {
|
|||||||
private MiniQJMHACluster cluster;
|
private MiniQJMHACluster cluster;
|
||||||
private Configuration conf;
|
private Configuration conf;
|
||||||
private DFSAdmin admin;
|
private DFSAdmin admin;
|
||||||
private PrintStream originOut;
|
private static final PrintStream oldOut = System.out;
|
||||||
private PrintStream originErr;
|
private static final PrintStream oldErr = System.err;
|
||||||
|
|
||||||
private static final String NSID = "ns1";
|
private static final String NSID = "ns1";
|
||||||
private static String newLine = System.getProperty("line.separator");
|
private static String newLine = System.getProperty("line.separator");
|
||||||
@ -89,18 +89,19 @@ private void setUpHaCluster(boolean security) throws Exception {
|
|||||||
admin.setConf(conf);
|
admin.setConf(conf);
|
||||||
assertTrue(HAUtil.isHAEnabled(conf, "ns1"));
|
assertTrue(HAUtil.isHAEnabled(conf, "ns1"));
|
||||||
|
|
||||||
originOut = System.out;
|
|
||||||
originErr = System.err;
|
|
||||||
System.setOut(new PrintStream(out));
|
System.setOut(new PrintStream(out));
|
||||||
System.setErr(new PrintStream(err));
|
System.setErr(new PrintStream(err));
|
||||||
}
|
}
|
||||||
|
|
||||||
@After
|
@After
|
||||||
public void tearDown() throws Exception {
|
public void tearDown() throws Exception {
|
||||||
|
try {
|
||||||
System.out.flush();
|
System.out.flush();
|
||||||
System.err.flush();
|
System.err.flush();
|
||||||
System.setOut(originOut);
|
} finally {
|
||||||
System.setErr(originErr);
|
System.setOut(oldOut);
|
||||||
|
System.setErr(oldErr);
|
||||||
|
}
|
||||||
if (admin != null) {
|
if (admin != null) {
|
||||||
admin.close();
|
admin.close();
|
||||||
}
|
}
|
||||||
|
@ -125,7 +125,9 @@ private static boolean checkPrintAllValues(JMXGet jmx) throws Exception {
|
|||||||
String pattern = "List of all the available keys:";
|
String pattern = "List of all the available keys:";
|
||||||
PipedOutputStream pipeOut = new PipedOutputStream();
|
PipedOutputStream pipeOut = new PipedOutputStream();
|
||||||
PipedInputStream pipeIn = new PipedInputStream(pipeOut);
|
PipedInputStream pipeIn = new PipedInputStream(pipeOut);
|
||||||
|
PrintStream oldErr = System.err;
|
||||||
System.setErr(new PrintStream(pipeOut));
|
System.setErr(new PrintStream(pipeOut));
|
||||||
|
try {
|
||||||
jmx.printAllValues();
|
jmx.printAllValues();
|
||||||
if ((size = pipeIn.available()) != 0) {
|
if ((size = pipeIn.available()) != 0) {
|
||||||
bytes = new byte[size];
|
bytes = new byte[size];
|
||||||
@ -133,6 +135,9 @@ private static boolean checkPrintAllValues(JMXGet jmx) throws Exception {
|
|||||||
}
|
}
|
||||||
pipeOut.close();
|
pipeOut.close();
|
||||||
pipeIn.close();
|
pipeIn.close();
|
||||||
|
} finally {
|
||||||
|
System.setErr(oldErr);
|
||||||
|
}
|
||||||
return bytes != null ? new String(bytes).contains(pattern) : false;
|
return bytes != null ? new String(bytes).contains(pattern) : false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -103,6 +103,8 @@ private static String[] fillArgs(String arg) {
|
|||||||
private void checkOutput(String[] args, String pattern, PrintStream out,
|
private void checkOutput(String[] args, String pattern, PrintStream out,
|
||||||
Class<?> clazz) {
|
Class<?> clazz) {
|
||||||
ByteArrayOutputStream outBytes = new ByteArrayOutputStream();
|
ByteArrayOutputStream outBytes = new ByteArrayOutputStream();
|
||||||
|
PrintStream oldOut = System.out;
|
||||||
|
PrintStream oldErr = System.err;
|
||||||
try {
|
try {
|
||||||
PipedOutputStream pipeOut = new PipedOutputStream();
|
PipedOutputStream pipeOut = new PipedOutputStream();
|
||||||
PipedInputStream pipeIn = new PipedInputStream(pipeOut, PIPE_BUFFER_SIZE);
|
PipedInputStream pipeIn = new PipedInputStream(pipeOut, PIPE_BUFFER_SIZE);
|
||||||
@ -125,6 +127,9 @@ private void checkOutput(String[] args, String pattern, PrintStream out,
|
|||||||
assertTrue(new String(outBytes.toByteArray()).contains(pattern));
|
assertTrue(new String(outBytes.toByteArray()).contains(pattern));
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
fail("checkOutput error " + ex);
|
fail("checkOutput error " + ex);
|
||||||
|
} finally {
|
||||||
|
System.setOut(oldOut);
|
||||||
|
System.setErr(oldErr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -44,10 +44,13 @@ private String runTraceCommand(TraceAdmin trace, String... cmd)
|
|||||||
try {
|
try {
|
||||||
ret = trace.run(cmd);
|
ret = trace.run(cmd);
|
||||||
} finally {
|
} finally {
|
||||||
|
try {
|
||||||
System.out.flush();
|
System.out.flush();
|
||||||
|
} finally {
|
||||||
System.setOut(oldStdout);
|
System.setOut(oldStdout);
|
||||||
System.setErr(oldStderr);
|
System.setErr(oldStderr);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return "ret:" + ret + ", " + baos.toString();
|
return "ret:" + ret + ", " + baos.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user