Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Niefer2010-03-25 21:32:34 +0000
committerAndrew Niefer2010-03-25 21:32:34 +0000
commit36f097652c0d84fdc85a61ce104e1b435a1403cf (patch)
tree995847a41a191e6d907273e7547d6f9b9617cce3 /bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/mirror
parenta4d3ee31129b9eeef0c583851debcf8d2305eae9 (diff)
downloadrt.equinox.p2-36f097652c0d84fdc85a61ce104e1b435a1403cf.tar.gz
rt.equinox.p2-36f097652c0d84fdc85a61ce104e1b435a1403cf.tar.xz
rt.equinox.p2-36f097652c0d84fdc85a61ce104e1b435a1403cf.zip
capture stdout during tests
Diffstat (limited to 'bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/mirror')
-rw-r--r--bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/mirror/ArtifactMirrorApplicationTest.java113
-rw-r--r--bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/mirror/ArtifactRepositoryCleanupTest.java11
-rw-r--r--bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/mirror/MetadataRepositoryCleanupTest.java11
-rw-r--r--bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/mirror/NewMirrorApplicationArtifactTest.java126
4 files changed, 90 insertions, 171 deletions
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/mirror/ArtifactMirrorApplicationTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/mirror/ArtifactMirrorApplicationTest.java
index 15f96e180..eb44203ee 100644
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/mirror/ArtifactMirrorApplicationTest.java
+++ b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/mirror/ArtifactMirrorApplicationTest.java
@@ -29,8 +29,7 @@ import org.eclipse.equinox.p2.query.IQueryResult;
import org.eclipse.equinox.p2.repository.IRepository;
import org.eclipse.equinox.p2.repository.artifact.*;
import org.eclipse.equinox.p2.repository.artifact.spi.ArtifactDescriptor;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-import org.eclipse.equinox.p2.tests.TestActivator;
+import org.eclipse.equinox.p2.tests.*;
import org.eclipse.equinox.spi.p2.publisher.PublisherHelper;
import org.eclipse.osgi.framework.log.FrameworkLog;
import org.eclipse.osgi.util.NLS;
@@ -80,13 +79,25 @@ public class ArtifactMirrorApplicationTest extends AbstractProvisioningTest {
/**
* runs the mirror application with arguments args
*/
- private void runMirrorApplication(String message, final String[] args) throws Exception {
- MirrorApplication application = new MirrorApplication();
- Map map = new HashMap();
- map.put("metadataOrArtifacts", "artifacts");
- application.setInitializationData(null, null, map);
- application.initializeFromArguments(args);
- application.run(null);
+ private StringBuffer runMirrorApplication(String message, final String[] args) throws Exception {
+ StringBuffer buffer = new StringBuffer();
+ PrintStream out = System.out;
+ PrintStream err = System.err;
+ try {
+ PrintStream stream = new PrintStream(new StringBufferStream(buffer));
+ System.setOut(stream);
+ System.setErr(stream);
+ MirrorApplication application = new MirrorApplication();
+ Map map = new HashMap();
+ map.put("metadataOrArtifacts", "artifacts");
+ application.setInitializationData(null, null, map);
+ application.initializeFromArguments(args);
+ application.run(null);
+ } finally {
+ System.setOut(out);
+ System.setErr(err);
+ }
+ return buffer;
}
/**
@@ -1079,23 +1090,10 @@ public class ArtifactMirrorApplicationTest extends AbstractProvisioningTest {
//for Bug 250527
public void testIgnoreErrorsArguement() {
- //Error prints to stderr, redirect that to a file
- PrintStream oldErr = System.err;
- PrintStream newErr = null;
- try {
- destRepoLocation.mkdir();
- newErr = new PrintStream(new FileOutputStream(new File(destRepoLocation, "sys.err")));
- } catch (FileNotFoundException e) {
- fail("Error redirecting outputs", e);
- }
- System.setErr(newErr);
-
+ destRepoLocation.mkdir();
//run test without verbose
mirrorWithError(false);
- System.setErr(oldErr);
- newErr.close();
-
assertEquals("Verifying correct number of Keys", 1, getArtifactKeyCount(destRepoLocation.toURI()));
//Because only 1 of the artifacts exists on disk, the number of artifacts in the destination should only be 1.
//Order in which mirror application mirrors artifacts is random.
@@ -1126,19 +1124,6 @@ public class ArtifactMirrorApplicationTest extends AbstractProvisioningTest {
fail("Error creating repositories", e);
}
- //Comparator prints to stderr, redirect that to a file
- PrintStream oldErr = System.err;
- PrintStream newErr = null;
- PrintStream oldOut = System.out;
- PrintStream newOut = null;
- try {
- newErr = new PrintStream(new FileOutputStream(new File(repo2Location, "sys.err")));
- newOut = new PrintStream(new FileOutputStream(new File(repo2Location, "sys.out")));
- } catch (FileNotFoundException e) {
- fail("Error redirecting outputs", e);
- }
- System.setErr(newErr);
- System.setOut(newOut);
try {
//Set compare flag.
String[] args = new String[] {"-source", repo1Location.toURL().toExternalForm(), "-destination", repo2Location.toURL().toExternalForm(), "-verbose", "-compare", "-comparator", MD5ArtifactComparator.MD5_COMPARATOR_ID};
@@ -1147,10 +1132,6 @@ public class ArtifactMirrorApplicationTest extends AbstractProvisioningTest {
} catch (Exception e) {
fail("Running mirror application with duplicate descriptors with different md5 values failed", e);
}
- System.setErr(oldErr);
- newErr.close();
- System.setOut(oldOut);
- newOut.close();
IArtifactDescriptor[] destDescriptors = repo2.getArtifactDescriptors(descriptor2.getArtifactKey());
assertEquals("Ensuring destination has correct number of descriptors", 1, destDescriptors.length);
@@ -1195,20 +1176,6 @@ public class ArtifactMirrorApplicationTest extends AbstractProvisioningTest {
fail("Error creating repositories", e);
}
- //Comparator prints to stderr, redirect that to a file
- PrintStream oldErr = System.err;
- PrintStream newErr = null;
- PrintStream oldOut = System.out;
- PrintStream newOut = null;
- try {
- destRepoLocation.mkdir();
- newErr = new PrintStream(new FileOutputStream(new File(destRepoLocation, "sys.err")));
- newOut = new PrintStream(new FileOutputStream(new File(destRepoLocation, "sys.out")));
- } catch (FileNotFoundException e) {
- fail("Error redirecting outputs", e);
- }
- System.setErr(newErr);
- System.setOut(newOut);
try {
//Set compareAgaist
String[] args = new String[] {"-source", repoLocation.toURL().toExternalForm(), "-destination", destRepoLocation.toURL().toExternalForm(), "-compareAgainst", baselineLocation.toURL().toExternalForm(), "-verbose", "-compare", "-comparator", MD5ArtifactComparator.MD5_COMPARATOR_ID};
@@ -1217,10 +1184,6 @@ public class ArtifactMirrorApplicationTest extends AbstractProvisioningTest {
} catch (Exception e) {
fail("Running mirror application with baseline compare", e);
}
- System.setErr(oldErr);
- newErr.close();
- System.setOut(oldOut);
- newOut.close();
IArtifactRepository destination = null;
try {
@@ -1317,23 +1280,9 @@ public class ArtifactMirrorApplicationTest extends AbstractProvisioningTest {
assertNotNull("Assert log file is not null", log);
assertTrue("Clearing log file", log.getFile().delete());
- //Comparator prints to stderr, redirect that to a file
- PrintStream oldErr = System.err;
- PrintStream newErr = null;
- try {
- destRepoLocation.mkdir();
- newErr = new PrintStream(new FileOutputStream(new File(destRepoLocation, "sys.err")));
- } catch (FileNotFoundException e) {
- fail("Error redirecting outputs", e);
- }
- System.setErr(newErr);
-
//run test without verbose resulting in error
mirrorWithError(false);
- System.setErr(oldErr);
- newErr.close();
-
//verify log
try {
String[] parts = new String[] {"java.io.FileNotFoundException: ", "helloworld_1.0.0.jar"};
@@ -1371,21 +1320,6 @@ public class ArtifactMirrorApplicationTest extends AbstractProvisioningTest {
assertNotNull("Assert log file is not null", log);
assertTrue("Clearing log file", log.getFile().delete());
- //Comparator prints to stdout, redirect that to a file
- PrintStream oldOut = System.out;
- PrintStream newOut = null;
- PrintStream oldErr = System.err;
- PrintStream newErr = null;
- try {
- destRepoLocation.mkdir();
- newOut = new PrintStream(new FileOutputStream(new File(destRepoLocation, "sys.out")));
- newErr = new PrintStream(new FileOutputStream(new File(destRepoLocation, "sys.err")));
- } catch (FileNotFoundException e) {
- fail("Error redirecting output", e);
- }
- System.setOut(newOut);
- System.setErr(newErr);
-
//run test with verbose, results in error
mirrorWithError(true);
@@ -1412,11 +1346,6 @@ public class ArtifactMirrorApplicationTest extends AbstractProvisioningTest {
fail("Error running mirror application to generate INFO items", e);
}
- System.setOut(oldOut);
- newOut.close();
- System.setErr(oldErr);
- newErr.close();
-
IArtifactRepository sourceRepository = null;
try {
sourceRepository = getArtifactRepositoryManager().loadRepository(sourceRepoLocation.toURI(), null);
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/mirror/ArtifactRepositoryCleanupTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/mirror/ArtifactRepositoryCleanupTest.java
index 3158ca310..455b0b7be 100644
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/mirror/ArtifactRepositoryCleanupTest.java
+++ b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/mirror/ArtifactRepositoryCleanupTest.java
@@ -11,10 +11,12 @@
package org.eclipse.equinox.p2.tests.mirror;
import java.io.File;
+import java.io.PrintStream;
import org.eclipse.equinox.p2.core.ProvisionException;
import org.eclipse.equinox.p2.internal.repository.tools.MirrorApplication;
import org.eclipse.equinox.p2.repository.artifact.IArtifactRepositoryManager;
import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
+import org.eclipse.equinox.p2.tests.StringBufferStream;
/**
* Test to ensure MirrorApplication handles loading an removing repositories correctly
@@ -54,7 +56,14 @@ public class ArtifactRepositoryCleanupTest extends AbstractProvisioningTest {
MirrorApplication application = new MirrorApplication();
String[] args = new String[] {"-source", source.toURL().toExternalForm(), "-destination", destination.toURL().toExternalForm(), append ? "-append" : ""};
application.initializeFromArguments(args);
- application.run(null);
+
+ PrintStream out = System.out;
+ try {
+ System.setOut(new PrintStream(new StringBufferStream()));
+ application.run(null);
+ } finally {
+ System.setOut(out);
+ }
}
/**
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/mirror/MetadataRepositoryCleanupTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/mirror/MetadataRepositoryCleanupTest.java
index 5ecfe2dc5..77a84115a 100644
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/mirror/MetadataRepositoryCleanupTest.java
+++ b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/mirror/MetadataRepositoryCleanupTest.java
@@ -11,10 +11,12 @@
package org.eclipse.equinox.p2.tests.mirror;
import java.io.File;
+import java.io.PrintStream;
import org.eclipse.equinox.p2.core.ProvisionException;
import org.eclipse.equinox.p2.internal.repository.tools.MirrorApplication;
import org.eclipse.equinox.p2.repository.metadata.IMetadataRepositoryManager;
import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
+import org.eclipse.equinox.p2.tests.StringBufferStream;
/**
* Test to ensure MirrorApplication handles loading an removing repositories correctly
@@ -54,7 +56,14 @@ public class MetadataRepositoryCleanupTest extends AbstractProvisioningTest {
MirrorApplication application = new MirrorApplication();
String[] args = new String[] {"-source", source.toURL().toExternalForm(), "-destination", destination.toURL().toExternalForm(), append ? "-append" : ""};
application.initializeFromArguments(args);
- application.run(null);
+
+ PrintStream out = System.out;
+ try {
+ System.setOut(new PrintStream(new StringBufferStream()));
+ application.run(null);
+ } finally {
+ System.setOut(out);
+ }
}
/**
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/mirror/NewMirrorApplicationArtifactTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/mirror/NewMirrorApplicationArtifactTest.java
index 2a675de36..f96a6c341 100644
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/mirror/NewMirrorApplicationArtifactTest.java
+++ b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/mirror/NewMirrorApplicationArtifactTest.java
@@ -30,8 +30,7 @@ import org.eclipse.equinox.p2.query.IQueryResult;
import org.eclipse.equinox.p2.repository.IRepository;
import org.eclipse.equinox.p2.repository.artifact.*;
import org.eclipse.equinox.p2.repository.artifact.spi.ArtifactDescriptor;
-import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
-import org.eclipse.equinox.p2.tests.TestActivator;
+import org.eclipse.equinox.p2.tests.*;
import org.eclipse.equinox.spi.p2.publisher.PublisherHelper;
import org.eclipse.osgi.framework.log.FrameworkLog;
import org.eclipse.osgi.util.NLS;
@@ -78,7 +77,7 @@ public class NewMirrorApplicationArtifactTest extends AbstractProvisioningTest {
super.tearDown();
}
- private void basicRunMirrorApplication(String message, URI source, URI destination, Boolean append, Boolean formatDestination, String destName) throws Exception {
+ private StringBuffer basicRunMirrorApplication(String message, URI source, URI destination, Boolean append, Boolean formatDestination, String destName) throws Exception {
MirrorApplication app = new MirrorApplication();
if (destination != null) {
@@ -94,15 +93,24 @@ public class NewMirrorApplicationArtifactTest extends AbstractProvisioningTest {
RepositoryDescriptor src = createRepositoryDescriptor(source, null, null, null);
app.addSource(src);
}
- app.run(null);
+
+ StringBuffer buffer = new StringBuffer();
+ PrintStream out = System.out;
+ try {
+ System.setOut(new PrintStream(new StringBufferStream(buffer)));
+ app.run(null);
+ } finally {
+ System.setOut(out);
+ }
+ return buffer;
}
- private void basicRunMirrorApplication(String message, URI source, URI destination, Boolean append, Boolean formatDestination) throws Exception {
- basicRunMirrorApplication(message, source, destination, append, formatDestination, null);
+ private StringBuffer basicRunMirrorApplication(String message, URI source, URI destination, Boolean append, Boolean formatDestination) throws Exception {
+ return basicRunMirrorApplication(message, source, destination, append, formatDestination, null);
}
- private void basicRunMirrorApplication(String message, URI source, URI destination) throws Exception {
- basicRunMirrorApplication(message, source, destination, null, null, null);
+ private StringBuffer basicRunMirrorApplication(String message, URI source, URI destination) throws Exception {
+ return basicRunMirrorApplication(message, source, destination, null, null, null);
}
private RepositoryDescriptor createRepositoryDescriptor(URI location, Boolean append, URI format, String name) {
@@ -293,7 +301,9 @@ public class NewMirrorApplicationArtifactTest extends AbstractProvisioningTest {
File errorSourceLocation = getTestData("loading error data", "testData/artifactRepo/missingSingleArtifact");
File validSourceLocation = getTestData("loading error data", "testData/artifactRepo/simple");
//repo contains an artifact entry for a file that does not exist on disk. this should throw a file not found exception
+ PrintStream out = System.out;
try {
+ System.setOut(new PrintStream(new StringBufferStream()));
MirrorApplication app = new MirrorApplication();
app.addSource(createRepositoryDescriptor(errorSourceLocation.toURI(), null, null, null));
app.addSource(createRepositoryDescriptor(validSourceLocation.toURI(), null, null, null));
@@ -305,6 +315,8 @@ public class NewMirrorApplicationArtifactTest extends AbstractProvisioningTest {
app.run(null);
} catch (Exception e) {
fail("Running mirror application with errored source failed", e);
+ } finally {
+ System.setOut(out);
}
}
@@ -852,7 +864,10 @@ public class NewMirrorApplicationArtifactTest extends AbstractProvisioningTest {
}
assertEquals("Assert name is set correctly before mirror", oldName, destinationRepo.getName());
+ StringBuffer buffer = new StringBuffer();
+ PrintStream out = System.out;
try {
+ System.setOut(new PrintStream(new StringBufferStream(buffer)));
MirrorApplication app = new MirrorApplication();
app.addSource(createRepositoryDescriptor(sourceRepoLocation.toURI(), null, null, null));
app.addDestination(createRepositoryDescriptor(destRepoLocation.toURI(), null, null, newName));
@@ -861,6 +876,8 @@ public class NewMirrorApplicationArtifactTest extends AbstractProvisioningTest {
} catch (Exception e) {
fail("Error running mirror application", e);
+ } finally {
+ System.setOut(out);
}
try {
@@ -1144,20 +1161,9 @@ public class NewMirrorApplicationArtifactTest extends AbstractProvisioningTest {
fail("Error creating repositories", e);
}
- //Comparator prints to stderr, redirect that to a file
- PrintStream oldErr = System.err;
- PrintStream newErr = null;
- PrintStream oldOut = System.out;
- PrintStream newOut = null;
+ PrintStream out = System.out;
try {
- try {
- newErr = new PrintStream(new FileOutputStream(new File(repo2Location, "sys.err")));
- newOut = new PrintStream(new FileOutputStream(new File(repo2Location, "sys.out")));
- } catch (FileNotFoundException e) {
- fail("Error redirecting outputs", e);
- }
- System.setErr(newErr);
- System.setOut(newOut);
+ System.setOut(new PrintStream(new StringBufferStream()));
MirrorApplication app = null;
try {
app = new MirrorApplication();
@@ -1172,12 +1178,7 @@ public class NewMirrorApplicationArtifactTest extends AbstractProvisioningTest {
fail("Running mirror application with duplicate descriptors with different md5 values failed", e);
}
} finally {
- System.setErr(oldErr);
- if (newErr != null)
- newErr.close();
- System.setOut(oldOut);
- if (newOut != null)
- newOut.close();
+ System.setOut(out);
}
IArtifactDescriptor[] destDescriptors = repo2.getArtifactDescriptors(descriptor2.getArtifactKey());
@@ -1223,43 +1224,25 @@ public class NewMirrorApplicationArtifactTest extends AbstractProvisioningTest {
fail("Error creating repositories", e);
}
- //Comparator prints to stderr, redirect that to a file
- PrintStream oldErr = System.err;
- PrintStream newErr = null;
- PrintStream oldOut = System.out;
- PrintStream newOut = null;
+ MirrorApplication app = null;
+ PrintStream out = System.out;
try {
- try {
- destRepoLocation.mkdir();
- newErr = new PrintStream(new FileOutputStream(new File(destRepoLocation, "sys.err")));
- newOut = new PrintStream(new FileOutputStream(new File(destRepoLocation, "sys.out")));
- } catch (FileNotFoundException e) {
- fail("Error redirecting outputs", e);
- }
- System.setErr(newErr);
- System.setOut(newOut);
- MirrorApplication app = null;
- try {
- app = new MirrorApplication();
- app.addSource(createRepositoryDescriptor(repoLocation.toURI(), null, null, null));
- app.addDestination(createRepositoryDescriptor(destRepoLocation.toURI(), null, null, null));
- //Set baseline
- app.setBaseline(baselineLocation.toURI());
- app.setVerbose(true);
- //Set compare flag.
- app.setCompare(true);
- //run the mirror application
- app.run(null);
- } catch (Exception e) {
- fail("Running mirror application with baseline compare", e);
- }
+ System.setOut(new PrintStream(new StringBufferStream()));
+ app = new MirrorApplication();
+ app.addSource(createRepositoryDescriptor(repoLocation.toURI(), null, null, null));
+ app.addDestination(createRepositoryDescriptor(destRepoLocation.toURI(), null, null, null));
+ //Set baseline
+ app.setBaseline(baselineLocation.toURI());
+ app.setVerbose(true);
+ //Set compare flag.
+ app.setCompare(true);
+ //run the mirror application
+ app.run(null);
+ } catch (Exception e) {
+ fail("Running mirror application with baseline compare", e);
+
} finally {
- System.setErr(oldErr);
- if (newErr != null)
- newErr.close();
- System.setOut(oldOut);
- if (newOut != null)
- newOut.close();
+ System.setOut(out);
}
IArtifactRepository destination = null;
@@ -1299,7 +1282,7 @@ public class NewMirrorApplicationArtifactTest extends AbstractProvisioningTest {
manager.removeRepository(srcLocation);
}
- public Iterator<IArtifactKey> everything() {
+ public synchronized Iterator<IArtifactKey> everything() {
return ((SimpleArtifactRepository) source).everything();
}
@@ -1355,24 +1338,13 @@ public class NewMirrorApplicationArtifactTest extends AbstractProvisioningTest {
assertNotNull("Assert log file is not null", log);
assertTrue("Clearing log file", log.getFile().delete());
- //Comparator prints to stderr, redirect that to a file
- PrintStream oldErr = System.err;
- PrintStream newErr = null;
+ PrintStream out = System.out;
try {
- try {
- destRepoLocation.mkdir();
- newErr = new PrintStream(new FileOutputStream(new File(destRepoLocation, "sys.err")));
- } catch (FileNotFoundException e) {
- fail("Error redirecting outputs", e);
- }
- System.setErr(newErr);
-
+ System.setOut(new PrintStream(new StringBufferStream()));
//run test without verbose resulting in error
mirrorWithError(false);
} finally {
- System.setErr(oldErr);
- if (newErr != null)
- newErr.close();
+ System.setOut(out);
}
//verify log
try {

Back to the top