ACCUMULO-4439 Create SunnyDayTest category
Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/775dccd1 Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/775dccd1 Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/775dccd1 Branch: refs/heads/master Commit: 775dccd1fa750c25205b7db9d25fb4b35bb414b8 Parents: 3bf0845 Author: Christopher Tubbs <ctubb...@apache.org> Authored: Wed Aug 31 19:10:38 2016 -0400 Committer: Christopher Tubbs <ctubb...@apache.org> Committed: Thu Sep 1 13:13:50 2016 -0400 ---------------------------------------------------------------------- TESTING.md | 13 ++++++++++- pom.xml | 2 +- .../apache/accumulo/start/KeywordStartIT.java | 3 +++ .../org/apache/accumulo/test/InMemoryMapIT.java | 12 +++++++--- .../org/apache/accumulo/test/ShellServerIT.java | 8 +++++-- .../accumulo/test/categories/SunnyDayTests.java | 23 ++++++++++++++++++++ .../accumulo/test/functional/ExamplesIT.java | 4 ++++ .../accumulo/test/functional/NativeMapIT.java | 3 +++ .../accumulo/test/functional/ReadWriteIT.java | 4 ++++ .../accumulo/test/proxy/TCompactProxyIT.java | 7 +++--- 10 files changed, 69 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/accumulo/blob/775dccd1/TESTING.md ---------------------------------------------------------------------- diff --git a/TESTING.md b/TESTING.md index 4d37055..709eb18 100644 --- a/TESTING.md +++ b/TESTING.md @@ -50,7 +50,18 @@ least 3-4GB of free memory and 10GB of free disk space. ## Test Categories Accumulo uses JUnit Category annotations to categorize certain integration tests based on their runtime requirements. -Presently there are three different categories: +Presently there are several different categories: + +### SunnyDay (`SunnyDayTests`) + +This test category represents a minimal set of tests chosen to verify the basic +functionality of Accumulo. These would typically be run prior to submitting a +patch or pull request, or fixing a bug, to quickly ensure no basic functions +were broken by the change. + +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.SunnyDayTests` +To execute everything except these tests, use `mvn verify -Dfailsafe.excludedGroups=org.apache.accumulo.test.categories.SunnyDayTests` ### MiniAccumuloCluster (`MiniClusterOnlyTest`) http://git-wip-us.apache.org/repos/asf/accumulo/blob/775dccd1/pom.xml ---------------------------------------------------------------------- diff --git a/pom.xml b/pom.xml index cc2b9e0..62f58bb 100644 --- a/pom.xml +++ b/pom.xml @@ -1320,7 +1320,7 @@ <!-- Minimal testing profile. (a.k.a. SunnyDay) --> <id>sunny</id> <properties> - <it.test>ReadWriteIT,SimpleProxyIT,ExamplesIT,ShellServerIT</it.test> + <failsafe.groups>org.apache.accumulo.test.categories.SunnyDayTests</failsafe.groups> </properties> </profile> <!-- profile for our default Hadoop build http://git-wip-us.apache.org/repos/asf/accumulo/blob/775dccd1/test/src/test/java/org/apache/accumulo/start/KeywordStartIT.java ---------------------------------------------------------------------- diff --git a/test/src/test/java/org/apache/accumulo/start/KeywordStartIT.java b/test/src/test/java/org/apache/accumulo/start/KeywordStartIT.java index a5c28bf..4bc2b84 100644 --- a/test/src/test/java/org/apache/accumulo/start/KeywordStartIT.java +++ b/test/src/test/java/org/apache/accumulo/start/KeywordStartIT.java @@ -53,14 +53,17 @@ import org.apache.accumulo.server.util.LoginProperties; import org.apache.accumulo.server.util.ZooKeeperMain; import org.apache.accumulo.shell.Shell; import org.apache.accumulo.start.spi.KeywordExecutable; +import org.apache.accumulo.test.categories.SunnyDayTests; import org.apache.accumulo.tracer.TraceServer; import org.apache.accumulo.tracer.TracerExecutable; import org.apache.accumulo.tserver.TServerExecutable; import org.apache.accumulo.tserver.TabletServer; import org.junit.Test; +import org.junit.experimental.categories.Category; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +@Category(SunnyDayTests.class) public class KeywordStartIT { private final Logger log = LoggerFactory.getLogger(getClass()); http://git-wip-us.apache.org/repos/asf/accumulo/blob/775dccd1/test/src/test/java/org/apache/accumulo/test/InMemoryMapIT.java ---------------------------------------------------------------------- diff --git a/test/src/test/java/org/apache/accumulo/test/InMemoryMapIT.java b/test/src/test/java/org/apache/accumulo/test/InMemoryMapIT.java index 6eec2e8..f13cd2f 100644 --- a/test/src/test/java/org/apache/accumulo/test/InMemoryMapIT.java +++ b/test/src/test/java/org/apache/accumulo/test/InMemoryMapIT.java @@ -16,7 +16,9 @@ */ package org.apache.accumulo.test; -import com.google.common.collect.ImmutableSet; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.fail; + import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; @@ -28,6 +30,7 @@ import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; + import org.apache.accumulo.core.data.ArrayByteSequence; import org.apache.accumulo.core.data.ByteSequence; import org.apache.accumulo.core.data.Key; @@ -35,20 +38,22 @@ import org.apache.accumulo.core.data.Mutation; import org.apache.accumulo.core.data.Range; import org.apache.accumulo.core.data.Value; import org.apache.accumulo.core.iterators.SortedKeyValueIterator; +import org.apache.accumulo.test.categories.SunnyDayTests; import org.apache.accumulo.test.functional.NativeMapIT; import org.apache.accumulo.tserver.InMemoryMap; import org.apache.accumulo.tserver.MemKey; import org.apache.accumulo.tserver.NativeMap; import org.apache.hadoop.io.Text; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.fail; import org.junit.BeforeClass; import org.junit.Rule; import org.junit.Test; +import org.junit.experimental.categories.Category; import org.junit.rules.TemporaryFolder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import com.google.common.collect.ImmutableSet; + /** * Integration Test for https://issues.apache.org/jira/browse/ACCUMULO-4148 * <p> @@ -64,6 +69,7 @@ import org.slf4j.LoggerFactory; * This test has to be an IT in accumulo-test, because libaccumulo is built in 'integration-test' phase of accumulo-native, which currently runs right before * accumulo-test. The tests for DefaultMap could move to a unit test in tserver, but they are here for convenience of viewing both at the same time. */ +@Category(SunnyDayTests.class) public class InMemoryMapIT { private static final Logger log = LoggerFactory.getLogger(InMemoryMapIT.class); http://git-wip-us.apache.org/repos/asf/accumulo/blob/775dccd1/test/src/test/java/org/apache/accumulo/test/ShellServerIT.java ---------------------------------------------------------------------- diff --git a/test/src/test/java/org/apache/accumulo/test/ShellServerIT.java b/test/src/test/java/org/apache/accumulo/test/ShellServerIT.java index b7bf85b..4b7e860 100644 --- a/test/src/test/java/org/apache/accumulo/test/ShellServerIT.java +++ b/test/src/test/java/org/apache/accumulo/test/ShellServerIT.java @@ -39,8 +39,6 @@ import java.util.Map; import java.util.Map.Entry; import java.util.Random; -import jline.console.ConsoleReader; - import org.apache.accumulo.core.Constants; import org.apache.accumulo.core.client.ClientConfiguration; import org.apache.accumulo.core.client.ClientConfiguration.ClientProperty; @@ -66,6 +64,8 @@ import org.apache.accumulo.harness.MiniClusterConfigurationCallback; import org.apache.accumulo.harness.SharedMiniClusterIT; import org.apache.accumulo.minicluster.impl.MiniAccumuloConfigImpl; import org.apache.accumulo.shell.Shell; +import org.apache.accumulo.test.categories.MiniClusterOnlyTest; +import org.apache.accumulo.test.categories.SunnyDayTests; import org.apache.accumulo.test.functional.SlowIterator; import org.apache.accumulo.tracer.TraceServer; import org.apache.commons.configuration.ConfigurationException; @@ -84,12 +84,16 @@ import org.junit.Before; import org.junit.BeforeClass; import org.junit.Rule; import org.junit.Test; +import org.junit.experimental.categories.Category; import org.junit.rules.TestName; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.google.common.collect.Iterators; +import jline.console.ConsoleReader; + +@Category({MiniClusterOnlyTest.class, SunnyDayTests.class}) public class ShellServerIT extends SharedMiniClusterIT { public static class TestOutputStream extends OutputStream { StringBuilder sb = new StringBuilder(); http://git-wip-us.apache.org/repos/asf/accumulo/blob/775dccd1/test/src/test/java/org/apache/accumulo/test/categories/SunnyDayTests.java ---------------------------------------------------------------------- diff --git a/test/src/test/java/org/apache/accumulo/test/categories/SunnyDayTests.java b/test/src/test/java/org/apache/accumulo/test/categories/SunnyDayTests.java new file mode 100644 index 0000000..2d887ea --- /dev/null +++ b/test/src/test/java/org/apache/accumulo/test/categories/SunnyDayTests.java @@ -0,0 +1,23 @@ +/* + * 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; + +/** + * Interface to be used with JUnit Category annotation to represent the integration test is part of a minimal set of tests which should pass for basic + * functionality of Accumulo. + */ +public interface SunnyDayTests {} http://git-wip-us.apache.org/repos/asf/accumulo/blob/775dccd1/test/src/test/java/org/apache/accumulo/test/functional/ExamplesIT.java ---------------------------------------------------------------------- diff --git a/test/src/test/java/org/apache/accumulo/test/functional/ExamplesIT.java b/test/src/test/java/org/apache/accumulo/test/functional/ExamplesIT.java index edc6aed..9ae4dfb 100644 --- a/test/src/test/java/org/apache/accumulo/test/functional/ExamplesIT.java +++ b/test/src/test/java/org/apache/accumulo/test/functional/ExamplesIT.java @@ -87,6 +87,8 @@ import org.apache.accumulo.minicluster.impl.MiniAccumuloClusterImpl.LogWriter; import org.apache.accumulo.minicluster.impl.MiniAccumuloConfigImpl; import org.apache.accumulo.start.Main; import org.apache.accumulo.test.TestIngest; +import org.apache.accumulo.test.categories.AnyClusterTest; +import org.apache.accumulo.test.categories.SunnyDayTests; import org.apache.accumulo.tracer.TraceServer; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; @@ -98,11 +100,13 @@ import org.junit.Assert; import org.junit.Assume; import org.junit.Before; import org.junit.Test; +import org.junit.experimental.categories.Category; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.google.common.collect.Iterators; +@Category({AnyClusterTest.class, SunnyDayTests.class}) public class ExamplesIT extends AccumuloClusterIT { private static final Logger log = LoggerFactory.getLogger(ExamplesIT.class); private static final BatchWriterOpts bwOpts = new BatchWriterOpts(); http://git-wip-us.apache.org/repos/asf/accumulo/blob/775dccd1/test/src/test/java/org/apache/accumulo/test/functional/NativeMapIT.java ---------------------------------------------------------------------- diff --git a/test/src/test/java/org/apache/accumulo/test/functional/NativeMapIT.java b/test/src/test/java/org/apache/accumulo/test/functional/NativeMapIT.java index 9175379..a690a68 100644 --- a/test/src/test/java/org/apache/accumulo/test/functional/NativeMapIT.java +++ b/test/src/test/java/org/apache/accumulo/test/functional/NativeMapIT.java @@ -39,11 +39,14 @@ import org.apache.accumulo.core.data.Key; import org.apache.accumulo.core.data.Value; import org.apache.accumulo.core.iterators.SortedKeyValueIterator; import org.apache.accumulo.core.util.Pair; +import org.apache.accumulo.test.categories.SunnyDayTests; import org.apache.accumulo.tserver.NativeMap; import org.apache.hadoop.io.Text; import org.junit.BeforeClass; import org.junit.Test; +import org.junit.experimental.categories.Category; +@Category(SunnyDayTests.class) public class NativeMapIT { private Key nk(int r) { http://git-wip-us.apache.org/repos/asf/accumulo/blob/775dccd1/test/src/test/java/org/apache/accumulo/test/functional/ReadWriteIT.java ---------------------------------------------------------------------- diff --git a/test/src/test/java/org/apache/accumulo/test/functional/ReadWriteIT.java b/test/src/test/java/org/apache/accumulo/test/functional/ReadWriteIT.java index a49d43c..d6af3a1 100644 --- a/test/src/test/java/org/apache/accumulo/test/functional/ReadWriteIT.java +++ b/test/src/test/java/org/apache/accumulo/test/functional/ReadWriteIT.java @@ -89,15 +89,19 @@ import org.apache.accumulo.minicluster.ServerType; import org.apache.accumulo.test.TestIngest; import org.apache.accumulo.test.TestMultiTableIngest; import org.apache.accumulo.test.VerifyIngest; +import org.apache.accumulo.test.categories.AnyClusterTest; +import org.apache.accumulo.test.categories.SunnyDayTests; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.Text; import org.junit.Test; +import org.junit.experimental.categories.Category; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.google.common.collect.Iterators; +@Category({AnyClusterTest.class, SunnyDayTests.class}) public class ReadWriteIT extends AccumuloClusterIT { private static final Logger log = LoggerFactory.getLogger(ReadWriteIT.class); http://git-wip-us.apache.org/repos/asf/accumulo/blob/775dccd1/test/src/test/java/org/apache/accumulo/test/proxy/TCompactProxyIT.java ---------------------------------------------------------------------- diff --git a/test/src/test/java/org/apache/accumulo/test/proxy/TCompactProxyIT.java b/test/src/test/java/org/apache/accumulo/test/proxy/TCompactProxyIT.java index b2ffbf7..a06baf8 100644 --- a/test/src/test/java/org/apache/accumulo/test/proxy/TCompactProxyIT.java +++ b/test/src/test/java/org/apache/accumulo/test/proxy/TCompactProxyIT.java @@ -17,12 +17,13 @@ package org.apache.accumulo.test.proxy; import org.apache.accumulo.harness.SharedMiniClusterIT; +import org.apache.accumulo.test.categories.MiniClusterOnlyTest; +import org.apache.accumulo.test.categories.SunnyDayTests; import org.apache.thrift.protocol.TCompactProtocol; import org.junit.BeforeClass; +import org.junit.experimental.categories.Category; -/** - * - */ +@Category({MiniClusterOnlyTest.class, SunnyDayTests.class}) public class TCompactProxyIT extends SimpleProxyBase { @BeforeClass