Repository: accumulo Updated Branches: refs/heads/1.8 ebd42e2ab -> be5c4334a refs/heads/master 762c14844 -> f644fb630
ACCUMULO-4443 Make PerformanceTests group consistent Make PerformanceTests JUnit test category consistent with other test categories. This includes execution by default with `mvn verify`. Updated TESTING.md documentation to reflect the change. Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/be5c4334 Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/be5c4334 Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/be5c4334 Branch: refs/heads/1.8 Commit: be5c4334a7a6fda223c3213c66f4f9acda8e9f46 Parents: ebd42e2 Author: Christopher Tubbs <ctubb...@apache.org> Authored: Thu Sep 1 17:45:50 2016 -0400 Committer: Christopher Tubbs <ctubb...@apache.org> Committed: Thu Sep 1 17:45:50 2016 -0400 ---------------------------------------------------------------------- TESTING.md | 22 +++++--------- pom.xml | 32 +------------------- .../accumulo/test/AssignmentThreadsIT.java | 7 +++-- .../apache/accumulo/test/BalanceFasterIT.java | 7 +++-- .../org/apache/accumulo/test/ManySplitIT.java | 5 +-- .../apache/accumulo/test/PerformanceTest.java | 27 ----------------- .../test/categories/PerformanceTests.java | 25 +++++++++++++++ .../functional/DeleteTableDuringSplitIT.java | 5 +-- .../accumulo/test/functional/DurabilityIT.java | 5 +-- .../test/performance/RollWALPerformanceIT.java | 5 +-- 10 files changed, 54 insertions(+), 86 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/accumulo/blob/be5c4334/TESTING.md ---------------------------------------------------------------------- diff --git a/TESTING.md b/TESTING.md index 34c8073..23feb83 100644 --- a/TESTING.md +++ b/TESTING.md @@ -95,22 +95,16 @@ These tests will run by default during the `integration-test` lifecycle phase us To execute only these tests, use `mvn verify -Dfailsafe.groups=org.apache.accumulo.test.categories.StandaloneCapableClusterTests` To execute everything except these tests, use `mvn verify -Dfailsafe.excludedGroups=org.apache.accumulo.test.categories.StandaloneCapableClusterTests` -### Performance tests +### Performance Tests (`PerformanceTests`) -Performance tests refer to a small subset of integration tests which are not activated by default. These tests allow -developers to write tests which specifically exercise expected performance which may be dependent on the available -resources of the host machine. Normal integration tests should be capable of running anywhere with a lower-bound on -available memory. - -These tests are designated using the JUnit Category annotation with the `PerformanceTest` interface in the -accumulo-test module. See the `PerformanceTest` interface for more information on how to use this to write your -own performance test. - -To invoke the performance tests, activate the `performanceTests` Maven profile in addition to the integration-test -or verify Maven lifecycle. For example `mvn verify -PperformanceTests` would invoke all of the integration tests: -both normal integration tests and the performance tests. There is presently no way to invoke only the performance -tests without the rest of the integration tests. +This category of tests refer to integration tests written specifically to +exercise expected performance, which may be dependent on the available +resources of the host machine. Normal integration tests should be capable of +running anywhere with a lower-bound on available memory. +These tests will run by default during the `integration-test` lifecycle phase using `mvn verify`. +To execute only these tests, use `mvn verify -Dfailsafe.groups=org.apache.accumulo.test.categories.PerformanceTests` +To execute everything except these tests, use `mvn verify -Dfailsafe.excludedGroups=org.apache.accumulo.test.categories.PerformanceTests` ## Configuration for Standalone clusters http://git-wip-us.apache.org/repos/asf/accumulo/blob/be5c4334/pom.xml ---------------------------------------------------------------------- diff --git a/pom.xml b/pom.xml index afd134b..ca1c560 100644 --- a/pom.xml +++ b/pom.xml @@ -116,8 +116,6 @@ <url>https://builds.apache.org/view/A-D/view/Accumulo/</url> </ciManagement> <properties> - <!-- Interface used to separate tests with JUnit category --> - <accumulo.performanceTests>org.apache.accumulo.test.PerformanceTest</accumulo.performanceTests> <!-- used for filtering the java source with the current version --> <accumulo.release.version>${project.version}</accumulo.release.version> <assembly.tarLongFileMode>posix</assembly.tarLongFileMode> @@ -129,7 +127,7 @@ <eclipseFormatterStyle>${project.parent.basedir}/contrib/Eclipse-Accumulo-Codestyle.xml</eclipseFormatterStyle> <!-- extra release args for testing --> <extraReleaseArgs /> - <failsafe.excludedGroups>${accumulo.performanceTests}</failsafe.excludedGroups> + <failsafe.excludedGroups /> <failsafe.groups /> <!-- findbugs-maven-plugin won't work on jdk8 or later; set to 3.0.0 or newer --> <findbugs.version>3.0.3</findbugs.version> @@ -1371,34 +1369,6 @@ </build> </profile> <profile> - <id>performanceTests</id> - <build> - <pluginManagement> - <plugins> - <!-- Add an additional execution for performance tests --> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-failsafe-plugin</artifactId> - <executions> - <execution> - <!-- Run only the performance tests --> - <id>run-performance-tests</id> - <goals> - <goal>integration-test</goal> - <goal>verify</goal> - </goals> - <configuration> - <excludedGroups /> - <groups>${accumulo.performanceTests}</groups> - </configuration> - </execution> - </executions> - </plugin> - </plugins> - </pluginManagement> - </build> - </profile> - <profile> <id>aggregate-javadocs</id> <build> <pluginManagement> http://git-wip-us.apache.org/repos/asf/accumulo/blob/be5c4334/test/src/main/java/org/apache/accumulo/test/AssignmentThreadsIT.java ---------------------------------------------------------------------- diff --git a/test/src/main/java/org/apache/accumulo/test/AssignmentThreadsIT.java b/test/src/main/java/org/apache/accumulo/test/AssignmentThreadsIT.java index 7253e45..bbc1d47 100644 --- a/test/src/main/java/org/apache/accumulo/test/AssignmentThreadsIT.java +++ b/test/src/main/java/org/apache/accumulo/test/AssignmentThreadsIT.java @@ -16,6 +16,7 @@ */ package org.apache.accumulo.test; +import static com.google.common.util.concurrent.Uninterruptibles.sleepUninterruptibly; import static org.junit.Assert.assertTrue; import java.util.Random; @@ -26,16 +27,16 @@ import java.util.concurrent.TimeUnit; import org.apache.accumulo.core.client.Connector; import org.apache.accumulo.core.conf.Property; import org.apache.accumulo.minicluster.impl.MiniAccumuloConfigImpl; +import org.apache.accumulo.test.categories.MiniClusterOnlyTests; +import org.apache.accumulo.test.categories.PerformanceTests; import org.apache.accumulo.test.functional.ConfigurableMacBase; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.io.Text; import org.junit.Test; import org.junit.experimental.categories.Category; -import static com.google.common.util.concurrent.Uninterruptibles.sleepUninterruptibly; - // ACCUMULO-1177 -@Category(PerformanceTest.class) +@Category({MiniClusterOnlyTests.class, PerformanceTests.class}) public class AssignmentThreadsIT extends ConfigurableMacBase { @Override http://git-wip-us.apache.org/repos/asf/accumulo/blob/be5c4334/test/src/main/java/org/apache/accumulo/test/BalanceFasterIT.java ---------------------------------------------------------------------- diff --git a/test/src/main/java/org/apache/accumulo/test/BalanceFasterIT.java b/test/src/main/java/org/apache/accumulo/test/BalanceFasterIT.java index 327b42b..6e01cea 100644 --- a/test/src/main/java/org/apache/accumulo/test/BalanceFasterIT.java +++ b/test/src/main/java/org/apache/accumulo/test/BalanceFasterIT.java @@ -16,6 +16,7 @@ */ package org.apache.accumulo.test; +import static com.google.common.util.concurrent.Uninterruptibles.sleepUninterruptibly; import static org.junit.Assert.assertTrue; import static org.junit.Assume.assumeFalse; @@ -35,6 +36,8 @@ import org.apache.accumulo.core.metadata.MetadataTable; import org.apache.accumulo.core.metadata.schema.MetadataSchema; import org.apache.accumulo.core.security.Authorizations; import org.apache.accumulo.minicluster.impl.MiniAccumuloConfigImpl; +import org.apache.accumulo.test.categories.MiniClusterOnlyTests; +import org.apache.accumulo.test.categories.PerformanceTests; import org.apache.accumulo.test.functional.ConfigurableMacBase; import org.apache.accumulo.test.mrit.IntegrationTestMapReduce; import org.apache.hadoop.conf.Configuration; @@ -43,10 +46,8 @@ import org.junit.BeforeClass; import org.junit.Test; import org.junit.experimental.categories.Category; -import static com.google.common.util.concurrent.Uninterruptibles.sleepUninterruptibly; - // ACCUMULO-2952 -@Category(PerformanceTest.class) +@Category({MiniClusterOnlyTests.class, PerformanceTests.class}) public class BalanceFasterIT extends ConfigurableMacBase { @Override http://git-wip-us.apache.org/repos/asf/accumulo/blob/be5c4334/test/src/main/java/org/apache/accumulo/test/ManySplitIT.java ---------------------------------------------------------------------- diff --git a/test/src/main/java/org/apache/accumulo/test/ManySplitIT.java b/test/src/main/java/org/apache/accumulo/test/ManySplitIT.java index 09aa777..cec93ed 100644 --- a/test/src/main/java/org/apache/accumulo/test/ManySplitIT.java +++ b/test/src/main/java/org/apache/accumulo/test/ManySplitIT.java @@ -33,16 +33,17 @@ import org.apache.accumulo.fate.util.UtilWaitThread; import org.apache.accumulo.minicluster.MemoryUnit; import org.apache.accumulo.minicluster.ServerType; import org.apache.accumulo.minicluster.impl.MiniAccumuloConfigImpl; +import org.apache.accumulo.test.categories.MiniClusterOnlyTests; +import org.apache.accumulo.test.categories.PerformanceTests; import org.apache.accumulo.test.functional.ConfigurableMacBase; import org.apache.accumulo.test.mrit.IntegrationTestMapReduce; -import org.apache.accumulo.test.PerformanceTest; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.io.Text; import org.junit.BeforeClass; import org.junit.Test; import org.junit.experimental.categories.Category; -@Category(PerformanceTest.class) +@Category({MiniClusterOnlyTests.class, PerformanceTests.class}) public class ManySplitIT extends ConfigurableMacBase { final int SPLITS = 10_000; http://git-wip-us.apache.org/repos/asf/accumulo/blob/be5c4334/test/src/main/java/org/apache/accumulo/test/PerformanceTest.java ---------------------------------------------------------------------- diff --git a/test/src/main/java/org/apache/accumulo/test/PerformanceTest.java b/test/src/main/java/org/apache/accumulo/test/PerformanceTest.java deleted file mode 100644 index ab652c1..0000000 --- a/test/src/main/java/org/apache/accumulo/test/PerformanceTest.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * 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. - */ -package org.apache.accumulo.test; - -/** - * Annotate integration tests which test performance-related aspects of Accumulo or are sensitive to timings and hardware capabilities. - * <p> - * Intended to be used with the JUnit Category annotation on integration test classes. The Category annotation should be placed at the class-level. Test class - * names should still be suffixed with 'IT' as the rest of the integration tests. - */ -public interface PerformanceTest { - -} http://git-wip-us.apache.org/repos/asf/accumulo/blob/be5c4334/test/src/main/java/org/apache/accumulo/test/categories/PerformanceTests.java ---------------------------------------------------------------------- diff --git a/test/src/main/java/org/apache/accumulo/test/categories/PerformanceTests.java b/test/src/main/java/org/apache/accumulo/test/categories/PerformanceTests.java new file mode 100644 index 0000000..887e2c3 --- /dev/null +++ b/test/src/main/java/org/apache/accumulo/test/categories/PerformanceTests.java @@ -0,0 +1,25 @@ +/* + * 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. + */ +package org.apache.accumulo.test.categories; + +/** + * Annotate integration tests which test performance-related aspects of Accumulo or are sensitive to timings and hardware capabilities. + * <p> + * Intended to be used with the JUnit Category annotation on integration test classes. The Category annotation should be placed at the class-level. Test class + * names should still be suffixed with 'IT' as the rest of the integration tests. + */ +public interface PerformanceTests {} http://git-wip-us.apache.org/repos/asf/accumulo/blob/be5c4334/test/src/main/java/org/apache/accumulo/test/functional/DeleteTableDuringSplitIT.java ---------------------------------------------------------------------- diff --git a/test/src/main/java/org/apache/accumulo/test/functional/DeleteTableDuringSplitIT.java b/test/src/main/java/org/apache/accumulo/test/functional/DeleteTableDuringSplitIT.java index 2c34537..8145031 100644 --- a/test/src/main/java/org/apache/accumulo/test/functional/DeleteTableDuringSplitIT.java +++ b/test/src/main/java/org/apache/accumulo/test/functional/DeleteTableDuringSplitIT.java @@ -29,14 +29,15 @@ import org.apache.accumulo.core.client.TableNotFoundException; import org.apache.accumulo.core.util.SimpleThreadPool; import org.apache.accumulo.fate.util.UtilWaitThread; import org.apache.accumulo.harness.AccumuloClusterHarness; -import org.apache.accumulo.test.PerformanceTest; +import org.apache.accumulo.test.categories.PerformanceTests; +import org.apache.accumulo.test.categories.StandaloneCapableClusterTests; import org.apache.hadoop.io.Text; import org.junit.Assert; import org.junit.Test; import org.junit.experimental.categories.Category; // ACCUMULO-2361 -@Category(PerformanceTest.class) +@Category({StandaloneCapableClusterTests.class, PerformanceTests.class}) public class DeleteTableDuringSplitIT extends AccumuloClusterHarness { @Override http://git-wip-us.apache.org/repos/asf/accumulo/blob/be5c4334/test/src/main/java/org/apache/accumulo/test/functional/DurabilityIT.java ---------------------------------------------------------------------- diff --git a/test/src/main/java/org/apache/accumulo/test/functional/DurabilityIT.java b/test/src/main/java/org/apache/accumulo/test/functional/DurabilityIT.java index 00d715f..91bbabc 100644 --- a/test/src/main/java/org/apache/accumulo/test/functional/DurabilityIT.java +++ b/test/src/main/java/org/apache/accumulo/test/functional/DurabilityIT.java @@ -35,8 +35,9 @@ import org.apache.accumulo.core.security.Authorizations; import org.apache.accumulo.minicluster.ServerType; import org.apache.accumulo.minicluster.impl.MiniAccumuloConfigImpl; import org.apache.accumulo.minicluster.impl.ProcessReference; +import org.apache.accumulo.test.categories.MiniClusterOnlyTests; +import org.apache.accumulo.test.categories.PerformanceTests; import org.apache.accumulo.test.mrit.IntegrationTestMapReduce; -import org.apache.accumulo.test.PerformanceTest; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.RawLocalFileSystem; import org.junit.BeforeClass; @@ -47,7 +48,7 @@ import org.slf4j.LoggerFactory; import com.google.common.collect.Iterators; -@Category(PerformanceTest.class) +@Category({MiniClusterOnlyTests.class, PerformanceTests.class}) public class DurabilityIT extends ConfigurableMacBase { private static final Logger log = LoggerFactory.getLogger(DurabilityIT.class); http://git-wip-us.apache.org/repos/asf/accumulo/blob/be5c4334/test/src/main/java/org/apache/accumulo/test/performance/RollWALPerformanceIT.java ---------------------------------------------------------------------- diff --git a/test/src/main/java/org/apache/accumulo/test/performance/RollWALPerformanceIT.java b/test/src/main/java/org/apache/accumulo/test/performance/RollWALPerformanceIT.java index 827d6d8..efc03dd 100644 --- a/test/src/main/java/org/apache/accumulo/test/performance/RollWALPerformanceIT.java +++ b/test/src/main/java/org/apache/accumulo/test/performance/RollWALPerformanceIT.java @@ -29,17 +29,18 @@ import org.apache.accumulo.core.metadata.MetadataTable; import org.apache.accumulo.core.metadata.RootTable; import org.apache.accumulo.minicluster.ServerType; import org.apache.accumulo.minicluster.impl.MiniAccumuloConfigImpl; +import org.apache.accumulo.test.categories.MiniClusterOnlyTests; +import org.apache.accumulo.test.categories.PerformanceTests; import org.apache.accumulo.test.continuous.ContinuousIngest; import org.apache.accumulo.test.functional.ConfigurableMacBase; import org.apache.accumulo.test.mrit.IntegrationTestMapReduce; -import org.apache.accumulo.test.PerformanceTest; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.io.Text; import org.junit.BeforeClass; import org.junit.Test; import org.junit.experimental.categories.Category; -@Category(PerformanceTest.class) +@Category({MiniClusterOnlyTests.class, PerformanceTests.class}) public class RollWALPerformanceIT extends ConfigurableMacBase { @BeforeClass