You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by hi...@apache.org on 2017/05/25 15:00:13 UTC
ant-ivy git commit: Fix transient test failures - Don't share/update
the MockMessageLogger between test methods
Repository: ant-ivy
Updated Branches:
refs/heads/master 239bc0b04 -> da69323b2
Fix transient test failures - Don't share/update the MockMessageLogger between test methods
Project: http://git-wip-us.apache.org/repos/asf/ant-ivy/repo
Commit: http://git-wip-us.apache.org/repos/asf/ant-ivy/commit/da69323b
Tree: http://git-wip-us.apache.org/repos/asf/ant-ivy/tree/da69323b
Diff: http://git-wip-us.apache.org/repos/asf/ant-ivy/diff/da69323b
Branch: refs/heads/master
Commit: da69323b29fe8e373364b9399bc67523dcf2af62
Parents: 239bc0b
Author: Jaikiran Pai <ja...@gmail.com>
Authored: Sat May 20 09:13:17 2017 +0530
Committer: Jaikiran Pai <ja...@gmail.com>
Committed: Wed May 24 22:10:14 2017 +0530
----------------------------------------------------------------------
.../IgnoreCircularDependencyStrategyTest.java | 25 ++++++++-
.../WarnCircularDependencyStrategyTest.java | 54 ++++++++++++++------
.../org/apache/ivy/util/MockMessageLogger.java | 1 +
3 files changed, 62 insertions(+), 18 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ant-ivy/blob/da69323b/test/java/org/apache/ivy/plugins/circular/IgnoreCircularDependencyStrategyTest.java
----------------------------------------------------------------------
diff --git a/test/java/org/apache/ivy/plugins/circular/IgnoreCircularDependencyStrategyTest.java b/test/java/org/apache/ivy/plugins/circular/IgnoreCircularDependencyStrategyTest.java
index 2c60c35..10bc5c4 100644
--- a/test/java/org/apache/ivy/plugins/circular/IgnoreCircularDependencyStrategyTest.java
+++ b/test/java/org/apache/ivy/plugins/circular/IgnoreCircularDependencyStrategyTest.java
@@ -18,7 +18,9 @@
package org.apache.ivy.plugins.circular;
import org.apache.ivy.TestHelper;
+import org.apache.ivy.core.IvyContext;
import org.apache.ivy.util.Message;
+import org.apache.ivy.util.MessageLoggerEngine;
import org.apache.ivy.util.MockMessageLogger;
import junit.framework.TestCase;
@@ -27,12 +29,17 @@ public class IgnoreCircularDependencyStrategyTest extends TestCase {
private CircularDependencyStrategy strategy;
private MockMessageLogger mockMessageImpl;
+ private MessageLoggerEngine messageLoggerEngine;
protected void setUp() throws Exception {
strategy = IgnoreCircularDependencyStrategy.getInstance();
mockMessageImpl = new MockMessageLogger();
- Message.setDefaultLogger(mockMessageImpl);
+ messageLoggerEngine = setupMockLogger(mockMessageImpl);
+ }
+
+ protected void tearDown() throws Exception {
+ resetMockLogger(messageLoggerEngine);
}
public void testLog() throws Exception {
@@ -48,4 +55,20 @@ public class IgnoreCircularDependencyStrategyTest extends TestCase {
// should only log the circular dependency once
assertEquals(1, mockMessageImpl.getLogs().size());
}
+
+ private MessageLoggerEngine setupMockLogger(final MockMessageLogger mockLogger) {
+ if (mockLogger == null) {
+ return null;
+ }
+ final MessageLoggerEngine loggerEngine = IvyContext.getContext().getIvy().getLoggerEngine();
+ loggerEngine.pushLogger(mockLogger);
+ return loggerEngine;
+ }
+
+ private void resetMockLogger(final MessageLoggerEngine loggerEngine) {
+ if (loggerEngine == null) {
+ return;
+ }
+ loggerEngine.popLogger();
+ }
}
http://git-wip-us.apache.org/repos/asf/ant-ivy/blob/da69323b/test/java/org/apache/ivy/plugins/circular/WarnCircularDependencyStrategyTest.java
----------------------------------------------------------------------
diff --git a/test/java/org/apache/ivy/plugins/circular/WarnCircularDependencyStrategyTest.java b/test/java/org/apache/ivy/plugins/circular/WarnCircularDependencyStrategyTest.java
index 3901ce3..b37f1b4 100644
--- a/test/java/org/apache/ivy/plugins/circular/WarnCircularDependencyStrategyTest.java
+++ b/test/java/org/apache/ivy/plugins/circular/WarnCircularDependencyStrategyTest.java
@@ -17,6 +17,7 @@
*/
package org.apache.ivy.plugins.circular;
+import junit.framework.TestCase;
import org.apache.ivy.TestHelper;
import org.apache.ivy.core.IvyContext;
import org.apache.ivy.core.event.EventManager;
@@ -25,31 +26,33 @@ import org.apache.ivy.core.resolve.ResolveEngine;
import org.apache.ivy.core.resolve.ResolveOptions;
import org.apache.ivy.core.settings.IvySettings;
import org.apache.ivy.core.sort.SortEngine;
-import org.apache.ivy.util.Message;
+import org.apache.ivy.util.MessageLoggerEngine;
import org.apache.ivy.util.MockMessageLogger;
-import junit.framework.TestCase;
-
public class WarnCircularDependencyStrategyTest extends TestCase {
private CircularDependencyStrategy strategy;
- private MockMessageLogger mockMessageImpl;
+ private MessageLoggerEngine loggerEngine;
+ private MockMessageLogger mockMessageLogger;
protected void setUp() throws Exception {
+ // setup a new IvyContext for each test
+ IvyContext.pushNewContext();
strategy = WarnCircularDependencyStrategy.getInstance();
-
- resetLogger();
+ mockMessageLogger = new MockMessageLogger();
+ loggerEngine = setupMockLogger(mockMessageLogger);
}
- private void resetLogger() {
- mockMessageImpl = new MockMessageLogger();
- Message.setDefaultLogger(mockMessageImpl);
+ protected void tearDown() throws Exception {
+ resetMockLogger(loggerEngine);
+ // pop the context we setup before
+ IvyContext.popContext();
}
+
public void testLog() throws Exception {
strategy.handleCircularDependency(TestHelper.parseMridsToArray("#A;1.0, #B;1.0"));
-
- mockMessageImpl.assertLogWarningContains("circular dependency found: #A;1.0->#B;1.0");
+ mockMessageLogger.assertLogWarningContains("circular dependency found: #A;1.0->#B;1.0");
}
public void testRemoveDuplicates() throws Exception {
@@ -57,28 +60,29 @@ public class WarnCircularDependencyStrategyTest extends TestCase {
strategy.handleCircularDependency(TestHelper.parseMridsToArray("#A;1.1, #B;1.0"));
// should only log the circular dependency once
- assertEquals(1, mockMessageImpl.getLogs().size());
+ assertEquals(1, mockMessageLogger.getWarns().size());
}
public void testRemoveDuplicates2() throws Exception {
setResolveContext("1");
- resetLogger();
strategy.handleCircularDependency(TestHelper.parseMridsToArray("#A;1.1, #B;1.0"));
strategy.handleCircularDependency(TestHelper.parseMridsToArray("#A;1.1, #B;1.0"));
// should only log the circular dependency once
- assertEquals(1, mockMessageImpl.getLogs().size());
+ assertEquals(1, mockMessageLogger.getWarns().size());
setResolveContext("2");
- resetLogger();
+ // clear previous logs
+ mockMessageLogger.clear();
+
strategy.handleCircularDependency(TestHelper.parseMridsToArray("#A;1.1, #B;1.0"));
// should log the message
- assertEquals(1, mockMessageImpl.getLogs().size());
+ assertEquals(1, mockMessageLogger.getWarns().size());
strategy.handleCircularDependency(TestHelper.parseMridsToArray("#A;1.1, #B;1.0"));
// should not log the message again
- assertEquals(1, mockMessageImpl.getLogs().size());
+ assertEquals(1, mockMessageLogger.getWarns().size());
}
private void setResolveContext(String resolveId) {
@@ -87,4 +91,20 @@ public class WarnCircularDependencyStrategyTest extends TestCase {
new ResolveData(new ResolveEngine(settings, new EventManager(),
new SortEngine(settings)), new ResolveOptions().setResolveId(resolveId)));
}
+
+ private MessageLoggerEngine setupMockLogger(final MockMessageLogger mockLogger) {
+ if (mockLogger == null) {
+ return null;
+ }
+ final MessageLoggerEngine loggerEngine = IvyContext.getContext().getIvy().getLoggerEngine();
+ loggerEngine.pushLogger(mockLogger);
+ return loggerEngine;
+ }
+
+ private void resetMockLogger(final MessageLoggerEngine loggerEngine) {
+ if (loggerEngine == null) {
+ return;
+ }
+ loggerEngine.popLogger();
+ }
}
http://git-wip-us.apache.org/repos/asf/ant-ivy/blob/da69323b/test/java/org/apache/ivy/util/MockMessageLogger.java
----------------------------------------------------------------------
diff --git a/test/java/org/apache/ivy/util/MockMessageLogger.java b/test/java/org/apache/ivy/util/MockMessageLogger.java
index c38d0ef..abaf47f 100644
--- a/test/java/org/apache/ivy/util/MockMessageLogger.java
+++ b/test/java/org/apache/ivy/util/MockMessageLogger.java
@@ -66,6 +66,7 @@ public class MockMessageLogger extends AbstractMessageLogger {
}
public void clear() {
+ super.clearProblems();
_logs.clear();
_rawLogs.clear();
_endProgress.clear();