You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by dw...@apache.org on 2014/04/30 14:42:41 UTC
svn commit: r1591273 - in /lucene/dev/branches/branch_4x: ./ dev-tools/
lucene/ lucene/analysis/
lucene/analysis/common/src/test/org/apache/lucene/analysis/core/
lucene/analysis/stempel/src/test/org/egothor/stemmer/
lucene/analysis/uima/src/test/org/ap...
Author: dweiss
Date: Wed Apr 30 12:42:40 2014
New Revision: 1591273
URL: http://svn.apache.org/r1591273
Log:
LUCENE-5622: Fail tests if they print over the given limit of bytes to System.out or System.err
Added:
lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/util/TestRuleLimitSysouts.java
- copied, changed from r1591222, lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/util/TestRuleLimitSysouts.java
Modified:
lucene/dev/branches/branch_4x/ (props changed)
lucene/dev/branches/branch_4x/dev-tools/ (props changed)
lucene/dev/branches/branch_4x/lucene/ (props changed)
lucene/dev/branches/branch_4x/lucene/CHANGES.txt (contents, props changed)
lucene/dev/branches/branch_4x/lucene/analysis/ (props changed)
lucene/dev/branches/branch_4x/lucene/analysis/common/src/test/org/apache/lucene/analysis/core/TestBugInSomething.java
lucene/dev/branches/branch_4x/lucene/analysis/stempel/src/test/org/egothor/stemmer/TestCompile.java
lucene/dev/branches/branch_4x/lucene/analysis/uima/src/test/org/apache/lucene/analysis/uima/UIMABaseAnalyzerTest.java
lucene/dev/branches/branch_4x/lucene/analysis/uima/src/test/org/apache/lucene/analysis/uima/UIMATypeAwareAnalyzerTest.java
lucene/dev/branches/branch_4x/lucene/benchmark/ (props changed)
lucene/dev/branches/branch_4x/lucene/benchmark/src/test/org/apache/lucene/benchmark/BenchmarkTestCase.java
lucene/dev/branches/branch_4x/lucene/benchmark/src/test/org/apache/lucene/benchmark/byTask/TestPerfTasksLogic.java
lucene/dev/branches/branch_4x/lucene/benchmark/src/test/org/apache/lucene/benchmark/byTask/TestPerfTasksParse.java
lucene/dev/branches/branch_4x/lucene/benchmark/src/test/org/apache/lucene/benchmark/quality/TestQualityRun.java
lucene/dev/branches/branch_4x/lucene/codecs/ (props changed)
lucene/dev/branches/branch_4x/lucene/common-build.xml (contents, props changed)
lucene/dev/branches/branch_4x/lucene/core/ (props changed)
lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/codecs/compressing/TestFastCompressionMode.java
lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/util/junitcompat/TestExceptionInBeforeClassHooks.java
lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/util/junitcompat/TestFailIfDirectoryNotClosed.java
lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/util/junitcompat/TestSameRandomnessLocalePassedOrNot.java
lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/util/junitcompat/TestSeedFromUncaught.java
lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/util/junitcompat/WithNestedTests.java
lucene/dev/branches/branch_4x/lucene/demo/ (props changed)
lucene/dev/branches/branch_4x/lucene/demo/src/test/org/apache/lucene/demo/TestDemo.java
lucene/dev/branches/branch_4x/lucene/facet/ (props changed)
lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/TestDrillDownQuery.java
lucene/dev/branches/branch_4x/lucene/misc/ (props changed)
lucene/dev/branches/branch_4x/lucene/misc/src/test/org/apache/lucene/document/TestLazyDocument.java
lucene/dev/branches/branch_4x/lucene/misc/src/test/org/apache/lucene/index/TestMultiPassIndexSplitter.java
lucene/dev/branches/branch_4x/lucene/queryparser/ (props changed)
lucene/dev/branches/branch_4x/lucene/replicator/ (props changed)
lucene/dev/branches/branch_4x/lucene/replicator/src/test/org/apache/lucene/replicator/http/HttpReplicatorTest.java
lucene/dev/branches/branch_4x/lucene/spatial/ (props changed)
lucene/dev/branches/branch_4x/lucene/spatial/src/test/org/apache/lucene/spatial/SpatialTestCase.java
lucene/dev/branches/branch_4x/lucene/test-framework/ (props changed)
lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/util/LuceneTestCase.java
lucene/dev/branches/branch_4x/solr/ (props changed)
lucene/dev/branches/branch_4x/solr/CHANGES.txt (props changed)
lucene/dev/branches/branch_4x/solr/contrib/ (props changed)
lucene/dev/branches/branch_4x/solr/core/ (props changed)
lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/cloud/TestMiniSolrCloudCluster.java
lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/util/TestRandomMergePolicy.java
lucene/dev/branches/branch_4x/solr/example/ (props changed)
lucene/dev/branches/branch_4x/solr/solrj/ (props changed)
lucene/dev/branches/branch_4x/solr/test-framework/ (props changed)
lucene/dev/branches/branch_4x/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java
Modified: lucene/dev/branches/branch_4x/lucene/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/CHANGES.txt?rev=1591273&r1=1591272&r2=1591273&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/CHANGES.txt (original)
+++ lucene/dev/branches/branch_4x/lucene/CHANGES.txt Wed Apr 30 12:42:40 2014
@@ -51,6 +51,11 @@ Bug fixes
* LUCENE-5559: Add additional argument validation for CapitalizationFilter
and CodepointCountFilter. (Ahmet Arslan via Robert Muir)
+Test Framework
+
+* LUCENE-5622: Fail tests if they print over the given limit of bytes to
+ System.out or System.err. (Robert Muir, Dawid Weiss)
+
======================= Lucene 4.8.0 =======================
System Requirements
Modified: lucene/dev/branches/branch_4x/lucene/analysis/common/src/test/org/apache/lucene/analysis/core/TestBugInSomething.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/analysis/common/src/test/org/apache/lucene/analysis/core/TestBugInSomething.java?rev=1591273&r1=1591272&r2=1591273&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/analysis/common/src/test/org/apache/lucene/analysis/core/TestBugInSomething.java (original)
+++ lucene/dev/branches/branch_4x/lucene/analysis/common/src/test/org/apache/lucene/analysis/core/TestBugInSomething.java Wed Apr 30 12:42:40 2014
@@ -218,7 +218,7 @@ public class TestBugInSomething extends
@Override
public boolean incrementToken() throws IOException {
if (input.incrementToken()) {
- System.out.println(input.getClass().getSimpleName() + "->" + this.reflectAsString(false));
+ if (VERBOSE) System.out.println(input.getClass().getSimpleName() + "->" + this.reflectAsString(false));
return true;
} else {
return false;
@@ -228,19 +228,19 @@ public class TestBugInSomething extends
@Override
public void end() throws IOException {
super.end();
- System.out.println(input.getClass().getSimpleName() + ".end()");
+ if (VERBOSE) System.out.println(input.getClass().getSimpleName() + ".end()");
}
@Override
public void close() throws IOException {
super.close();
- System.out.println(input.getClass().getSimpleName() + ".close()");
+ if (VERBOSE) System.out.println(input.getClass().getSimpleName() + ".close()");
}
@Override
public void reset() throws IOException {
super.reset();
- System.out.println(input.getClass().getSimpleName() + ".reset()");
+ if (VERBOSE) System.out.println(input.getClass().getSimpleName() + ".reset()");
}
}
Modified: lucene/dev/branches/branch_4x/lucene/analysis/stempel/src/test/org/egothor/stemmer/TestCompile.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/analysis/stempel/src/test/org/egothor/stemmer/TestCompile.java?rev=1591273&r1=1591272&r2=1591273&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/analysis/stempel/src/test/org/egothor/stemmer/TestCompile.java (original)
+++ lucene/dev/branches/branch_4x/lucene/analysis/stempel/src/test/org/egothor/stemmer/TestCompile.java Wed Apr 30 12:42:40 2014
@@ -70,7 +70,7 @@ import java.util.Locale;
import java.util.StringTokenizer;
import org.apache.lucene.util.LuceneTestCase;
-import org.apache.lucene.util.TestUtil;
+import org.apache.lucene.util.LuceneTestCase.SuppressSysoutChecks;
public class TestCompile extends LuceneTestCase {
Modified: lucene/dev/branches/branch_4x/lucene/analysis/uima/src/test/org/apache/lucene/analysis/uima/UIMABaseAnalyzerTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/analysis/uima/src/test/org/apache/lucene/analysis/uima/UIMABaseAnalyzerTest.java?rev=1591273&r1=1591272&r2=1591273&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/analysis/uima/src/test/org/apache/lucene/analysis/uima/UIMABaseAnalyzerTest.java (original)
+++ lucene/dev/branches/branch_4x/lucene/analysis/uima/src/test/org/apache/lucene/analysis/uima/UIMABaseAnalyzerTest.java Wed Apr 30 12:42:40 2014
@@ -30,7 +30,6 @@ import org.apache.lucene.search.MatchAll
import org.apache.lucene.search.TopDocs;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.RAMDirectory;
-import org.apache.lucene.util.Version;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
Modified: lucene/dev/branches/branch_4x/lucene/analysis/uima/src/test/org/apache/lucene/analysis/uima/UIMATypeAwareAnalyzerTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/analysis/uima/src/test/org/apache/lucene/analysis/uima/UIMATypeAwareAnalyzerTest.java?rev=1591273&r1=1591272&r2=1591273&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/analysis/uima/src/test/org/apache/lucene/analysis/uima/UIMATypeAwareAnalyzerTest.java (original)
+++ lucene/dev/branches/branch_4x/lucene/analysis/uima/src/test/org/apache/lucene/analysis/uima/UIMATypeAwareAnalyzerTest.java Wed Apr 30 12:42:40 2014
@@ -19,6 +19,7 @@ package org.apache.lucene.analysis.uima;
import org.apache.lucene.analysis.BaseTokenStreamTestCase;
import org.apache.lucene.analysis.TokenStream;
+import org.apache.lucene.util.LuceneTestCase.SuppressSysoutChecks;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
Modified: lucene/dev/branches/branch_4x/lucene/benchmark/src/test/org/apache/lucene/benchmark/BenchmarkTestCase.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/benchmark/src/test/org/apache/lucene/benchmark/BenchmarkTestCase.java?rev=1591273&r1=1591272&r2=1591273&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/benchmark/src/test/org/apache/lucene/benchmark/BenchmarkTestCase.java (original)
+++ lucene/dev/branches/branch_4x/lucene/benchmark/src/test/org/apache/lucene/benchmark/BenchmarkTestCase.java Wed Apr 30 12:42:40 2014
@@ -26,7 +26,7 @@ import java.io.StringReader;
import org.apache.lucene.benchmark.byTask.Benchmark;
import org.apache.lucene.util.LuceneTestCase;
-import org.apache.lucene.util.TestUtil;
+import org.apache.lucene.util.LuceneTestCase.SuppressSysoutChecks;
import org.junit.AfterClass;
import org.junit.BeforeClass;
Modified: lucene/dev/branches/branch_4x/lucene/benchmark/src/test/org/apache/lucene/benchmark/byTask/TestPerfTasksLogic.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/benchmark/src/test/org/apache/lucene/benchmark/byTask/TestPerfTasksLogic.java?rev=1591273&r1=1591272&r2=1591273&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/benchmark/src/test/org/apache/lucene/benchmark/byTask/TestPerfTasksLogic.java (original)
+++ lucene/dev/branches/branch_4x/lucene/benchmark/src/test/org/apache/lucene/benchmark/byTask/TestPerfTasksLogic.java Wed Apr 30 12:42:40 2014
@@ -63,6 +63,7 @@ import org.apache.lucene.store.Directory
import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.LuceneTestCase.SuppressCodecs;
import org.apache.lucene.util.TestUtil;
+import org.apache.lucene.util.LuceneTestCase.SuppressSysoutChecks;
/**
* Test very simply that perf tasks - simple algorithms - are doing what they should.
Modified: lucene/dev/branches/branch_4x/lucene/benchmark/src/test/org/apache/lucene/benchmark/byTask/TestPerfTasksParse.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/benchmark/src/test/org/apache/lucene/benchmark/byTask/TestPerfTasksParse.java?rev=1591273&r1=1591272&r2=1591273&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/benchmark/src/test/org/apache/lucene/benchmark/byTask/TestPerfTasksParse.java (original)
+++ lucene/dev/branches/branch_4x/lucene/benchmark/src/test/org/apache/lucene/benchmark/byTask/TestPerfTasksParse.java Wed Apr 30 12:42:40 2014
@@ -37,9 +37,7 @@ import org.apache.lucene.benchmark.byTas
import org.apache.lucene.search.Query;
import org.apache.lucene.store.RAMDirectory;
import org.apache.lucene.util.LuceneTestCase;
-import org.apache.lucene.util.TestUtil;
-
-import com.carrotsearch.randomizedtesting.RandomizedTest;
+import org.apache.lucene.util.LuceneTestCase.SuppressSysoutChecks;
import conf.ConfLoader;
@@ -52,8 +50,7 @@ public class TestPerfTasksParse extends
// properties in effect in all tests here
static final String propPart =
INDENT + "directory=RAMDirectory" + NEW_LINE +
- INDENT + "print.props=false" + NEW_LINE
- ;
+ INDENT + "print.props=false" + NEW_LINE;
/** Test the repetiotion parsing for parallel tasks */
public void testParseParallelTaskSequenceRepetition() throws Exception {
Modified: lucene/dev/branches/branch_4x/lucene/benchmark/src/test/org/apache/lucene/benchmark/quality/TestQualityRun.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/benchmark/src/test/org/apache/lucene/benchmark/quality/TestQualityRun.java?rev=1591273&r1=1591272&r2=1591273&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/benchmark/src/test/org/apache/lucene/benchmark/quality/TestQualityRun.java (original)
+++ lucene/dev/branches/branch_4x/lucene/benchmark/src/test/org/apache/lucene/benchmark/quality/TestQualityRun.java Wed Apr 30 12:42:40 2014
@@ -26,6 +26,7 @@ import org.apache.lucene.index.Directory
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.store.Directory;
+import org.apache.lucene.util.LuceneTestCase.SuppressSysoutChecks;
import java.io.BufferedReader;
import java.io.File;
Modified: lucene/dev/branches/branch_4x/lucene/common-build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/common-build.xml?rev=1591273&r1=1591272&r2=1591273&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/common-build.xml (original)
+++ lucene/dev/branches/branch_4x/lucene/common-build.xml Wed Apr 30 12:42:40 2014
@@ -118,7 +118,7 @@
<property name="tests.verbose" value="false"/>
<property name="tests.infostream" value="${tests.verbose}"/>
<property name="tests.filterstacks" value="true"/>
-
+
<condition property="tests.heapsize" value="768M">
<isset property="run.clover"/>
</condition>
Modified: lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/codecs/compressing/TestFastCompressionMode.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/codecs/compressing/TestFastCompressionMode.java?rev=1591273&r1=1591272&r2=1591273&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/codecs/compressing/TestFastCompressionMode.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/codecs/compressing/TestFastCompressionMode.java Wed Apr 30 12:42:40 2014
@@ -24,5 +24,4 @@ public class TestFastCompressionMode ext
super.setUp();
mode = CompressionMode.FAST;
}
-
}
Modified: lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/util/junitcompat/TestExceptionInBeforeClassHooks.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/util/junitcompat/TestExceptionInBeforeClassHooks.java?rev=1591273&r1=1591272&r2=1591273&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/util/junitcompat/TestExceptionInBeforeClassHooks.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/util/junitcompat/TestExceptionInBeforeClassHooks.java Wed Apr 30 12:42:40 2014
@@ -106,7 +106,7 @@ public class TestExceptionInBeforeClassH
@Test
public void testExceptionInBeforeClassFailsTheTest() {
Result runClasses = JUnitCore.runClasses(Nested1.class);
- Assert.assertEquals(1, runClasses.getFailureCount());
+ assertFailureCount(1, runClasses);
Assert.assertEquals(1, runClasses.getRunCount());
Assert.assertTrue(runClasses.getFailures().get(0).getTrace().contains("foobar"));
}
@@ -114,7 +114,7 @@ public class TestExceptionInBeforeClassH
@Test
public void testExceptionWithinTestFailsTheTest() {
Result runClasses = JUnitCore.runClasses(Nested2.class);
- Assert.assertEquals(3, runClasses.getFailureCount());
+ assertFailureCount(3, runClasses);
Assert.assertEquals(3, runClasses.getRunCount());
ArrayList<String> foobars = new ArrayList<>();
@@ -133,7 +133,7 @@ public class TestExceptionInBeforeClassH
@Test
public void testExceptionWithinBefore() {
Result runClasses = JUnitCore.runClasses(Nested3.class);
- Assert.assertEquals(1, runClasses.getFailureCount());
+ assertFailureCount(1, runClasses);
Assert.assertEquals(1, runClasses.getRunCount());
Assert.assertTrue(runClasses.getFailures().get(0).getTrace().contains("foobar"));
}
Modified: lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/util/junitcompat/TestFailIfDirectoryNotClosed.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/util/junitcompat/TestFailIfDirectoryNotClosed.java?rev=1591273&r1=1591272&r2=1591273&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/util/junitcompat/TestFailIfDirectoryNotClosed.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/util/junitcompat/TestFailIfDirectoryNotClosed.java Wed Apr 30 12:42:40 2014
@@ -22,7 +22,6 @@ import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
-import org.junit.runner.notification.Failure;
import com.carrotsearch.randomizedtesting.RandomizedTest;
@@ -30,7 +29,7 @@ public class TestFailIfDirectoryNotClose
public TestFailIfDirectoryNotClosed() {
super(true);
}
-
+
public static class Nested1 extends WithNestedTests.AbstractNestedTest {
public void testDummy() throws Exception {
Directory dir = newDirectory();
@@ -43,11 +42,7 @@ public class TestFailIfDirectoryNotClose
Result r = JUnitCore.runClasses(Nested1.class);
RandomizedTest.assumeTrue("Ignoring nested test, very likely zombie threads present.",
r.getIgnoreCount() == 0);
-
- for (Failure f : r.getFailures()) {
- System.out.println("Failure: " + f);
- }
- Assert.assertEquals(1, r.getFailureCount());
+ assertFailureCount(1, r);
Assert.assertTrue(r.getFailures().get(0).toString().contains("Resource in scope SUITE failed to close"));
}
}
Modified: lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/util/junitcompat/TestSameRandomnessLocalePassedOrNot.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/util/junitcompat/TestSameRandomnessLocalePassedOrNot.java?rev=1591273&r1=1591272&r2=1591273&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/util/junitcompat/TestSameRandomnessLocalePassedOrNot.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/util/junitcompat/TestSameRandomnessLocalePassedOrNot.java Wed Apr 30 12:42:40 2014
@@ -3,6 +3,7 @@ package org.apache.lucene.util.junitcomp
import java.util.*;
import org.apache.lucene.util.TestUtil;
+import org.apache.lucene.util.LuceneTestCase.SuppressSysoutChecks;
import org.junit.*;
import org.junit.rules.RuleChain;
import org.junit.rules.TestRule;
Modified: lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/util/junitcompat/TestSeedFromUncaught.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/util/junitcompat/TestSeedFromUncaught.java?rev=1591273&r1=1591272&r2=1591273&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/util/junitcompat/TestSeedFromUncaught.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/util/junitcompat/TestSeedFromUncaught.java Wed Apr 30 12:42:40 2014
@@ -18,6 +18,7 @@ package org.apache.lucene.util.junitcomp
*/
import org.apache.lucene.util.LuceneTestCase;
+import org.apache.lucene.util.LuceneTestCase.SuppressSysoutChecks;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.JUnitCore;
@@ -53,7 +54,7 @@ public class TestSeedFromUncaught extend
@Test
public void testUncaughtDumpsSeed() {
Result result = JUnitCore.runClasses(ThrowInUncaught.class);
- Assert.assertEquals(1, result.getFailureCount());
+ assertFailureCount(1, result);
Failure f = result.getFailures().get(0);
String trace = f.getTrace();
Assert.assertTrue(trace.contains("SeedInfo.seed("));
Modified: lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/util/junitcompat/WithNestedTests.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/util/junitcompat/WithNestedTests.java?rev=1591273&r1=1591272&r2=1591273&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/util/junitcompat/WithNestedTests.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/util/junitcompat/WithNestedTests.java Wed Apr 30 12:42:40 2014
@@ -29,6 +29,7 @@ import org.apache.lucene.util.LuceneTest
import org.apache.lucene.util.TestRuleIgnoreAfterMaxFailures;
import org.apache.lucene.util.TestRuleIgnoreTestSuites;
import org.apache.lucene.util.TestRuleMarkFailure;
+import org.apache.lucene.util.LuceneTestCase.SuppressSysoutChecks;
import org.junit.After;
import org.junit.Assert;
import org.junit.Assume;
@@ -37,6 +38,8 @@ import org.junit.ClassRule;
import org.junit.Rule;
import org.junit.rules.RuleChain;
import org.junit.rules.TestRule;
+import org.junit.runner.Result;
+import org.junit.runner.notification.Failure;
import com.carrotsearch.randomizedtesting.RandomizedRunner;
import com.carrotsearch.randomizedtesting.RandomizedTest;
@@ -57,6 +60,7 @@ import com.carrotsearch.randomizedtestin
* cause havoc (static fields).
*/
public abstract class WithNestedTests {
+ @SuppressSysoutChecks(bugUrl = "WithNestedTests has its own stream capture.")
public static abstract class AbstractNestedTest extends LuceneTestCase
implements TestRuleIgnoreTestSuites.NestedTestSuite {
protected static boolean isRunningNested() {
@@ -164,6 +168,20 @@ public abstract class WithNestedTests {
}
}
+ protected void assertFailureCount(int expected, Result result) {
+ if (result.getFailureCount() != expected) {
+ StringBuilder b = new StringBuilder();
+ for (Failure f : result.getFailures()) {
+ b.append("\n\n");
+ b.append(f.getMessage());
+ b.append("\n");
+ b.append(f.getTrace());
+ }
+ RandomizedTest.assertFalse("Expected failures: " + expected + " but was " +
+ result.getFailureCount() + ", failures below: " + b.toString(), true);
+ }
+ }
+
protected String getSysOut() {
Assert.assertTrue(suppressOutputStreams);
System.out.flush();
Modified: lucene/dev/branches/branch_4x/lucene/demo/src/test/org/apache/lucene/demo/TestDemo.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/demo/src/test/org/apache/lucene/demo/TestDemo.java?rev=1591273&r1=1591272&r2=1591273&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/demo/src/test/org/apache/lucene/demo/TestDemo.java (original)
+++ lucene/dev/branches/branch_4x/lucene/demo/src/test/org/apache/lucene/demo/TestDemo.java Wed Apr 30 12:42:40 2014
@@ -23,7 +23,7 @@ import java.io.PrintStream;
import java.nio.charset.Charset;
import org.apache.lucene.util.LuceneTestCase;
-import org.apache.lucene.util.TestUtil;
+import org.apache.lucene.util.LuceneTestCase.SuppressSysoutChecks;
public class TestDemo extends LuceneTestCase {
Modified: lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/TestDrillDownQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/TestDrillDownQuery.java?rev=1591273&r1=1591272&r2=1591273&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/TestDrillDownQuery.java (original)
+++ lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/TestDrillDownQuery.java Wed Apr 30 12:42:40 2014
@@ -133,7 +133,6 @@ public class TestDrillDownQuery extends
// Making sure the query yields 25 documents with the facet "a"
DrillDownQuery q = new DrillDownQuery(config);
q.add("a");
- System.out.println("q=" + q);
QueryUtils.check(q);
TopDocs docs = searcher.search(q, 100);
assertEquals(25, docs.totalHits);
Modified: lucene/dev/branches/branch_4x/lucene/misc/src/test/org/apache/lucene/document/TestLazyDocument.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/misc/src/test/org/apache/lucene/document/TestLazyDocument.java?rev=1591273&r1=1591272&r2=1591273&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/misc/src/test/org/apache/lucene/document/TestLazyDocument.java (original)
+++ lucene/dev/branches/branch_4x/lucene/misc/src/test/org/apache/lucene/document/TestLazyDocument.java Wed Apr 30 12:42:40 2014
@@ -17,9 +17,6 @@
package org.apache.lucene.document;
import java.util.Arrays;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Random;
import java.util.Set;
import java.util.HashSet;
import java.util.Map;
@@ -28,7 +25,6 @@ import java.io.IOException;
import org.apache.lucene.util.LuceneTestCase;
import org.apache.lucene.store.*;
-import org.apache.lucene.document.*;
import org.apache.lucene.analysis.*;
import org.apache.lucene.index.*;
import org.apache.lucene.search.*;
@@ -118,7 +114,7 @@ public class TestLazyDocument extends Lu
assertFalse(f.name() + " is loaded", lf.hasBeenLoaded());
}
}
- System.out.println("numFieldValues == " + numFieldValues);
+ if (VERBOSE) System.out.println("numFieldValues == " + numFieldValues);
assertEquals("numFieldValues", 1 + (NUM_VALUES * FIELDS.length),
numFieldValues);
Modified: lucene/dev/branches/branch_4x/lucene/misc/src/test/org/apache/lucene/index/TestMultiPassIndexSplitter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/misc/src/test/org/apache/lucene/index/TestMultiPassIndexSplitter.java?rev=1591273&r1=1591272&r2=1591273&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/misc/src/test/org/apache/lucene/index/TestMultiPassIndexSplitter.java (original)
+++ lucene/dev/branches/branch_4x/lucene/misc/src/test/org/apache/lucene/index/TestMultiPassIndexSplitter.java Wed Apr 30 12:42:40 2014
@@ -22,6 +22,7 @@ import org.apache.lucene.document.Field;
import org.apache.lucene.store.Directory;
import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.LuceneTestCase;
+import org.apache.lucene.util.LuceneTestCase.SuppressSysoutChecks;
public class TestMultiPassIndexSplitter extends LuceneTestCase {
IndexReader input;
Modified: lucene/dev/branches/branch_4x/lucene/replicator/src/test/org/apache/lucene/replicator/http/HttpReplicatorTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/replicator/src/test/org/apache/lucene/replicator/http/HttpReplicatorTest.java?rev=1591273&r1=1591272&r2=1591273&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/replicator/src/test/org/apache/lucene/replicator/http/HttpReplicatorTest.java (original)
+++ lucene/dev/branches/branch_4x/lucene/replicator/src/test/org/apache/lucene/replicator/http/HttpReplicatorTest.java Wed Apr 30 12:42:40 2014
@@ -40,10 +40,18 @@ import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.ServletHandler;
import org.eclipse.jetty.servlet.ServletHolder;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
+import org.junit.rules.RuleChain;
+import org.junit.rules.TestRule;
+
+import com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule;
public class HttpReplicatorTest extends ReplicatorTestCase {
-
+ @Rule
+ public TestRule testRules =
+ RuleChain.outerRule(new SystemPropertiesRestoreRule());
+
private File clientWorkDir;
private Replicator serverReplicator;
private IndexWriter writer;
@@ -69,7 +77,9 @@ public class HttpReplicatorTest extends
@Override
public void setUp() throws Exception {
super.setUp();
- System.setProperty("org.eclipse.jetty.LEVEL", "DEBUG"); // sets stderr logging to DEBUG level
+ if (VERBOSE) {
+ System.setProperty("org.eclipse.jetty.LEVEL", "DEBUG"); // sets stderr logging to DEBUG level
+ }
clientWorkDir = createTempDir("httpReplicatorTest");
handlerIndexDir = newDirectory();
serverIndexDir = newDirectory();
@@ -86,7 +96,6 @@ public class HttpReplicatorTest extends
public void tearDown() throws Exception {
stopHttpServer(server);
IOUtils.close(reader, writer, handlerIndexDir, serverIndexDir);
- System.clearProperty("org.eclipse.jetty.LEVEL");
super.tearDown();
}
Modified: lucene/dev/branches/branch_4x/lucene/spatial/src/test/org/apache/lucene/spatial/SpatialTestCase.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/spatial/src/test/org/apache/lucene/spatial/SpatialTestCase.java?rev=1591273&r1=1591272&r2=1591273&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/spatial/src/test/org/apache/lucene/spatial/SpatialTestCase.java (original)
+++ lucene/dev/branches/branch_4x/lucene/spatial/src/test/org/apache/lucene/spatial/SpatialTestCase.java Wed Apr 30 12:42:40 2014
@@ -34,6 +34,8 @@ import org.apache.lucene.store.Directory
import org.apache.lucene.util.IOUtils;
import org.apache.lucene.util.LuceneTestCase;
import org.apache.lucene.util.TestUtil;
+import org.apache.lucene.util.LuceneTestCase.SuppressSysoutChecks;
+import org.apache.lucene.util.TestRuleLimitSysouts.Limit;
import org.junit.After;
import org.junit.Before;
@@ -46,6 +48,7 @@ import static com.carrotsearch.randomize
import static com.carrotsearch.randomizedtesting.RandomizedTest.randomIntBetween;
/** A base test class for spatial lucene. It's mostly Lucene generic. */
+@SuppressSysoutChecks(bugUrl = "These tests use JUL extensively.")
public abstract class SpatialTestCase extends LuceneTestCase {
private DirectoryReader indexReader;
Modified: lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/util/LuceneTestCase.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/util/LuceneTestCase.java?rev=1591273&r1=1591272&r2=1591273&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/util/LuceneTestCase.java (original)
+++ lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/util/LuceneTestCase.java Wed Apr 30 12:42:40 2014
@@ -229,6 +229,7 @@ import static com.carrotsearch.randomize
@ThreadLeakFilters(defaultFilters = true, filters = {
QuickPatchThreadsFilter.class
})
+@TestRuleLimitSysouts.Limit(bytes = TestRuleLimitSysouts.DEFAULT_SYSOUT_BYTES_THRESHOLD)
public abstract class LuceneTestCase extends Assert {
// --------------------------------------------------------------------
@@ -347,6 +348,21 @@ public abstract class LuceneTestCase ext
public String bugUrl() default "None";
}
+ /**
+ * Ignore {@link TestRuleLimitSysouts} for any suite which is known to print
+ * over the default limit of bytes to {@link System#out} or {@link System#err}.
+ *
+ * @see TestRuleLimitSysouts
+ */
+ @Documented
+ @Inherited
+ @Retention(RetentionPolicy.RUNTIME)
+ @Target(ElementType.TYPE)
+ public @interface SuppressSysoutChecks {
+ /** Point to JIRA entry. */
+ public String bugUrl();
+ }
+
// -----------------------------------------------------------------
// Truly immutable fields and constants, initialized once and valid
// for all suites ever since.
@@ -361,11 +377,13 @@ public abstract class LuceneTestCase ext
/**
* True if and only if tests are run in verbose mode. If this flag is false
- * tests are not expected to print any messages.
+ * tests are not expected to print any messages. Enforced with {@link TestRuleLimitSysouts}.
*/
public static final boolean VERBOSE = systemPropertyAsBoolean("tests.verbose", false);
- /** TODO: javadoc? */
+ /**
+ * Enables or disables dumping of {@link InfoStream} messages.
+ */
public static final boolean INFOSTREAM = systemPropertyAsBoolean("tests.infostream", VERBOSE);
/**
@@ -486,7 +504,7 @@ public abstract class LuceneTestCase ext
/**
* Suite failure marker (any error in the test or suite scope).
*/
- public static TestRuleMarkFailure suiteFailureMarker;
+ private static TestRuleMarkFailure suiteFailureMarker;
/**
* Ignore tests after hitting a designated number of initial failures. This
@@ -519,6 +537,15 @@ public abstract class LuceneTestCase ext
new TestRuleIgnoreAfterMaxFailures(maxFailures));
ignoreAfterMaxFailures = TestRuleDelegate.of(ignoreAfterMaxFailuresDelegate);
}
+
+ /**
+ * Try to capture streams early so that other classes don't have a chance to steal references
+ * to them (as is the case with ju.logging handlers).
+ */
+ static {
+ TestRuleLimitSysouts.checkCaptureStreams();
+ Logger.getGlobal().getHandlers();
+ }
/**
* Temporarily substitute the global {@link TestRuleIgnoreAfterMaxFailures}. See
@@ -553,6 +580,7 @@ public abstract class LuceneTestCase ext
.around(ignoreAfterMaxFailures)
.around(suiteFailureMarker = new TestRuleMarkFailure())
.around(new TestRuleAssertionsRequired())
+ .around(new TestRuleLimitSysouts(suiteFailureMarker))
.around(new TemporaryFilesCleanupRule())
.around(new StaticFieldsInvariantRule(STATIC_LEAK_THRESHOLD, true) {
@Override
@@ -2438,6 +2466,12 @@ public abstract class LuceneTestCase ext
}
}
+ /**
+ * Checks and cleans up temporary files.
+ *
+ * @see LuceneTestCase#createTempDir()
+ * @see LuceneTestCase#createTempFile()
+ */
private static class TemporaryFilesCleanupRule extends TestRuleAdapter {
@Override
protected void before() throws Throwable {
Copied: lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/util/TestRuleLimitSysouts.java (from r1591222, lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/util/TestRuleLimitSysouts.java)
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/util/TestRuleLimitSysouts.java?p2=lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/util/TestRuleLimitSysouts.java&p1=lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/util/TestRuleLimitSysouts.java&r1=1591222&r2=1591273&rev=1591273&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/util/TestRuleLimitSysouts.java (original)
+++ lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/util/TestRuleLimitSysouts.java Wed Apr 30 12:42:40 2014
@@ -192,8 +192,8 @@ public class TestRuleLimitSysouts extend
}
/**
- * We're only interested in failing the suite if it was successful. Otherwise
- * just propagate the original problem and don't bother.
+ * We're only interested in failing the suite if it was successful (otherwise
+ * just propagate the original problem and don't bother doing anything else).
*/
@Override
protected void afterIfSuccessful() throws Throwable {
@@ -219,9 +219,6 @@ public class TestRuleLimitSysouts extend
}
}
- /**
- * Restore original streams.
- */
@Override
protected void afterAlways(List<Throwable> errors) throws Throwable {
resetCaptureState();
Modified: lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/cloud/TestMiniSolrCloudCluster.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/cloud/TestMiniSolrCloudCluster.java?rev=1591273&r1=1591272&r2=1591273&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/cloud/TestMiniSolrCloudCluster.java (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/cloud/TestMiniSolrCloudCluster.java Wed Apr 30 12:42:40 2014
@@ -24,6 +24,7 @@ import java.util.List;
import java.util.Map;
import org.apache.lucene.util.LuceneTestCase;
+import org.apache.lucene.util.LuceneTestCase.SuppressSysoutChecks;
import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.embedded.JettySolrRunner;
@@ -58,6 +59,7 @@ import com.carrotsearch.randomizedtestin
* MiniSolrCloudCluster is designed to be used outside of the Lucene test
* hierarchy.
*/
+@SuppressSysoutChecks(bugUrl = "Solr logs to JUL")
public class TestMiniSolrCloudCluster extends LuceneTestCase {
private static Logger log = LoggerFactory.getLogger(MiniSolrCloudCluster.class);
Modified: lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/util/TestRandomMergePolicy.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/util/TestRandomMergePolicy.java?rev=1591273&r1=1591272&r2=1591273&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/util/TestRandomMergePolicy.java (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/util/TestRandomMergePolicy.java Wed Apr 30 12:42:40 2014
@@ -19,6 +19,7 @@ package org.apache.solr.util;
import org.apache.lucene.index.MergePolicy;
import org.apache.lucene.util.LuceneTestCase;
+import org.apache.lucene.util.LuceneTestCase.SuppressSysoutChecks;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
@@ -28,8 +29,8 @@ import java.lang.reflect.InvocationTarge
* A "test the test" sanity check using reflection to ensure that
* {@linke RandomMergePolicy} is working as expected
*/
+@SuppressSysoutChecks(bugUrl = "Logs to JUL")
public class TestRandomMergePolicy extends LuceneTestCase {
-
/**
* Ensure every MP method is overridden by RMP
* (future proof ourselves against new methods being added to MP)
Modified: lucene/dev/branches/branch_4x/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java?rev=1591273&r1=1591272&r2=1591273&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java (original)
+++ lucene/dev/branches/branch_4x/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java Wed Apr 30 12:42:40 2014
@@ -55,6 +55,7 @@ import org.apache.lucene.util.IOUtils;
import org.apache.lucene.util.LuceneTestCase;
import org.apache.lucene.util.QuickPatchThreadsFilter;
import org.apache.lucene.util.TestUtil;
+import org.apache.lucene.util.LuceneTestCase.SuppressSysoutChecks;
import org.apache.solr.client.solrj.impl.HttpClientConfigurer;
import org.apache.solr.client.solrj.impl.HttpClientUtil;
import org.apache.solr.client.solrj.util.ClientUtils;
@@ -115,6 +116,7 @@ import com.carrotsearch.randomizedtestin
SolrIgnoredThreadsFilter.class,
QuickPatchThreadsFilter.class
})
+@SuppressSysoutChecks(bugUrl = "Solr dumps tons of logs to console.")
public abstract class SolrTestCaseJ4 extends LuceneTestCase {
private static String coreName = ConfigSolrXmlOld.DEFAULT_DEFAULT_CORE_NAME;
public static int DEFAULT_CONNECTION_TIMEOUT = 60000; // default socket connection timeout in ms