diff --git a/Jenkinsfile b/Jenkinsfile index ad3edd34c81..8bb36cd7bc2 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -33,6 +33,7 @@ pipeline { # Build and test without DOM-first to ensure no regression takes place mvn -U clean verify --batch-mode --fail-at-end -Dmaven.repo.local=$WORKSPACE/.m2/repository \ -Ptest-on-javase-23 -Pbree-libs -Papi-check -Pjavadoc -Pp2-repo \ + -DexcludedGroups=org.eclipse.jdt.core.tests.javac.JavacTestIgnore \ -Dmaven.test.failure.ignore=true \ -Dcompare-version-with-baselines.skip=false \ -Djava.io.tmpdir=$WORKSPACE/tmp -Dproject.build.sourceEncoding=UTF-8 \ diff --git a/org.eclipse.jdt.core.tests.model/META-INF/MANIFEST.MF b/org.eclipse.jdt.core.tests.model/META-INF/MANIFEST.MF index d6e528b4572..1c90fffe519 100644 --- a/org.eclipse.jdt.core.tests.model/META-INF/MANIFEST.MF +++ b/org.eclipse.jdt.core.tests.model/META-INF/MANIFEST.MF @@ -16,7 +16,7 @@ Export-Package: org.eclipse.jdt.core.tests, Require-Bundle: org.eclipse.core.resources;bundle-version="[3.2.0,4.0.0)", org.eclipse.core.runtime;bundle-version="[3.29.0,4.0.0)", org.eclipse.jdt.core;bundle-version="[3.38.0,4.0.0)", - org.junit;bundle-version="3.8.1", + org.junit;bundle-version="4.13.2", org.eclipse.test.performance;bundle-version="[3.1.0,4.0.0)", org.eclipse.jdt.core.tests.compiler;bundle-version="[3.4.0,4.0.0)", org.eclipse.jdt.compiler.apt.tests;bundle-version="[1.0.0,2.0.0)", diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunAllJava10Tests.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunAllJava10Tests.java index 4fa5d3a6c72..530ff23f645 100644 --- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunAllJava10Tests.java +++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunAllJava10Tests.java @@ -20,6 +20,7 @@ import org.eclipse.jdt.core.tests.dom.ConverterTestSetup; import org.eclipse.jdt.core.tests.model.CompletionTests10; import org.eclipse.jdt.core.tests.model.JavaSearchBugs10Tests; +import org.eclipse.jdt.core.tests.model.RecursivelyFilterableTestSuite; import org.eclipse.jdt.core.tests.util.AbstractCompilerTest; import junit.framework.Test; @@ -53,7 +54,7 @@ public static Class[] getCompilerClasses() { } public static Test suite() { - TestSuite ts = new TestSuite(RunAllJava10Tests.class.getName()); + TestSuite ts = new RecursivelyFilterableTestSuite(RunAllJava10Tests.class.getName()); Class[] testClasses = getAllTestClasses(); addTestsToSuite(ts, testClasses); diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunAllJava11Tests.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunAllJava11Tests.java index ff029a11f7c..ad10d46aba0 100644 --- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunAllJava11Tests.java +++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunAllJava11Tests.java @@ -19,6 +19,7 @@ import org.eclipse.jdt.core.tests.builder.BuilderTests11; import org.eclipse.jdt.core.tests.dom.ConverterTestSetup; import org.eclipse.jdt.core.tests.model.CompletionTests11; +import org.eclipse.jdt.core.tests.model.RecursivelyFilterableTestSuite; import org.eclipse.jdt.core.tests.util.AbstractCompilerTest; import junit.framework.Test; @@ -53,7 +54,7 @@ public static Class[] getCompilerClasses() { } public static Test suite() { - TestSuite ts = new TestSuite(RunAllJava11Tests.class.getName()); + TestSuite ts = new RecursivelyFilterableTestSuite(RunAllJava11Tests.class.getName()); Class[] testClasses = getAllTestClasses(); addTestsToSuite(ts, testClasses); diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunAllJava12Tests.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunAllJava12Tests.java index ee41a3566de..a189c49622e 100644 --- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunAllJava12Tests.java +++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunAllJava12Tests.java @@ -16,6 +16,7 @@ import java.lang.reflect.Method; import org.eclipse.jdt.core.tests.dom.ConverterTestSetup; +import org.eclipse.jdt.core.tests.model.RecursivelyFilterableTestSuite; import org.eclipse.jdt.core.tests.util.AbstractCompilerTest; import junit.framework.Test; @@ -42,7 +43,7 @@ public static Class[] getCompilerClasses() { } public static Test suite() { - TestSuite ts = new TestSuite(RunAllJava12Tests.class.getName()); + TestSuite ts = new RecursivelyFilterableTestSuite(RunAllJava12Tests.class.getName()); Class[] testClasses = getAllTestClasses(); addTestsToSuite(ts, testClasses); diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunAllJava13Tests.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunAllJava13Tests.java index 745a12efb68..7cd4fec1493 100644 --- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunAllJava13Tests.java +++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunAllJava13Tests.java @@ -16,18 +16,19 @@ import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; -import junit.framework.Test; -import junit.framework.TestCase; -import junit.framework.TestSuite; - import org.eclipse.jdt.core.tests.compiler.parser.ComplianceDiagnoseTest; import org.eclipse.jdt.core.tests.compiler.regression.SwitchExpressionsYieldTest; import org.eclipse.jdt.core.tests.dom.ASTConverter14Test; import org.eclipse.jdt.core.tests.dom.ConverterTestSetup; import org.eclipse.jdt.core.tests.model.JavaSearchBugs13Tests; +import org.eclipse.jdt.core.tests.model.RecursivelyFilterableTestSuite; import org.eclipse.jdt.core.tests.rewrite.describing.ASTRewritingTest; import org.eclipse.jdt.core.tests.util.AbstractCompilerTest; +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + @SuppressWarnings({"rawtypes", "unchecked"}) public class RunAllJava13Tests extends TestCase { @@ -58,7 +59,7 @@ public static Class[] getCompilerClasses() { } public static Test suite() { - TestSuite ts = new TestSuite(RunAllJava13Tests.class.getName()); + TestSuite ts = new RecursivelyFilterableTestSuite(RunAllJava13Tests.class.getName()); Class[] testClasses = getAllTestClasses(); addTestsToSuite(ts, testClasses); diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunAllJava14Tests.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunAllJava14Tests.java index 522a572858d..bb91cdb4f7e 100644 --- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunAllJava14Tests.java +++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunAllJava14Tests.java @@ -18,6 +18,7 @@ import org.eclipse.jdt.core.tests.dom.ConverterTestSetup; import org.eclipse.jdt.core.tests.model.JavaSearchBugs14SwitchExpressionTests; +import org.eclipse.jdt.core.tests.model.RecursivelyFilterableTestSuite; import org.eclipse.jdt.core.tests.util.AbstractCompilerTest; import junit.framework.Test; @@ -50,7 +51,7 @@ public static Class[] getCompilerClasses() { } public static Test suite() { - TestSuite ts = new TestSuite(RunAllJava14Tests.class.getName()); + TestSuite ts = new RecursivelyFilterableTestSuite(RunAllJava14Tests.class.getName()); Class[] testClasses = getAllTestClasses(); addTestsToSuite(ts, testClasses); diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunAllJava8Tests.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunAllJava8Tests.java index 8e689263df5..47d8840faa2 100644 --- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunAllJava8Tests.java +++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunAllJava8Tests.java @@ -18,10 +18,6 @@ import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; -import junit.framework.Test; -import junit.framework.TestCase; -import junit.framework.TestSuite; - import org.eclipse.jdt.core.tests.builder.IncrementalTests18; import org.eclipse.jdt.core.tests.compiler.parser.ComplianceDiagnoseTest; import org.eclipse.jdt.core.tests.dom.ASTConverter15JLS8Test; @@ -39,10 +35,15 @@ import org.eclipse.jdt.core.tests.model.CompletionTests18; import org.eclipse.jdt.core.tests.model.JavaElement8Tests; import org.eclipse.jdt.core.tests.model.JavaSearchBugs8Tests; +import org.eclipse.jdt.core.tests.model.RecursivelyFilterableTestSuite; import org.eclipse.jdt.core.tests.model.ResolveTests18; import org.eclipse.jdt.core.tests.rewrite.describing.ASTRewritingTest; import org.eclipse.jdt.core.tests.util.AbstractCompilerTest; +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + @SuppressWarnings({"rawtypes", "unchecked"}) public class RunAllJava8Tests extends TestCase { @@ -86,7 +87,7 @@ public static Class[] getCompilerClasses() { } public static Test suite() { - TestSuite ts = new TestSuite(RunAllJava8Tests.class.getName()); + TestSuite ts = new RecursivelyFilterableTestSuite(RunAllJava8Tests.class.getName()); Class[] testClasses = getAllTestClasses(); addTestsToSuite(ts, testClasses); diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunAllJava9Tests.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunAllJava9Tests.java index 7d29253e11e..0e35b6bec03 100644 --- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunAllJava9Tests.java +++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunAllJava9Tests.java @@ -25,6 +25,7 @@ import org.eclipse.jdt.core.tests.model.ModuleBuilderTests; import org.eclipse.jdt.core.tests.model.ModuleOptionsTests; import org.eclipse.jdt.core.tests.model.ReconcilerTests9; +import org.eclipse.jdt.core.tests.model.RecursivelyFilterableTestSuite; import org.eclipse.jdt.core.tests.model.ResolveTests9; import org.eclipse.jdt.core.tests.util.AbstractCompilerTest; @@ -65,7 +66,7 @@ public static Class[] getCompilerClasses() { } public static Test suite() { - TestSuite ts = new TestSuite(RunAllJava9Tests.class.getName()); + TestSuite ts = new RecursivelyFilterableTestSuite(RunAllJava9Tests.class.getName()); Class[] testClasses = getAllTestClasses(); addTestsToSuite(ts, testClasses); diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunBug563501Tests.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunBug563501Tests.java index 3fd7f1746bf..3759c0d6877 100644 --- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunBug563501Tests.java +++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunBug563501Tests.java @@ -16,6 +16,7 @@ import org.eclipse.jdt.core.tests.builder.Bug549646Test; import org.eclipse.jdt.core.tests.compiler.regression.ModuleCompilationTests; import org.eclipse.jdt.core.tests.model.ModuleBuilderTests; +import org.eclipse.jdt.core.tests.model.RecursivelyFilterableTestSuite; import junit.framework.Test; import junit.framework.TestCase; @@ -33,7 +34,7 @@ public static Test suite() { org.eclipse.jdt.core.tests.junit.extension.TestCase.TESTS_NAMES = new String[] { "testCompilerRegression", "testReleaseOption10", "testConvertToModule" }; - TestSuite suite = new TestSuite(RunBug563501Tests.class.getName()); + TestSuite suite = new RecursivelyFilterableTestSuite(RunBug563501Tests.class.getName()); suite.addTest(Bug549646Test.suite()); suite.addTest(ModuleCompilationTests.suite()); suite.addTest(ModuleBuilderTests.suite()); diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunBuilderTests.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunBuilderTests.java index 546d35503fe..885c4ad4e37 100644 --- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunBuilderTests.java +++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunBuilderTests.java @@ -14,6 +14,7 @@ package org.eclipse.jdt.core.tests; import org.eclipse.jdt.core.tests.builder.BuilderTests; +import org.eclipse.jdt.core.tests.model.RecursivelyFilterableTestSuite; import junit.framework.Test; import junit.framework.TestCase; @@ -27,7 +28,7 @@ public RunBuilderTests(String name) { super(name); } public static Test suite() { - TestSuite suite = new TestSuite(RunBuilderTests.class.getName()); + TestSuite suite = new RecursivelyFilterableTestSuite(RunBuilderTests.class.getName()); suite.addTest(BuilderTests.suite()); return suite; } diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunCompilerTests.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunCompilerTests.java index 849db43c656..79c2929f2a4 100644 --- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunCompilerTests.java +++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunCompilerTests.java @@ -16,6 +16,8 @@ import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; +import org.eclipse.jdt.core.tests.model.RecursivelyFilterableTestSuite; + import junit.framework.Test; import junit.framework.TestCase; import junit.framework.TestSuite; @@ -39,7 +41,7 @@ public static Class[] getAllTestClasses() { }; } public static Test suite() { - TestSuite ts = new TestSuite(RunCompilerTests.class.getName()); + TestSuite ts = new RecursivelyFilterableTestSuite(RunCompilerTests.class.getName()); Class[] testClasses = getAllTestClasses(); for (int i = 0; i < testClasses.length; i++) { diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunDOMTests.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunDOMTests.java index eb73670dcf3..cd2016c2159 100644 --- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunDOMTests.java +++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunDOMTests.java @@ -13,12 +13,13 @@ *******************************************************************************/ package org.eclipse.jdt.core.tests; +import org.eclipse.jdt.core.tests.dom.RunAllTests; +import org.eclipse.jdt.core.tests.model.RecursivelyFilterableTestSuite; + import junit.framework.Test; import junit.framework.TestCase; import junit.framework.TestSuite; -import org.eclipse.jdt.core.tests.dom.RunAllTests; - /** * Runs all DOM AST tests. */ @@ -28,7 +29,7 @@ public RunDOMTests(String name) { super(name); } public static Test suite() { - TestSuite suite = new TestSuite(RunDOMTests.class.getName()); + TestSuite suite = new RecursivelyFilterableTestSuite(RunDOMTests.class.getName()); suite.addTest(RunAllTests.suite()); return suite; } diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunFormatterTests.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunFormatterTests.java index 7678a97105b..34bc37c4d8d 100644 --- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunFormatterTests.java +++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunFormatterTests.java @@ -21,14 +21,25 @@ import java.util.ArrayList; import java.util.List; -import junit.framework.Test; -import junit.framework.TestSuite; - -import org.eclipse.jdt.core.tests.formatter.*; +import org.eclipse.jdt.core.tests.formatter.FormatterBugs18Tests; +import org.eclipse.jdt.core.tests.formatter.FormatterBugsTests; +import org.eclipse.jdt.core.tests.formatter.FormatterCommentsBugsTest; +import org.eclipse.jdt.core.tests.formatter.FormatterCommentsClearBlankLinesTests; +import org.eclipse.jdt.core.tests.formatter.FormatterCommentsTests; +import org.eclipse.jdt.core.tests.formatter.FormatterJSR308Tests; +import org.eclipse.jdt.core.tests.formatter.FormatterJSR335Tests; +import org.eclipse.jdt.core.tests.formatter.FormatterJavadocDontIndentTagsDescriptionTests; +import org.eclipse.jdt.core.tests.formatter.FormatterJavadocDontIndentTagsTests; +import org.eclipse.jdt.core.tests.formatter.FormatterOldBugsGistTests; +import org.eclipse.jdt.core.tests.formatter.FormatterRegressionTests; import org.eclipse.jdt.core.tests.formatter.comment.CommentsTestSuite; import org.eclipse.jdt.core.tests.junit.extension.TestCase; +import org.eclipse.jdt.core.tests.model.RecursivelyFilterableTestSuite; import org.eclipse.jdt.core.tests.util.CleanupAfterSuiteTests; +import junit.framework.Test; +import junit.framework.TestSuite; + /** * Runs all formatter tests. */ @@ -53,7 +64,7 @@ public static Class[] getTestClasses() { } public static Test suite() { - TestSuite ts = new TestSuite(RunFormatterTests.class.getName()); + TestSuite ts = new RecursivelyFilterableTestSuite(RunFormatterTests.class.getName()); // Store test classes with same "JavaSearch"project FormatterCommentsTests.ALL_TEST_SUITES = new ArrayList(TEST_SUITES); diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunJDTCoreTests.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunJDTCoreTests.java index 63ff582cca4..2179c33799b 100644 --- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunJDTCoreTests.java +++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunJDTCoreTests.java @@ -13,6 +13,8 @@ *******************************************************************************/ package org.eclipse.jdt.core.tests; +import org.eclipse.jdt.core.tests.model.RecursivelyFilterableTestSuite; + import junit.framework.Test; import junit.framework.TestCase; import junit.framework.TestSuite; @@ -25,7 +27,7 @@ public RunJDTCoreTests(String name) { super(name); } public static Test suite() { - TestSuite suite = new TestSuite(RunJDTCoreTests.class.getName()); + TestSuite suite = new RecursivelyFilterableTestSuite(RunJDTCoreTests.class.getName()); suite.addTest(RunBuilderTests.suite()); suite.addTest(RunCompilerTests.suite()); suite.addTest(RunDOMTests.suite()); diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunModelTests.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunModelTests.java index bc540500925..97a6913407a 100644 --- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunModelTests.java +++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunModelTests.java @@ -13,12 +13,13 @@ *******************************************************************************/ package org.eclipse.jdt.core.tests; +import org.eclipse.jdt.core.tests.model.AllJavaModelTests; +import org.eclipse.jdt.core.tests.model.RecursivelyFilterableTestSuite; + import junit.framework.Test; import junit.framework.TestCase; import junit.framework.TestSuite; -import org.eclipse.jdt.core.tests.model.AllJavaModelTests; - /** * Runs all Java model tests. */ @@ -27,7 +28,7 @@ public RunModelTests(String name) { super(name); } public static Test suite() { - TestSuite suite = new TestSuite(RunModelTests.class.getName()); + TestSuite suite = new RecursivelyFilterableTestSuite(RunModelTests.class.getName()); suite.addTest(AllJavaModelTests.suite()); return suite; } diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunOnly335CompilerTests.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunOnly335CompilerTests.java index 25a39dae9c6..d11cdd4cd07 100644 --- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunOnly335CompilerTests.java +++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunOnly335CompilerTests.java @@ -16,10 +16,6 @@ import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; -import junit.framework.Test; -import junit.framework.TestCase; -import junit.framework.TestSuite; - import org.eclipse.jdt.core.tests.compiler.regression.GenericTypeTest; import org.eclipse.jdt.core.tests.compiler.regression.GenericsRegressionTest; import org.eclipse.jdt.core.tests.compiler.regression.GenericsRegressionTest_1_7; @@ -31,8 +27,13 @@ import org.eclipse.jdt.core.tests.compiler.regression.NullTypeAnnotationTest; import org.eclipse.jdt.core.tests.compiler.regression.OverloadResolutionTest8; import org.eclipse.jdt.core.tests.dom.ConverterTestSetup; +import org.eclipse.jdt.core.tests.model.RecursivelyFilterableTestSuite; import org.eclipse.jdt.core.tests.util.AbstractCompilerTest; +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + @SuppressWarnings({"rawtypes", "unchecked"}) public class RunOnly335CompilerTests extends TestCase { @@ -60,7 +61,7 @@ public static Class[] getCompilerClasses() { } public static Test suite() { - TestSuite ts = new TestSuite(RunOnly335CompilerTests.class.getName()); + TestSuite ts = new RecursivelyFilterableTestSuite(RunOnly335CompilerTests.class.getName()); Class[] testClasses = getAllTestClasses(); addTestsToSuite(ts, testClasses); diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunOnlyAssistModelTests18.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunOnlyAssistModelTests18.java index 155e21c39b2..6e61d42e7c6 100644 --- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunOnlyAssistModelTests18.java +++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunOnlyAssistModelTests18.java @@ -16,17 +16,18 @@ import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; -import junit.framework.Test; -import junit.framework.TestCase; -import junit.framework.TestSuite; - import org.eclipse.jdt.core.tests.compiler.parser.CompletionParserTest18; import org.eclipse.jdt.core.tests.compiler.parser.SelectionParserTest18; import org.eclipse.jdt.core.tests.model.CompletionTests18; import org.eclipse.jdt.core.tests.model.JavaElement8Tests; import org.eclipse.jdt.core.tests.model.JavaSearchBugs8Tests; +import org.eclipse.jdt.core.tests.model.RecursivelyFilterableTestSuite; import org.eclipse.jdt.core.tests.model.ResolveTests18; +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + @SuppressWarnings({"rawtypes", "unchecked"}) public class RunOnlyAssistModelTests18 extends TestCase { @@ -45,7 +46,7 @@ public static Class[] getAllTestClasses() { } public static Test suite() { - TestSuite ts = new TestSuite(RunOnlyAssistModelTests18.class.getName()); + TestSuite ts = new RecursivelyFilterableTestSuite(RunOnlyAssistModelTests18.class.getName()); Class[] testClasses = getAllTestClasses(); addTestsToSuite(ts, testClasses); diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunOnlyJava12Tests.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunOnlyJava12Tests.java index 63d11831b9c..3d48743d476 100644 --- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunOnlyJava12Tests.java +++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunOnlyJava12Tests.java @@ -16,6 +16,7 @@ import java.lang.reflect.Method; import org.eclipse.jdt.core.tests.dom.ConverterTestSetup; +import org.eclipse.jdt.core.tests.model.RecursivelyFilterableTestSuite; import junit.framework.Test; import junit.framework.TestCase; @@ -34,7 +35,7 @@ public static Class[] getAllTestClasses() { } public static Test suite() { - TestSuite ts = new TestSuite(RunOnlyJava12Tests.class.getName()); + TestSuite ts = new RecursivelyFilterableTestSuite(RunOnlyJava12Tests.class.getName()); Class[] testClasses = getAllTestClasses(); addTestsToSuite(ts, testClasses); diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunOnlyJava13Tests.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunOnlyJava13Tests.java index af2f64c2e80..7bcb80ae444 100644 --- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunOnlyJava13Tests.java +++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunOnlyJava13Tests.java @@ -22,6 +22,7 @@ import org.eclipse.jdt.core.tests.dom.ASTConverter14Test; import org.eclipse.jdt.core.tests.dom.ConverterTestSetup; import org.eclipse.jdt.core.tests.model.JavaSearchBugs13Tests; +import org.eclipse.jdt.core.tests.model.RecursivelyFilterableTestSuite; import org.eclipse.jdt.core.tests.rewrite.describing.ASTRewritingTest; import junit.framework.Test; @@ -48,7 +49,7 @@ public static Class[] getConverterTestClasses() { }; } public static Test suite() { - TestSuite ts = new TestSuite(RunOnlyJava13Tests.class.getName()); + TestSuite ts = new RecursivelyFilterableTestSuite(RunOnlyJava13Tests.class.getName()); Class[] testClasses = getAllTestClasses(); addTestsToSuite(ts, testClasses); diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunOnlyJava14Tests.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunOnlyJava14Tests.java index c39d0b58ad4..83d9f05e5e5 100644 --- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunOnlyJava14Tests.java +++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunOnlyJava14Tests.java @@ -21,6 +21,7 @@ import org.eclipse.jdt.core.tests.dom.ConverterTestSetup; import org.eclipse.jdt.core.tests.model.CompletionTests14; import org.eclipse.jdt.core.tests.model.JavaSearchBugs14SwitchExpressionTests; +import org.eclipse.jdt.core.tests.model.RecursivelyFilterableTestSuite; import junit.framework.Test; import junit.framework.TestCase; @@ -44,7 +45,7 @@ public static Class[] getConverterTestClasses() { }; } public static Test suite() { - TestSuite ts = new TestSuite(RunOnlyJava14Tests.class.getName()); + TestSuite ts = new RecursivelyFilterableTestSuite(RunOnlyJava14Tests.class.getName()); Class[] testClasses = getAllTestClasses(); addTestsToSuite(ts, testClasses); diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunOnlyJava19Tests.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunOnlyJava19Tests.java index 968ca1eb295..0ed2fa51724 100644 --- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunOnlyJava19Tests.java +++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunOnlyJava19Tests.java @@ -22,6 +22,7 @@ import org.eclipse.jdt.core.tests.compiler.regression.RecordPatternTest; import org.eclipse.jdt.core.tests.compiler.regression.SwitchPatternTest; import org.eclipse.jdt.core.tests.dom.ConverterTestSetup; +import org.eclipse.jdt.core.tests.model.RecursivelyFilterableTestSuite; import junit.framework.Test; import junit.framework.TestCase; @@ -46,7 +47,7 @@ public static Class[] getConverterTestClasses() { }; } public static Test suite() { - TestSuite ts = new TestSuite(RunOnlyJava19Tests.class.getName()); + TestSuite ts = new RecursivelyFilterableTestSuite(RunOnlyJava19Tests.class.getName()); Class[] testClasses = getAllTestClasses(); addTestsToSuite(ts, testClasses); diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunOnlyJava20Tests.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunOnlyJava20Tests.java index 7c660313da8..6f4d660000d 100644 --- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunOnlyJava20Tests.java +++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunOnlyJava20Tests.java @@ -21,6 +21,7 @@ import org.eclipse.jdt.core.tests.compiler.regression.RecordPatternTest; import org.eclipse.jdt.core.tests.compiler.regression.SwitchPatternTest; import org.eclipse.jdt.core.tests.dom.ConverterTestSetup; +import org.eclipse.jdt.core.tests.model.RecursivelyFilterableTestSuite; import junit.framework.Test; import junit.framework.TestCase; @@ -44,7 +45,7 @@ public static Class[] getConverterTestClasses() { }; } public static Test suite() { - TestSuite ts = new TestSuite(RunOnlyJava20Tests.class.getName()); + TestSuite ts = new RecursivelyFilterableTestSuite(RunOnlyJava20Tests.class.getName()); Class[] testClasses = getAllTestClasses(); addTestsToSuite(ts, testClasses); diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunOnlyJava8Tests.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunOnlyJava8Tests.java index 79afb6e0e24..f1c198c322a 100644 --- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunOnlyJava8Tests.java +++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunOnlyJava8Tests.java @@ -20,10 +20,6 @@ import java.util.ArrayList; import java.util.Arrays; -import junit.framework.Test; -import junit.framework.TestCase; -import junit.framework.TestSuite; - import org.eclipse.jdt.core.tests.builder.IncrementalTests18; import org.eclipse.jdt.core.tests.compiler.parser.CompletionParserTest18; import org.eclipse.jdt.core.tests.compiler.parser.ComplianceDiagnoseTest; @@ -32,10 +28,10 @@ import org.eclipse.jdt.core.tests.compiler.parser.SelectionParserTest18; import org.eclipse.jdt.core.tests.compiler.parser.TypeAnnotationSyntaxTest; import org.eclipse.jdt.core.tests.compiler.regression.ClassFileReaderTest_1_8; +import org.eclipse.jdt.core.tests.compiler.regression.CompilerInvocationTests; import org.eclipse.jdt.core.tests.compiler.regression.ConditionalExpressionTest; import org.eclipse.jdt.core.tests.compiler.regression.Deprecated18Test; import org.eclipse.jdt.core.tests.compiler.regression.ExpressionContextTests; -import org.eclipse.jdt.core.tests.compiler.regression.CompilerInvocationTests; import org.eclipse.jdt.core.tests.compiler.regression.FlowAnalysisTest8; import org.eclipse.jdt.core.tests.compiler.regression.GenericsRegressionTest_1_8; import org.eclipse.jdt.core.tests.compiler.regression.GrammarCoverageTests308; @@ -68,9 +64,14 @@ import org.eclipse.jdt.core.tests.model.CompletionTests18; import org.eclipse.jdt.core.tests.model.JavaElement8Tests; import org.eclipse.jdt.core.tests.model.JavaSearchBugs8Tests; +import org.eclipse.jdt.core.tests.model.RecursivelyFilterableTestSuite; import org.eclipse.jdt.core.tests.model.ResolveTests18; import org.eclipse.jdt.core.tests.rewrite.describing.ASTRewritingTest; +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + @SuppressWarnings({"rawtypes", "unchecked"}) public class RunOnlyJava8Tests extends TestCase { @@ -132,7 +133,7 @@ public static Class[] getConverterTestClasses() { }; } public static Test suite() { - TestSuite ts = new TestSuite(RunOnlyJava8Tests.class.getName()); + TestSuite ts = new RecursivelyFilterableTestSuite(RunOnlyJava8Tests.class.getName()); Class[] testClasses = getAllTestClasses(); addTestsToSuite(ts, testClasses); diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunVariousPatternsTests.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunVariousPatternsTests.java index 19b2154c9cc..0d48f56080c 100644 --- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunVariousPatternsTests.java +++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunVariousPatternsTests.java @@ -34,6 +34,7 @@ import org.eclipse.jdt.core.tests.dom.ConverterTestSetup; import org.eclipse.jdt.core.tests.model.CompletionTestsForRecordPattern; import org.eclipse.jdt.core.tests.model.JavaSearchBugs19Tests; +import org.eclipse.jdt.core.tests.model.RecursivelyFilterableTestSuite; import org.eclipse.jdt.core.tests.model.ResolveTests12To15; import org.eclipse.jdt.core.tests.rewrite.describing.ASTRewritingInstanceOfPatternExpressionTest; import org.eclipse.jdt.core.tests.rewrite.describing.ASTRewritingRecordPatternTest; @@ -76,7 +77,7 @@ public static Class[] getAllTestClasses() { } public static Test suite() { - TestSuite ts = new TestSuite(RunVariousPatternsTests.class.getName()); + TestSuite ts = new RecursivelyFilterableTestSuite(RunVariousPatternsTests.class.getName()); Class[] testClasses = getAllTestClasses(); addTestsToSuite(ts, testClasses); diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunVariousSealedTypeTests.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunVariousSealedTypeTests.java index 4ecccf27813..c615734e5bf 100644 --- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunVariousSealedTypeTests.java +++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunVariousSealedTypeTests.java @@ -46,6 +46,7 @@ import org.eclipse.jdt.core.tests.model.JavaSearchBugs19Tests; import org.eclipse.jdt.core.tests.model.ReconcilerTests; import org.eclipse.jdt.core.tests.model.ReconcilerTests21; +import org.eclipse.jdt.core.tests.model.RecursivelyFilterableTestSuite; import org.eclipse.jdt.core.tests.model.ResolveTests21; import org.eclipse.jdt.core.tests.model.SealedTypeModelTests; import org.eclipse.jdt.core.tests.model.TypeHierarchyTests; @@ -101,7 +102,7 @@ public static Class[] getAllTestClasses() { } public static Test suite() { - TestSuite ts = new TestSuite(RunVariousSwitchTests.class.getName()); + TestSuite ts = new RecursivelyFilterableTestSuite(RunVariousSwitchTests.class.getName()); Class[] testClasses = getAllTestClasses(); addTestsToSuite(ts, testClasses); diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunVariousSwitchTests.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunVariousSwitchTests.java index a4d316c9229..974510d471d 100644 --- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunVariousSwitchTests.java +++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/RunVariousSwitchTests.java @@ -28,6 +28,7 @@ import org.eclipse.jdt.core.tests.compiler.regression.UnnamedPatternsAndVariablesTest; import org.eclipse.jdt.core.tests.dom.ConverterTestSetup; import org.eclipse.jdt.core.tests.model.JavaSearchBugs14SwitchExpressionTests; +import org.eclipse.jdt.core.tests.model.RecursivelyFilterableTestSuite; import org.eclipse.jdt.core.tests.rewrite.describing.ASTRewritingSwitchExpressionsTest; import org.eclipse.jdt.core.tests.rewrite.describing.ASTRewritingSwitchPatternTest; import org.eclipse.jdt.core.tests.util.AbstractCompilerTest; @@ -64,7 +65,7 @@ public static Class[] getAllTestClasses() { } public static Test suite() { - TestSuite ts = new TestSuite(RunVariousSwitchTests.class.getName()); + TestSuite ts = new RecursivelyFilterableTestSuite(RunVariousSwitchTests.class.getName()); Class[] testClasses = getAllTestClasses(); addTestsToSuite(ts, testClasses); diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTConverterJavadocTest.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTConverterJavadocTest.java index 01f97a1f5e2..50ee09036b5 100644 --- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTConverterJavadocTest.java +++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTConverterJavadocTest.java @@ -69,6 +69,7 @@ import org.eclipse.jdt.core.tests.javac.JavacTestIgnore; import org.eclipse.jdt.internal.compiler.impl.CompilerOptions; import org.eclipse.jdt.internal.compiler.parser.ScannerHelper; +import org.junit.experimental.categories.Category; import junit.framework.Test; import junit.framework.TestSuite; @@ -1953,7 +1954,7 @@ public void testBug53276() throws JavaModelException { /** * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=53075" */ - @JavacTestIgnore(cause=JavacTestIgnore.JDT_RECOVERS_FROM_BAD_INPUTS) + @Category(value=JavacTestIgnore.class) @JavacTestIgnore(cause=JavacTestIgnore.JDT_RECOVERS_FROM_BAD_INPUTS) public void testBug53075() throws JavaModelException { ICompilationUnit unit = getCompilationUnit("Converter" , "src", "javadoc.testBug53075", "X.java"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ boolean pb = this.packageBinding; @@ -2005,7 +2006,7 @@ public void testBug51617() throws JavaModelException { this.stopOnFailure = true; } - @JavacTestIgnore(cause=JavacTestIgnore.JDT_BEHAVIOR_STRANGE) + @Category(value=JavacTestIgnore.class) @JavacTestIgnore(cause=JavacTestIgnore.JDT_BEHAVIOR_STRANGE) public void testBug54424() throws JavaModelException { this.stopOnFailure = false; String [] unbound = { "tho", @@ -2040,7 +2041,7 @@ public void testBug63044() throws JavaModelException { /** * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=51660" */ - @JavacTestIgnore(cause=JavacTestIgnore.TESTS_SPECIFIC_RESULT_FOR_UNDEFINED_BEHAVIOR) + @Category(value=JavacTestIgnore.class) @JavacTestIgnore(cause=JavacTestIgnore.TESTS_SPECIFIC_RESULT_FOR_UNDEFINED_BEHAVIOR) public void testBug51660() throws JavaModelException { this.stopOnFailure = false; ICompilationUnit unit = getCompilationUnit("Converter" , "src", "javadoc.testBug51660", "Test.java"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ @@ -2133,7 +2134,7 @@ public void testBug51660() throws JavaModelException { * Bug 65174: Spurious "Javadoc: Missing reference" error * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=65174" */ - @JavacTestIgnore(cause=JavacTestIgnore.JDT_RECOVERS_FROM_BAD_INPUTS) + @Category(value=JavacTestIgnore.class) @JavacTestIgnore(cause=JavacTestIgnore.JDT_RECOVERS_FROM_BAD_INPUTS) public void testBug65174() throws JavaModelException { verifyComments("testBug65174"); } @@ -2142,7 +2143,7 @@ public void testBug65174() throws JavaModelException { * Bug 65253: [Javadoc] @@tag is wrongly parsed as @tag * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=65253" */ - @JavacTestIgnore(cause=JavacTestIgnore.JDT_VIOLATES_SPEC) + @Category(value=JavacTestIgnore.class) @JavacTestIgnore(cause=JavacTestIgnore.JDT_VIOLATES_SPEC) // See https://docs.oracle.com/en/java/javase/22/docs/specs/javadoc/doc-comment-spec.html //@@, to represent @, to prevent it from being interpreted as part of the introduction of a block or inline tag, public void testBug65253() throws JavaModelException { @@ -2210,14 +2211,14 @@ public void testBug68726() throws JavaModelException { * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=70892" * @deprecated using deprecated code */ - @JavacTestIgnore(cause=JavacTestIgnore.JDT_RECOVERS_FROM_BAD_INPUTS) + @Category(value=JavacTestIgnore.class) @JavacTestIgnore(cause=JavacTestIgnore.JDT_RECOVERS_FROM_BAD_INPUTS) public void testBug70892_JLS2() throws JavaModelException { int level = this.astLevel; this.astLevel = AST.JLS2; verifyComments("testBug70892"); this.astLevel = level; } - @JavacTestIgnore(cause=JavacTestIgnore.JDT_RECOVERS_FROM_BAD_INPUTS) + @Category(value=JavacTestIgnore.class) @JavacTestIgnore(cause=JavacTestIgnore.JDT_RECOVERS_FROM_BAD_INPUTS) public void testBug70892_JLS3() throws JavaModelException { int level = this.astLevel; this.astLevel = getJLS3(); @@ -2317,7 +2318,7 @@ public void testBug79904() throws JavaModelException { * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=80221" */ // Resolving "Object" should not be controversial since it is a well known type - @JavacTestIgnore(cause=JavacTestIgnore.VALID_ALTERNATIVE_IMPL) + @Category(value=JavacTestIgnore.class) @JavacTestIgnore(cause=JavacTestIgnore.VALID_ALTERNATIVE_IMPL) public void testBug80221() throws JavaModelException { this.workingCopies = new ICompilationUnit[1]; this.astLevel = getJLS3(); @@ -2574,7 +2575,7 @@ public void testBug93880_15b() throws JavaModelException { } } - @JavacTestIgnore(cause=JavacTestIgnore.JDT_VIOLATES_SPEC) + @Category(value=JavacTestIgnore.class) @JavacTestIgnore(cause=JavacTestIgnore.JDT_VIOLATES_SPEC) public void testBug93880_15c() throws JavaModelException { this.workingCopies = new ICompilationUnit[1]; this.astLevel = getJLS3(); @@ -2792,7 +2793,7 @@ public void testBug94150() throws JavaModelException { * Bug 99507: [javadoc] Infinit loop in DocCommentParser * @see "http://bugs.eclipse.org/bugs/show_bug.cgi?id=99507" */ - @JavacTestIgnore(cause=JavacTestIgnore.JDT_VIOLATES_SPEC) + @Category(value=JavacTestIgnore.class) @JavacTestIgnore(cause=JavacTestIgnore.JDT_VIOLATES_SPEC) public void testBug99507() throws JavaModelException { this.workingCopies = new ICompilationUnit[1]; this.workingCopies[0] = getWorkingCopy("/Converter15/src/javadoc/b99507/X.java", @@ -2979,7 +2980,7 @@ public void testBug100041c() throws JavaModelException { // Syntax like @See I.VE#I.VE(params) is not allowed by javac, specifically // the dot in the method name is not allowed and causes a DCErroneous // See https://docs.oracle.com/javase/7/docs/technotes/tools/windows/javadoc.html#see - @JavacTestIgnore(cause=JavacTestIgnore.JDT_RECOVERS_FROM_BAD_INPUTS) + @Category(value=JavacTestIgnore.class) @JavacTestIgnore(cause=JavacTestIgnore.JDT_RECOVERS_FROM_BAD_INPUTS) public void testBug103304() throws JavaModelException { this.packageBinding = false; // do NOT verify that qualification only can be package name this.workingCopies = new ICompilationUnit[1]; @@ -3289,7 +3290,7 @@ public void testBug125676() throws JavaModelException { * bug125903: [javadoc] Treat whitespace in javadoc tags as invalid tags * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=125903" */ - @JavacTestIgnore(cause=JavacTestIgnore.TESTS_SPECIFIC_RESULT_FOR_UNDEFINED_BEHAVIOR) + @Category(value=JavacTestIgnore.class) @JavacTestIgnore(cause=JavacTestIgnore.TESTS_SPECIFIC_RESULT_FOR_UNDEFINED_BEHAVIOR) public void testBug125903() throws JavaModelException { this.workingCopies = new ICompilationUnit[1]; this.astLevel = getJLS3(); @@ -3447,7 +3448,7 @@ public void testBug228648() throws JavaModelException { verifyComments(unit); } // https://bugs.eclipse.org/bugs/show_bug.cgi?id=196714 - @JavacTestIgnore(cause=JavacTestIgnore.VALID_ALTERNATIVE_IMPL) + @Category(value=JavacTestIgnore.class) @JavacTestIgnore(cause=JavacTestIgnore.VALID_ALTERNATIVE_IMPL) public void test109() throws JavaModelException { verifyComments("test109"); } @@ -3535,7 +3536,7 @@ public void testBug481143c() throws JavaModelException { * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=206345" * @deprecated */ - @JavacTestIgnore(cause=JavacTestIgnore.TESTS_SPECIFIC_RESULT_FOR_UNDEFINED_BEHAVIOR) + @Category(value=JavacTestIgnore.class) @JavacTestIgnore(cause=JavacTestIgnore.TESTS_SPECIFIC_RESULT_FOR_UNDEFINED_BEHAVIOR) public void testBug206345a() throws JavaModelException { this.workingCopies = new ICompilationUnit[1]; this.astLevel = AST.JLS3; @@ -3583,7 +3584,7 @@ public void testBug206345a() throws JavaModelException { * * @deprecated */ - @JavacTestIgnore(cause=JavacTestIgnore.TESTS_SPECIFIC_RESULT_FOR_UNDEFINED_BEHAVIOR) + @Category(value=JavacTestIgnore.class) @JavacTestIgnore(cause=JavacTestIgnore.TESTS_SPECIFIC_RESULT_FOR_UNDEFINED_BEHAVIOR) public void testBug206345b() throws JavaModelException { this.workingCopies = new ICompilationUnit[1]; this.astLevel = AST.JLS3; diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTConverterTest.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTConverterTest.java index 75a5bf838a8..b4f7684ef4d 100644 --- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTConverterTest.java +++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/ASTConverterTest.java @@ -22,8 +22,10 @@ import org.eclipse.jdt.core.*; import org.eclipse.jdt.core.dom.*; import org.eclipse.jdt.core.jdom.*; +import org.eclipse.jdt.core.tests.javac.JavacTestIgnore; import org.eclipse.jdt.core.util.IModifierConstants; import org.eclipse.jdt.internal.compiler.impl.CompilerOptions; +import org.junit.experimental.categories.Category; import junit.framework.Test; @@ -3343,6 +3345,7 @@ public void test0146() throws JavaModelException { * Checking initializers * @deprecated marking deprecated since using deprecated code */ + @Category(value=JavacTestIgnore.class) @JavacTestIgnore(cause=JavacTestIgnore.JDT_VIOLATES_SPEC) public void test0147() throws JavaModelException { ICompilationUnit sourceUnit = getCompilationUnit("Converter" , "src", "test0147", "Test.java"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ char[] source = sourceUnit.getSource().toCharArray(); diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/RunAllTests.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/RunAllTests.java index e62fdee9f85..cd14341e20b 100644 --- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/RunAllTests.java +++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/RunAllTests.java @@ -17,6 +17,7 @@ import java.lang.reflect.Method; import org.eclipse.jdt.core.tests.junit.extension.TestCase; +import org.eclipse.jdt.core.tests.model.RecursivelyFilterableTestSuite; import org.eclipse.jdt.core.tests.util.CleanupAfterSuiteTests; import junit.framework.Test; @@ -49,7 +50,7 @@ public static Class[] getAllTestClasses() { }; } public static Test suite() { - TestSuite ts = new TestSuite(RunAllTests.class.getName()); + TestSuite ts = new RecursivelyFilterableTestSuite(RunAllTests.class.getName()); Class[] testClasses = getAllTestClasses(); // Reset forgotten subsets of tests diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/RunConverterTests.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/RunConverterTests.java index 26e52105e33..79a47a50cdf 100644 --- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/RunConverterTests.java +++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/dom/RunConverterTests.java @@ -18,6 +18,7 @@ import java.util.Arrays; import org.eclipse.jdt.core.tests.junit.extension.TestCase; +import org.eclipse.jdt.core.tests.model.RecursivelyFilterableTestSuite; import junit.framework.Test; import junit.framework.TestSuite; @@ -66,7 +67,7 @@ public static Class[] getAllTestClasses() { }; } public static Test suite() { - TestSuite ts = new TestSuite(RunConverterTests.class.getName()); + TestSuite ts = new RecursivelyFilterableTestSuite(RunConverterTests.class.getName()); ConverterTestSetup.TEST_SUITES = new ArrayList(Arrays.asList(getAllTestClasses())); // Reset forgotten subsets of tests diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/formatter/RunFormatterMassiveTests.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/formatter/RunFormatterMassiveTests.java index f1c6791f6cb..7729155b1e6 100644 --- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/formatter/RunFormatterMassiveTests.java +++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/formatter/RunFormatterMassiveTests.java @@ -19,11 +19,12 @@ import java.util.HashMap; import java.util.Map; +import org.eclipse.jdt.core.tests.junit.extension.TestCase; +import org.eclipse.jdt.core.tests.model.RecursivelyFilterableTestSuite; + import junit.framework.Test; import junit.framework.TestSuite; -import org.eclipse.jdt.core.tests.junit.extension.TestCase; - /** * Runs all formatter tests. */ @@ -45,7 +46,7 @@ public class RunFormatterMassiveTests extends junit.framework.TestCase { }; public static Test suite() { - TestSuite ts = new TestSuite(RunFormatterMassiveTests.class.getName()); + TestSuite ts = new RecursivelyFilterableTestSuite(RunFormatterMassiveTests.class.getName()); // Reset forgotten subsets of tests TestCase.TESTS_PREFIX = null; diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/AllJavaModelTests.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/AllJavaModelTests.java index 2aa769cba86..4bd59895a59 100644 --- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/AllJavaModelTests.java +++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/AllJavaModelTests.java @@ -286,7 +286,7 @@ private static Class[] getDeprecatedJDOMTestClasses() { } public static Test suite() { - TestSuite suite = new TestSuite(AllJavaModelTests.class.getName()); + TestSuite suite = new RecursivelyFilterableTestSuite(AllJavaModelTests.class.getName()); // Hack to load all classes before computing their suite of test cases // this allow to reset test cases subsets while running all Java Model tests... diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/RecursivelyFilterableTestSuite.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/RecursivelyFilterableTestSuite.java new file mode 100644 index 00000000000..a9f4f7483b2 --- /dev/null +++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/RecursivelyFilterableTestSuite.java @@ -0,0 +1,185 @@ +/******************************************************************************* + * Copyright (c) 2024 Red Hat Inc. + * + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License 2.0 + * which accompanies this distribution, and is available at + * https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * Red Hat Inc - initial API and implementation + *******************************************************************************/ +package org.eclipse.jdt.core.tests.model; + +import java.lang.annotation.Annotation; +import java.lang.reflect.Method; +import java.util.Enumeration; +import java.util.Vector; + +import org.junit.runner.Describable; +import org.junit.runner.Description; +import org.junit.runner.manipulation.Filter; +import org.junit.runner.manipulation.Filterable; +import org.junit.runner.manipulation.NoTestsRemainException; + +import junit.extensions.TestDecorator; +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestResult; +import junit.framework.TestSuite; + +public class RecursivelyFilterableTestSuite extends TestSuite implements Filterable { + public SuiteOfTestCases currentTestCase; + private Vector filteredTests = null; + + /* + * Creates a new suite on the given class. This class must be a subclass of + * SetupableTestSuite. + */ + public RecursivelyFilterableTestSuite(Class theClass) { + super(theClass); + } + + public RecursivelyFilterableTestSuite(String name) { + super(name); + } + + public void addTest(Test test) { + super.addTest(test); + } + + @Override + public void filter(Filter filter) throws NoTestsRemainException { + Vector v1 = new Vector(10); + Enumeration en = super.tests(); + while (en.hasMoreElements()) { + Test t = en.nextElement(); + if (filter.shouldRun(makeDescription(t))) { + Test recursed = filterRecurse(filter, t); + v1.add(recursed); + } + } + this.filteredTests = v1; + } + + public Test filterRecurse(Filter filter, Test toTest) throws NoTestsRemainException { + if (toTest instanceof Filterable) { + Filterable adapter = (Filterable) toTest; + adapter.filter(filter); + } else if (toTest instanceof TestSuite) { + TestSuite suite = (TestSuite) toTest; + TestSuite filtered = new TestSuite(suite.getName()); + int n = suite.testCount(); + for (int i = 0; i < n; i++) { + Test test = suite.testAt(i); + if (filter.shouldRun(makeDescription(test))) { + filtered.addTest(test); + } + } + if (filtered.testCount() == 0) { + throw new NoTestsRemainException(); + } + return filtered; + } + return toTest; + } + + public int countTestCases() { + if (this.filteredTests == null) { + return super.countTestCases(); + } + int count = 0; + for (Test each : this.filteredTests) { + count += each.countTestCases(); + } + return count; + } + + /** + * Returns the test at the given index. + */ + public Test testAt(int index) { + return this.filteredTests == null ? super.testAt(index) : this.filteredTests.get(index); + } + + /** + * Returns the number of tests in this suite. + */ + public int testCount() { + return this.filteredTests == null ? super.testCount() : this.filteredTests.size(); + } + + /** + * Returns the tests as an enumeration. + */ + public Enumeration tests() { + return this.filteredTests == null ? super.tests() : this.filteredTests.elements(); + } + + public void superOrFilteredRun(TestResult result) { + if( filteredTests != null ) { + for (Test each : filteredTests) { + if (result.shouldStop()) { + break; + } + runTest(each, result); + } + } else { + superRun(result); + } + } + + public void superRun(TestResult result) { + super.run(result); + } + + private static Annotation[] getAnnotations(TestCase test) { + String methName = test.getName(); + if (test instanceof org.eclipse.jdt.core.tests.junit.extension.TestCase) { + methName = ((org.eclipse.jdt.core.tests.junit.extension.TestCase) test).methodName; + } + try { + Method m = test.getClass().getMethod(methName); + Annotation[] ret = m.getDeclaredAnnotations(); + return ret; + } catch (SecurityException e) { + } catch (NoSuchMethodException e) { + } + return new Annotation[0]; + } + + private static Description makeDescription(Test test) { + if (test instanceof TestCase) { + TestCase tc = (TestCase) test; + return Description.createTestDescription(tc.getClass(), tc.getName(), getAnnotations(tc)); + } else if (test instanceof TestSuite) { + TestSuite ts = (TestSuite) test; + String name = ts.getName() == null ? createSuiteDescription(ts) : ts.getName(); + Description description = Description.createSuiteDescription(name); + int n = ts.testCount(); + for (int i = 0; i < n; i++) { + Description made = makeDescription(ts.testAt(i)); + description.addChild(made); + } + return description; + } else if (test instanceof Describable) { + Describable adapter = (Describable) test; + return adapter.getDescription(); + } else if (test instanceof TestDecorator) { + TestDecorator decorator = (TestDecorator) test; + return makeDescription(decorator.getTest()); + } else { + // This is the best we can do in this case + return Description.createSuiteDescription(test.getClass()); + } + } + + private static String createSuiteDescription(TestSuite ts) { + int count = ts.countTestCases(); + String example = count == 0 ? "" : String.format(" [example: %s]", ts.testAt(0)); + return String.format("TestSuite with %s tests%s", count, example); + } + +} diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/ResolveTests.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/ResolveTests.java index 5ac5907fb34..1417aafbd63 100644 --- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/ResolveTests.java +++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/ResolveTests.java @@ -2667,7 +2667,7 @@ public void testCodeSelectInHybrid1415Projects() throws CoreException, IOExcepti "/Resolve/src/Test.java", "public class TextEditTests extends TestCase {\n" + " {\n" + - " new TestSuite(TextEditTests.class);\n" + + " new RecursivelyFilterableTestSuite(TextEditTests.class);\n" + " }\n" + "}\n"); diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/RunCompletionModelTests.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/RunCompletionModelTests.java index d6ac6d09500..a8e6a671fb6 100644 --- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/RunCompletionModelTests.java +++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/RunCompletionModelTests.java @@ -87,7 +87,7 @@ public RunCompletionModelTests(String name) { } public static Test suite() { - TestSuite ts = new TestSuite(RunCompletionModelTests.class.getName()); + TestSuite ts = new RecursivelyFilterableTestSuite(RunCompletionModelTests.class.getName()); // Store test classes with same "Completion"project AbstractJavaModelCompletionTests.COMPLETION_SUITES = new ArrayList(COMPLETION_SUITES); diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/RunJavaSearchGenericTests.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/RunJavaSearchGenericTests.java index b31feebe6b7..f81ef6c636c 100644 --- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/RunJavaSearchGenericTests.java +++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/RunJavaSearchGenericTests.java @@ -43,7 +43,7 @@ public static Class[] getJavaSearchTestClasses() { }; } public static Test suite() { - TestSuite ts = new TestSuite(RunJavaSearchGenericTests.class.getName()); + TestSuite ts = new RecursivelyFilterableTestSuite(RunJavaSearchGenericTests.class.getName()); // Get all classes AbstractJavaSearchTests.JAVA_SEARCH_SUITES = new ArrayList(Arrays.asList(getJavaSearchTestClasses())); diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/RunJavaSearchTests.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/RunJavaSearchTests.java index d1f1a33ca3e..9e904cd448a 100644 --- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/RunJavaSearchTests.java +++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/RunJavaSearchTests.java @@ -53,7 +53,7 @@ public RunJavaSearchTests(String name) { } public static Test suite() { - TestSuite ts = new TestSuite(RunJavaSearchTests.class.getName()); + TestSuite ts = new RecursivelyFilterableTestSuite(RunJavaSearchTests.class.getName()); // Store test classes with same "JavaSearch"project AbstractJavaSearchTests.JAVA_SEARCH_SUITES = new ArrayList(TEST_CLASSES); diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/SuiteOfTestCases.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/SuiteOfTestCases.java index 3b2118cbe10..f674d58825c 100644 --- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/SuiteOfTestCases.java +++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/SuiteOfTestCases.java @@ -13,28 +13,16 @@ *******************************************************************************/ package org.eclipse.jdt.core.tests.model; -import java.lang.annotation.Annotation; import java.lang.reflect.Field; -import java.lang.reflect.Method; import java.lang.reflect.Modifier; -import java.util.Enumeration; import java.util.Set; -import java.util.Vector; import org.eclipse.test.internal.performance.PerformanceMeterFactory; -import org.junit.runner.Describable; -import org.junit.runner.Description; -import org.junit.runner.manipulation.Filter; -import org.junit.runner.manipulation.Filterable; -import org.junit.runner.manipulation.NoTestsRemainException; -import junit.extensions.TestDecorator; import junit.extensions.TestSetup; import junit.framework.Protectable; import junit.framework.Test; -import junit.framework.TestCase; import junit.framework.TestResult; -import junit.framework.TestSuite; /** * A test case class that can be set up (using the setUpSuite() method) and torn down (using the tearDownSuite() method) @@ -53,11 +41,7 @@ public class SuiteOfTestCases extends org.eclipse.jdt.core.tests.junit.extension * A test suite that initialize the test case's fields once, then that copies the values * of these fields into each subsequent test case. */ - public static class Suite extends TestSuite implements Filterable { - public SuiteOfTestCases currentTestCase; - private Vector filteredTests = null; - - + public static class Suite extends RecursivelyFilterableTestSuite { /* * Creates a new suite on the given class. This class must be a subclass of SetupableTestSuite. */ @@ -68,11 +52,6 @@ public Suite(String name) { super(name); } - - public void addTest(Test test) { - super.addTest(test); - } - private void initialize(SuiteOfTestCases test) { Class currentClass = test.getClass(); while (currentClass != null && !currentClass.equals(SuiteOfTestCases.class)) { @@ -115,22 +94,6 @@ public void protect() throws Exception { result.runProtected(this, p); } - public void superOrFilteredRun(TestResult result) { - if( filteredTests != null ) { - for (Test each : filteredTests) { - if (result.shouldStop()) { - break; - } - runTest(each, result); - } - } else { - superRun(result); - } - } - - public void superRun(TestResult result) { - super.run(result); - } public void runTest(Test test, TestResult result) { SuiteOfTestCases current = (SuiteOfTestCases)test; if (this.currentTestCase == null) { @@ -152,99 +115,8 @@ public void runTest(Test test, TestResult result) { this.currentTestCase = current; } } - @Override - public void filter(Filter filter) throws NoTestsRemainException { - Vector v1 = new Vector(10); - Enumeration en = super.tests(); - while(en.hasMoreElements()) { - Test t = en.nextElement(); - if (filter.shouldRun(makeDescription(t))) { - v1.add(t); - } - } - filteredTests = v1; - } - - public int countTestCases() { - if( filteredTests == null ) { - return super.countTestCases(); - } - int count = 0; - for (Test each : filteredTests) { - count += each.countTestCases(); - } - return count; - } - - /** - * Returns the test at the given index. - */ - public Test testAt(int index) { - return filteredTests == null ? super.testAt(index) : filteredTests.get(index); - } - - /** - * Returns the number of tests in this suite. - */ - public int testCount() { - return filteredTests == null ? super.testCount() : filteredTests.size(); - } - - /** - * Returns the tests as an enumeration. - */ - public Enumeration tests() { - return filteredTests == null ? super.tests() : filteredTests.elements(); - } - - private static Description makeDescription(Test test) { - if (test instanceof TestCase) { - TestCase tc = (TestCase) test; - return Description.createTestDescription(tc.getClass(), tc.getName(), - getAnnotations(tc)); - } else if (test instanceof TestSuite) { - TestSuite ts = (TestSuite) test; - String name = ts.getName() == null ? createSuiteDescription(ts) : ts.getName(); - Description description = Description.createSuiteDescription(name); - int n = ts.testCount(); - for (int i = 0; i < n; i++) { - Description made = makeDescription(ts.testAt(i)); - description.addChild(made); - } - return description; - } else if (test instanceof Describable) { - Describable adapter = (Describable) test; - return adapter.getDescription(); - } else if (test instanceof TestDecorator) { - TestDecorator decorator = (TestDecorator) test; - return makeDescription(decorator.getTest()); - } else { - // This is the best we can do in this case - return Description.createSuiteDescription(test.getClass()); - } - } - private static Annotation[] getAnnotations(TestCase test) { - String methName = test.getName(); - if( test instanceof org.eclipse.jdt.core.tests.junit.extension.TestCase ) { - methName = ((org.eclipse.jdt.core.tests.junit.extension.TestCase)test).methodName; - } - try { - Method m = test.getClass().getMethod(methName); - Annotation[] ret = m.getDeclaredAnnotations(); - return ret; - } catch (SecurityException e) { - } catch (NoSuchMethodException e) { - } - return new Annotation[0]; - } } - private static String createSuiteDescription(TestSuite ts) { - int count = ts.countTestCases(); - String example = count == 0 ? "" : String.format(" [example: %s]", ts.testAt(0)); - return String.format("TestSuite with %s tests%s", count, example); - } - public SuiteOfTestCases(String name) { super(name); } diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/rewrite/describing/ASTRewritingTest.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/rewrite/describing/ASTRewritingTest.java index 35bab16a90c..a49f8c099b3 100644 --- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/rewrite/describing/ASTRewritingTest.java +++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/rewrite/describing/ASTRewritingTest.java @@ -36,6 +36,7 @@ import org.eclipse.jdt.core.dom.rewrite.ASTRewrite; import org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants; import org.eclipse.jdt.core.tests.model.AbstractJavaModelTests; +import org.eclipse.jdt.core.tests.model.RecursivelyFilterableTestSuite; import org.eclipse.jdt.internal.compiler.impl.CompilerOptions; import org.eclipse.jface.text.Document; import org.eclipse.text.edits.TextEdit; @@ -133,7 +134,7 @@ public ASTRewritingTest(String name, int apiLevel) { } public static Test suite() { - TestSuite suite= new TestSuite(ASTRewritingTest.class.getName()); + TestSuite suite= new RecursivelyFilterableTestSuite(ASTRewritingTest.class.getName()); suite.addTest(ASTRewritingExpressionsTest.suite()); @@ -188,7 +189,7 @@ protected static TestSuite createSuite(Class testClass) { * @return test suite that runs all tests with all supported AST levels */ protected static TestSuite createSuite(Class testClass, int classSince) { - TestSuite suite = new TestSuite(testClass.getName()); + TestSuite suite = new RecursivelyFilterableTestSuite(testClass.getName()); try { Method[] methods = testClass.getMethods(); Constructor cons = testClass.getConstructor(new Class[]{String.class, int.class}); diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/rewrite/describing/SourceModifierTest.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/rewrite/describing/SourceModifierTest.java index 6c4d535d6b9..bd5b81bceea 100644 --- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/rewrite/describing/SourceModifierTest.java +++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/rewrite/describing/SourceModifierTest.java @@ -14,15 +14,15 @@ package org.eclipse.jdt.core.tests.rewrite.describing; -import junit.framework.Test; -import junit.framework.TestSuite; - import org.eclipse.jdt.core.tests.model.AbstractJavaModelTests; +import org.eclipse.jdt.core.tests.model.RecursivelyFilterableTestSuite; import org.eclipse.jdt.internal.core.dom.rewrite.SourceModifier; import org.eclipse.jface.text.Document; import org.eclipse.text.edits.MultiTextEdit; import org.eclipse.text.edits.ReplaceEdit; +import junit.framework.Test; + public class SourceModifierTest extends AbstractJavaModelTests { public SourceModifierTest(String name) { @@ -30,7 +30,7 @@ public SourceModifierTest(String name) { } public static Test suite() { - return new TestSuite(SourceModifierTest.class); + return new RecursivelyFilterableTestSuite(SourceModifierTest.class); } public void testRemoveIndents() throws Exception { diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/rewrite/modifying/ASTRewritingModifyingTest.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/rewrite/modifying/ASTRewritingModifyingTest.java index 56fb1e811c6..02fb651f3a7 100644 --- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/rewrite/modifying/ASTRewritingModifyingTest.java +++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/rewrite/modifying/ASTRewritingModifyingTest.java @@ -27,6 +27,7 @@ import org.eclipse.jdt.core.dom.CompilationUnit; import org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants; import org.eclipse.jdt.core.tests.model.AbstractJavaModelTests; +import org.eclipse.jdt.core.tests.model.RecursivelyFilterableTestSuite; import org.eclipse.jdt.core.tests.rewrite.describing.StringAsserts; import org.eclipse.jdt.internal.compiler.impl.CompilerOptions; import org.eclipse.jface.text.BadLocationException; @@ -63,7 +64,7 @@ public ASTRewritingModifyingTest(String name) { } public static Test suite() { - TestSuite suite = new TestSuite(ASTRewritingModifyingTest.class.getName()); + TestSuite suite = new RecursivelyFilterableTestSuite(ASTRewritingModifyingTest.class.getName()); suite.addTest(ASTRewritingModifyingOtherTest.suite()); suite.addTest(ASTRewritingModifyingInsertTest.suite()); suite.addTest(ASTRewritingModifyingReplaceTest.suite()); diff --git a/org.eclipse.jdt.core.tests.model/workspace/Converter/src/junit/framework/TestSuite.java b/org.eclipse.jdt.core.tests.model/workspace/Converter/src/junit/framework/TestSuite.java index 4753efdf8d5..1b73531e308 100644 --- a/org.eclipse.jdt.core.tests.model/workspace/Converter/src/junit/framework/TestSuite.java +++ b/org.eclipse.jdt.core.tests.model/workspace/Converter/src/junit/framework/TestSuite.java @@ -12,7 +12,7 @@ * It runs a collection of test cases. Here is an example using * the dynamic test definition. *
- * TestSuite suite= new TestSuite();
+ * TestSuite suite= new RecursivelyFilterableTestSuite();
  * suite.addTest(new MathTest("testAdd"));
  * suite.addTest(new MathTest("testDivideByZero"));
  * 
@@ -20,7 +20,7 @@ * To do so you pass the class of your TestCase class to the * TestSuite constructor. *
- * TestSuite suite= new TestSuite(MathTest.class);
+ * TestSuite suite= new RecursivelyFilterableTestSuite(MathTest.class);
  * 
* This constructor creates a suite with all the methods * starting with "test" that take no arguments. @@ -50,7 +50,7 @@ public TestSuite(Class theClass, String name) { /** * Constructs a TestSuite from the given class. Adds all the methods * starting with "test" as test cases to the suite. - * Parts of this method was written at 2337 meters in the Hüffihütte, + * Parts of this method was written at 2337 meters in the H�ffih�tte, * Kanton Uri */ public TestSuite(final Class theClass) { @@ -98,7 +98,7 @@ public void addTest(Test test) { * Adds the tests from the given class to the suite */ public void addTestSuite(Class testClass) { - addTest(new TestSuite(testClass)); + addTest(new RecursivelyFilterableTestSuite(testClass)); } private void addTestMethod(Method m, Vector names, Class theClass) { diff --git a/org.eclipse.jdt.core.tests.model/workspace/Converter/src/junit/runner/BaseTestRunner.java b/org.eclipse.jdt.core.tests.model/workspace/Converter/src/junit/runner/BaseTestRunner.java index d580c81745c..ad4d3c120fa 100644 --- a/org.eclipse.jdt.core.tests.model/workspace/Converter/src/junit/runner/BaseTestRunner.java +++ b/org.eclipse.jdt.core.tests.model/workspace/Converter/src/junit/runner/BaseTestRunner.java @@ -100,7 +100,7 @@ public Test getTest(String suiteClassName) { } catch(Exception e) { // try to extract a test suite automatically clearStatus(); - return new TestSuite(testClass); + return new RecursivelyFilterableTestSuite(testClass); } if (! Modifier.isStatic(suiteMethod.getModifiers())) { runFailed("Suite() method must be static"); diff --git a/org.eclipse.jdt.core.tests.model/workspace/Converter/src/junit/textui/TestRunner.java b/org.eclipse.jdt.core.tests.model/workspace/Converter/src/junit/textui/TestRunner.java index 94c8c18749a..cfe57a19556 100644 --- a/org.eclipse.jdt.core.tests.model/workspace/Converter/src/junit/textui/TestRunner.java +++ b/org.eclipse.jdt.core.tests.model/workspace/Converter/src/junit/textui/TestRunner.java @@ -54,7 +54,7 @@ public TestRunner(ResultPrinter printer) { * Runs a suite extracted from a TestCase subclass. */ static public void run(Class testClass) { - run(new TestSuite(testClass)); + run(new RecursivelyFilterableTestSuite(testClass)); } /**