diff options
author | Andrew Niefer | 2010-03-25 21:32:34 +0000 |
---|---|---|
committer | Andrew Niefer | 2010-03-25 21:32:34 +0000 |
commit | 36f097652c0d84fdc85a61ce104e1b435a1403cf (patch) | |
tree | 995847a41a191e6d907273e7547d6f9b9617cce3 /bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/mirror | |
parent | a4d3ee31129b9eeef0c583851debcf8d2305eae9 (diff) | |
download | rt.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')
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 { |