diff --git a/TESTING.asciidoc b/TESTING.asciidoc index b2290a42f48..12396bc4e19 100644 --- a/TESTING.asciidoc +++ b/TESTING.asciidoc @@ -62,6 +62,29 @@ Run any test methods that contain 'esi' (like: ...r*esi*ze...). mvn test "-Dtests.method=*esi*" ------------------------------- +You can also filter tests by certain annotations ie: + + * `@Slow` - tests that are know to take a long time to execute + * `@Nightly` - tests that only run in nightly builds (disabled by default) + * `@Integration` - integration tests + * `@Backwards` - backwards compatibility tests (disabled by default) + * `@AwaitsFix` - tests that are waiting for a bugfix (disabled by default) + * `@BadApple` - tests that are known to fail randomly (disabled by default) + +Those annotation names can be combined into a filter expression like: + +------------------------------------------------ +mvn test -Dtests.filter="@nightly and not @slow" +------------------------------------------------ + +to run all nightly test but not the ones that are slow. `tests.filter` supports +the boolean operators `and, or, not` and grouping ie: + + +--------------------------------------------------------------- +mvn test -Dtests.filter="@nightly and not(@slow or @backwards)" +--------------------------------------------------------------- + === Seed and repetitions. Run with a given seed (seed is a hex-encoded long). @@ -184,14 +207,14 @@ To run backwards compatibiilty tests untar or unzip a release and run the tests with the following command: --------------------------------------------------------------------------- -mvn test -Dtests.bwc=true -Dtests.bwc.version=x.y.z -Dtests.bwc.path=/path/to/elasticsearch +mvn test -Dtests.filter="@backwards" -Dtests.bwc.version=x.y.z -Dtests.bwc.path=/path/to/elasticsearch --------------------------------------------------------------------------- If the elasticsearch release is placed under `./backwards/elasticsearch-x.y.z` the path can be omitted: --------------------------------------------------------------------------- -mvn test -Dtests.bwc=true -Dtests.bwc.version=x.y.z +mvn test -Dtests.filter="@backwards" -Dtests.bwc.version=x.y.z --------------------------------------------------------------------------- To setup the bwc test environment execute the following steps (provided you are diff --git a/pom.xml b/pom.xml index 0c5a190c27e..9287f0348ff 100644 --- a/pom.xml +++ b/pom.xml @@ -501,6 +501,7 @@ ${tests.network} ${tests.cluster} ${tests.heap.size} + ${tests.filter} ${env.ES_TEST_LOCAL} ${es.node.mode} ${es.logger.level} diff --git a/src/test/java/org/apache/lucene/search/postingshighlight/CustomPassageFormatterTests.java b/src/test/java/org/apache/lucene/search/postingshighlight/CustomPassageFormatterTests.java index 1bdf4e13978..23995029259 100644 --- a/src/test/java/org/apache/lucene/search/postingshighlight/CustomPassageFormatterTests.java +++ b/src/test/java/org/apache/lucene/search/postingshighlight/CustomPassageFormatterTests.java @@ -21,6 +21,7 @@ package org.apache.lucene.search.postingshighlight; import org.apache.lucene.search.highlight.DefaultEncoder; import org.apache.lucene.search.highlight.SimpleHTMLEncoder; import org.apache.lucene.util.BytesRef; +import org.elasticsearch.test.ElasticsearchTestCase; import org.junit.Test; import static org.hamcrest.CoreMatchers.equalTo; @@ -28,7 +29,7 @@ import static org.hamcrest.CoreMatchers.notNullValue; import static org.hamcrest.MatcherAssert.assertThat; -public class CustomPassageFormatterTests { +public class CustomPassageFormatterTests extends ElasticsearchTestCase { @Test public void testSimpleFormat() { diff --git a/src/test/java/org/apache/lucene/util/AbstractRandomizedTest.java b/src/test/java/org/apache/lucene/util/AbstractRandomizedTest.java index c934eb624a8..88eaf9baf16 100644 --- a/src/test/java/org/apache/lucene/util/AbstractRandomizedTest.java +++ b/src/test/java/org/apache/lucene/util/AbstractRandomizedTest.java @@ -77,12 +77,12 @@ public abstract class AbstractRandomizedTest extends RandomizedTest { @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) @TestGroup(enabled = false, sysProperty = TESTS_BACKWARDS_COMPATIBILITY) - public @interface BackwardsCompatibilityTest { + public @interface Backwards { } /** * Key used to set the path for the elasticsearch executable used to run backwards compatibility tests from - * via the commandline -D{@value #TESTS_BACKWARDS_COMPATIBILITY_PATH} + * via the commandline -D{@value #TESTS_BACKWARDS_COMPATIBILITY} */ public static final String TESTS_BACKWARDS_COMPATIBILITY = "tests.bwc"; @@ -101,7 +101,7 @@ public abstract class AbstractRandomizedTest extends RandomizedTest { @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) @TestGroup(enabled = true, sysProperty = SYSPROP_INTEGRATION) - public @interface IntegrationTests { + public @interface Integration { } // -------------------------------------------------------------------- diff --git a/src/test/java/org/elasticsearch/common/lucene/LuceneTest.java b/src/test/java/org/elasticsearch/common/lucene/LuceneTest.java index 159bc25bee6..7768697c94d 100644 --- a/src/test/java/org/elasticsearch/common/lucene/LuceneTest.java +++ b/src/test/java/org/elasticsearch/common/lucene/LuceneTest.java @@ -20,6 +20,7 @@ package org.elasticsearch.common.lucene; import org.apache.lucene.util.Version; import org.elasticsearch.common.logging.ESLogger; import org.elasticsearch.common.logging.ESLoggerFactory; +import org.elasticsearch.test.ElasticsearchTestCase; import org.junit.Test; import static org.hamcrest.MatcherAssert.assertThat; @@ -28,7 +29,7 @@ import static org.hamcrest.core.IsEqual.equalTo; /** * */ -public class LuceneTest { +public class LuceneTest extends ElasticsearchTestCase { /* diff --git a/src/test/java/org/elasticsearch/common/util/ArrayUtilsTests.java b/src/test/java/org/elasticsearch/common/util/ArrayUtilsTests.java index aef86c24949..f85ab890214 100644 --- a/src/test/java/org/elasticsearch/common/util/ArrayUtilsTests.java +++ b/src/test/java/org/elasticsearch/common/util/ArrayUtilsTests.java @@ -19,6 +19,7 @@ package org.elasticsearch.common.util; +import org.elasticsearch.test.ElasticsearchTestCase; import org.junit.Test; import java.util.Arrays; @@ -30,7 +31,7 @@ import static org.hamcrest.Matchers.is; /** * */ -public class ArrayUtilsTests { +public class ArrayUtilsTests extends ElasticsearchTestCase { @Test public void binarySearch() throws Exception { diff --git a/src/test/java/org/elasticsearch/index/analysis/PreBuiltCharFilterFactoryFactoryTests.java b/src/test/java/org/elasticsearch/index/analysis/PreBuiltCharFilterFactoryFactoryTests.java index d7d5f71a460..7643f611641 100644 --- a/src/test/java/org/elasticsearch/index/analysis/PreBuiltCharFilterFactoryFactoryTests.java +++ b/src/test/java/org/elasticsearch/index/analysis/PreBuiltCharFilterFactoryFactoryTests.java @@ -22,6 +22,7 @@ import org.elasticsearch.Version; import org.elasticsearch.cluster.metadata.IndexMetaData; import org.elasticsearch.common.settings.ImmutableSettings; import org.elasticsearch.indices.analysis.PreBuiltCharFilters; +import org.elasticsearch.test.ElasticsearchTestCase; import org.junit.Test; import static org.hamcrest.CoreMatchers.*; @@ -30,7 +31,7 @@ import static org.hamcrest.MatcherAssert.assertThat; /** * */ -public class PreBuiltCharFilterFactoryFactoryTests { +public class PreBuiltCharFilterFactoryFactoryTests extends ElasticsearchTestCase { @Test public void testThatDifferentVersionsCanBeLoaded() { diff --git a/src/test/java/org/elasticsearch/index/mapper/lucene/DoubleIndexingDocTest.java b/src/test/java/org/elasticsearch/index/mapper/lucene/DoubleIndexingDocTest.java index b2f90aa4476..37ac8d13bc0 100644 --- a/src/test/java/org/elasticsearch/index/mapper/lucene/DoubleIndexingDocTest.java +++ b/src/test/java/org/elasticsearch/index/mapper/lucene/DoubleIndexingDocTest.java @@ -24,12 +24,15 @@ import org.apache.lucene.index.IndexWriter; import org.apache.lucene.index.IndexWriterConfig; import org.apache.lucene.search.IndexSearcher; import org.apache.lucene.search.TopDocs; +import org.apache.lucene.store.Directory; import org.apache.lucene.store.RAMDirectory; import org.elasticsearch.common.lucene.Lucene; import org.elasticsearch.common.xcontent.XContentFactory; import org.elasticsearch.index.mapper.DocumentMapper; import org.elasticsearch.index.mapper.ParsedDocument; import org.elasticsearch.index.mapper.MapperTestUtils; +import org.elasticsearch.test.ElasticsearchLuceneTestCase; +import org.elasticsearch.test.ElasticsearchTestCase; import org.junit.Test; import static org.hamcrest.MatcherAssert.assertThat; @@ -38,11 +41,12 @@ import static org.hamcrest.Matchers.equalTo; /** * */ -public class DoubleIndexingDocTest { +public class DoubleIndexingDocTest extends ElasticsearchLuceneTestCase { @Test public void testDoubleIndexingSameDoc() throws Exception { - IndexWriter writer = new IndexWriter(new RAMDirectory(), new IndexWriterConfig(Lucene.VERSION, Lucene.STANDARD_ANALYZER)); + Directory dir = newDirectory(); + IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(random(), TEST_VERSION_CURRENT, Lucene.STANDARD_ANALYZER)); String mapping = XContentFactory.jsonBuilder().startObject().startObject("type") .startObject("properties").endObject() @@ -85,5 +89,8 @@ public class DoubleIndexingDocTest { topDocs = searcher.search(mapper.mappers().smartName("field5").mapper().termQuery("3", null), 10); assertThat(topDocs.totalHits, equalTo(2)); + writer.close(); + reader.close(); + dir.close(); } } diff --git a/src/test/java/org/elasticsearch/index/mapper/lucene/StoredNumericValuesTest.java b/src/test/java/org/elasticsearch/index/mapper/lucene/StoredNumericValuesTest.java index 354d9ea352f..ac70e92a054 100644 --- a/src/test/java/org/elasticsearch/index/mapper/lucene/StoredNumericValuesTest.java +++ b/src/test/java/org/elasticsearch/index/mapper/lucene/StoredNumericValuesTest.java @@ -33,6 +33,7 @@ import org.elasticsearch.index.fieldvisitor.CustomFieldsVisitor; import org.elasticsearch.index.mapper.DocumentMapper; import org.elasticsearch.index.mapper.ParsedDocument; import org.elasticsearch.index.mapper.MapperTestUtils; +import org.elasticsearch.test.ElasticsearchTestCase; import org.junit.Test; import java.util.*; @@ -43,7 +44,7 @@ import static org.hamcrest.Matchers.equalTo; /** * */ -public class StoredNumericValuesTest { +public class StoredNumericValuesTest extends ElasticsearchTestCase{ @Test public void testBytesAndNumericRepresentation() throws Exception { diff --git a/src/test/java/org/elasticsearch/index/merge/policy/MergePolicySettingsTest.java b/src/test/java/org/elasticsearch/index/merge/policy/MergePolicySettingsTest.java index de3456b7228..e62aca50b1d 100644 --- a/src/test/java/org/elasticsearch/index/merge/policy/MergePolicySettingsTest.java +++ b/src/test/java/org/elasticsearch/index/merge/policy/MergePolicySettingsTest.java @@ -28,6 +28,7 @@ import org.elasticsearch.index.store.DirectoryService; import org.elasticsearch.index.store.Store; import org.elasticsearch.index.store.distributor.LeastUsedDistributor; import org.elasticsearch.index.store.ram.RamDirectoryService; +import org.elasticsearch.test.ElasticsearchTestCase; import org.junit.Test; import java.io.IOException; @@ -35,8 +36,9 @@ import java.io.IOException; import static org.elasticsearch.common.settings.ImmutableSettings.Builder.EMPTY_SETTINGS; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.equalTo; +import static org.hamcrest.Matchers.is; -public class MergePolicySettingsTest { +public class MergePolicySettingsTest extends ElasticsearchTestCase { protected final ShardId shardId = new ShardId(new Index("index"), 1); @@ -87,19 +89,19 @@ public class MergePolicySettingsTest { IndexSettingsService service = new IndexSettingsService(new Index("test"), EMPTY_SETTINGS); try { new LogDocMergePolicyProvider(createStore(build(-0.1)), service).newMergePolicy().getNoCFSRatio(); - assertThat("exception expected", false); + fail("exception expected"); } catch (ElasticsearchIllegalArgumentException ex) { } try { new LogDocMergePolicyProvider(createStore(build(1.1)), service).newMergePolicy().getNoCFSRatio(); - assertThat("exception expected", false); + fail("exception expected"); } catch (ElasticsearchIllegalArgumentException ex) { } try { new LogDocMergePolicyProvider(createStore(build("Falsch")), service).newMergePolicy().getNoCFSRatio(); - assertThat("exception expected", false); + fail("exception expected"); } catch (ElasticsearchIllegalArgumentException ex) { } diff --git a/src/test/java/org/elasticsearch/search/aggregations/support/PathTests.java b/src/test/java/org/elasticsearch/search/aggregations/support/PathTests.java index a1fd529dfb6..26b485bc1f7 100644 --- a/src/test/java/org/elasticsearch/search/aggregations/support/PathTests.java +++ b/src/test/java/org/elasticsearch/search/aggregations/support/PathTests.java @@ -20,6 +20,7 @@ package org.elasticsearch.search.aggregations.support; import org.elasticsearch.search.aggregations.AggregationExecutionException; +import org.elasticsearch.test.ElasticsearchTestCase; import org.junit.Test; import java.util.ArrayList; @@ -32,7 +33,7 @@ import static org.junit.Assert.fail; /** * */ -public class PathTests { +public class PathTests extends ElasticsearchTestCase { @Test public void testInvalidPaths() throws Exception { diff --git a/src/test/java/org/elasticsearch/snapshots/SnapshotUtilsTests.java b/src/test/java/org/elasticsearch/snapshots/SnapshotUtilsTests.java index 54753334b3a..8304028f2bc 100644 --- a/src/test/java/org/elasticsearch/snapshots/SnapshotUtilsTests.java +++ b/src/test/java/org/elasticsearch/snapshots/SnapshotUtilsTests.java @@ -20,6 +20,7 @@ package org.elasticsearch.snapshots; import com.google.common.collect.ImmutableList; import org.elasticsearch.action.support.IndicesOptions; +import org.elasticsearch.test.ElasticsearchTestCase; import org.junit.Test; import static org.hamcrest.MatcherAssert.assertThat; @@ -27,7 +28,7 @@ import static org.hamcrest.Matchers.containsInAnyOrder; /** */ -public class SnapshotUtilsTests { +public class SnapshotUtilsTests extends ElasticsearchTestCase { @Test public void testIndexNameFiltering() { assertIndexNameFiltering(new String[]{"foo", "bar", "baz"}, new String[]{}, new String[]{"foo", "bar", "baz"}); diff --git a/src/test/java/org/elasticsearch/test/ElasticsearchBackwardsCompatIntegrationTest.java b/src/test/java/org/elasticsearch/test/ElasticsearchBackwardsCompatIntegrationTest.java index d290b03616a..94772ca7276 100644 --- a/src/test/java/org/elasticsearch/test/ElasticsearchBackwardsCompatIntegrationTest.java +++ b/src/test/java/org/elasticsearch/test/ElasticsearchBackwardsCompatIntegrationTest.java @@ -18,6 +18,7 @@ */ package org.elasticsearch.test; +import org.apache.lucene.util.AbstractRandomizedTest; import org.elasticsearch.common.settings.ImmutableSettings; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.discovery.DiscoveryModule; @@ -43,12 +44,12 @@ import java.io.IOException; *

* Note: this base class is still experimental and might have bugs or leave external processes running behind. *

- * Backwards compatibility tests are disabled by default via {@link BackwardsCompatibilityTest} annotation. + * Backwards compatibility tests are disabled by default via {@link org.apache.lucene.util.AbstractRandomizedTest.Backwards} annotation. * The following system variables control the test execution: *