diff --git a/lucene/common-build.xml b/lucene/common-build.xml
index 7728731fd32..a8f499d294e 100644
--- a/lucene/common-build.xml
+++ b/lucene/common-build.xml
@@ -989,6 +989,7 @@
+
diff --git a/lucene/core/src/test/org/apache/lucene/util/junitcompat/TestGroupFiltering.java b/lucene/core/src/test/org/apache/lucene/util/junitcompat/TestGroupFiltering.java
new file mode 100644
index 00000000000..4aa9880f867
--- /dev/null
+++ b/lucene/core/src/test/org/apache/lucene/util/junitcompat/TestGroupFiltering.java
@@ -0,0 +1,61 @@
+package org.apache.lucene.util.junitcompat;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+import org.apache.lucene.util.LuceneTestCase;
+
+import com.carrotsearch.randomizedtesting.annotations.TestGroup;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+public class TestGroupFiltering extends LuceneTestCase {
+ @Documented
+ @Inherited
+ @Retention(RetentionPolicy.RUNTIME)
+ @TestGroup(enabled = false)
+ public @interface Foo {}
+
+ @Documented
+ @Inherited
+ @Retention(RetentionPolicy.RUNTIME)
+ @TestGroup(enabled = false)
+ public @interface Bar {}
+
+ @Documented
+ @Inherited
+ @Retention(RetentionPolicy.RUNTIME)
+ @TestGroup(enabled = false)
+ public @interface Jira {
+ String bug();
+ }
+
+ @Foo
+ public void testFoo() {}
+
+ @Foo @Bar
+ public void testFooBar() {}
+
+ @Bar
+ public void testBar() {}
+
+ @Jira(bug = "JIRA bug reference")
+ public void testJira() {}
+}
diff --git a/lucene/core/src/test/org/apache/lucene/util/junitcompat/WithNestedTests.java b/lucene/core/src/test/org/apache/lucene/util/junitcompat/WithNestedTests.java
index beca55210a3..48792f175e6 100644
--- a/lucene/core/src/test/org/apache/lucene/util/junitcompat/WithNestedTests.java
+++ b/lucene/core/src/test/org/apache/lucene/util/junitcompat/WithNestedTests.java
@@ -28,6 +28,7 @@ import org.apache.lucene.util.TestRuleIgnoreTestSuites;
import org.apache.lucene.util.TestRuleMarkFailure;
import org.junit.After;
import org.junit.Assert;
+import org.junit.Assume;
import org.junit.Before;
import org.junit.ClassRule;
import org.junit.Rule;
@@ -73,6 +74,13 @@ public abstract class WithNestedTests {
private TestRuleIgnoreAfterMaxFailures prevRule;
protected void before() throws Throwable {
+ String filter = System.getProperty("tests.filter");
+ if (filter != null && !filter.trim().isEmpty()) {
+ // We're running with a complex test filter. This will affect nested tests anyway
+ // so ignore them.
+ Assume.assumeTrue(false);
+ }
+
TestRuleIgnoreAfterMaxFailures newRule = new TestRuleIgnoreAfterMaxFailures(Integer.MAX_VALUE);
prevRule = LuceneTestCase.replaceMaxFailureRule(newRule);
}
diff --git a/lucene/ivy-versions.properties b/lucene/ivy-versions.properties
index 04de549c2f9..f2730afb2dd 100644
--- a/lucene/ivy-versions.properties
+++ b/lucene/ivy-versions.properties
@@ -8,7 +8,7 @@
/cglib/cglib-nodep = 2.2
/com.adobe.xmp/xmpcore = 5.1.2
-com.carrotsearch.randomizedtesting.version = 2.0.13
+com.carrotsearch.randomizedtesting.version = 2.1.1
/com.carrotsearch.randomizedtesting/junit4-ant = ${com.carrotsearch.randomizedtesting.version}
/com.carrotsearch.randomizedtesting/randomizedtesting-runner = ${com.carrotsearch.randomizedtesting.version}
diff --git a/lucene/licenses/junit4-ant-2.0.13.jar.sha1 b/lucene/licenses/junit4-ant-2.0.13.jar.sha1
deleted file mode 100644
index 4c41a16e0fe..00000000000
--- a/lucene/licenses/junit4-ant-2.0.13.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-33904a47c5f920d270437ea1075cc9fa5ecb8099
diff --git a/lucene/licenses/junit4-ant-2.1.1.jar.sha1 b/lucene/licenses/junit4-ant-2.1.1.jar.sha1
new file mode 100644
index 00000000000..4340e4c8609
--- /dev/null
+++ b/lucene/licenses/junit4-ant-2.1.1.jar.sha1
@@ -0,0 +1 @@
+a8a7371e11a8b3a4a3eeea81ad3cedafe3e3550e
diff --git a/lucene/licenses/randomizedtesting-runner-2.0.13.jar.sha1 b/lucene/licenses/randomizedtesting-runner-2.0.13.jar.sha1
deleted file mode 100644
index 3ad2bb603f7..00000000000
--- a/lucene/licenses/randomizedtesting-runner-2.0.13.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-bdacac985583621c50de414b1d45b1e6e43f6d1f
diff --git a/lucene/licenses/randomizedtesting-runner-2.1.1.jar.sha1 b/lucene/licenses/randomizedtesting-runner-2.1.1.jar.sha1
new file mode 100644
index 00000000000..2923eedf9fe
--- /dev/null
+++ b/lucene/licenses/randomizedtesting-runner-2.1.1.jar.sha1
@@ -0,0 +1 @@
+5908c4e714dab40ccc892993a21537c7c0d6210c