This is an automated email from the ASF dual-hosted git repository.
vladimirsitnikov pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/calcite.git
The following commit(s) were added to refs/heads/master by this push:
new 18560d1 Add JUnit category for extremely slow tests, launch them in a
separate Travis job
18560d1 is described below
commit 18560d1eb21fe46056b6e459d75444419937c9de
Author: Vladimir Sitnikov <[email protected]>
AuthorDate: Fri Feb 1 20:39:53 2019 +0300
Add JUnit category for extremely slow tests, launch them in a separate
Travis job
Note: Travis runs 5 jobs in parallel, so we don't really want to have 6
jobs.
That is why jdk-10 runs SLOW tests and other perform regular ones
---
.travis.yml | 5 +++--
core/pom.xml | 19 ++++++++++++++++
.../calcite/materialize/LatticeSuggesterTest.java | 3 +++
.../org/apache/calcite/profile/ProfilerTest.java | 3 +++
.../java/org/apache/calcite/test/FoodmartTest.java | 2 ++
.../java/org/apache/calcite/test/LatticeTest.java | 2 ++
.../apache/calcite/test/MaterializationTest.java | 2 ++
.../java/org/apache/calcite/test/SlowTests.java | 25 ++++++++++++++++++++++
.../calcite/util/PartiallyOrderedSetTest.java | 3 +++
9 files changed, 62 insertions(+), 2 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index 390d38e..6099a04 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -22,7 +22,7 @@ matrix:
include:
- env: IMAGE=maven:3-jdk-12
- env: IMAGE=maven:3-jdk-11 JDOC=Y RAT=Y
- - env: IMAGE=maven:3-jdk-10
+ - env: IMAGE=maven:3-jdk-10 SLOW_TESTS=Y
- env: IMAGE=maven:3-jdk-9
- env: IMAGE=maven:3-jdk-8 JDOC=Y
branches:
@@ -47,7 +47,8 @@ script:
- unset _JAVA_OPTIONS
- if [ $JDOC = "Y" ]; then export JDOC=javadoc:javadoc; fi
- if [ $RAT = "Y" ]; then export RAT="apache-rat:check -Drat.consoleOutput";
fi
- - $DOCKERRUN $IMAGE mvn -Dcheckstyle.skip -Dsurefire.useFile=false
-Dsurefire.threadCount=1 -Dsurefire.perCoreThreadCount=false
-Djavax.net.ssl.trustStorePassword=changeit test $JDOC $RAT
+ - if [ $SLOW_TESTS = "Y" ]; then export
TESTS="-Dgroups=org.apache.calcite.test.SlowTests --projects :calcite-core";
else export TESTS=-DskipSlowTests; fi
+ - $DOCKERRUN $IMAGE mvn -Dcheckstyle.skip -Dsurefire.useFile=false
-Dsurefire.threadCount=1 -Dsurefire.perCoreThreadCount=false
-Djavax.net.ssl.trustStorePassword=changeit test $TESTS $JDOC $RAT
git:
depth: 10000
sudo: required
diff --git a/core/pom.xml b/core/pom.xml
index efb37a8..7758233 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -554,6 +554,25 @@ limitations under the License.
</resources>
</build>
</profile>
+ <profile>
+ <id>skipSlowTests</id>
+ <activation>
+ <property>
+ <name>skipSlowTests</name>
+ </property>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+
<excludedGroups>org.apache.calcite.test.SlowTests</excludedGroups>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
</profiles>
</project>
diff --git
a/core/src/test/java/org/apache/calcite/materialize/LatticeSuggesterTest.java
b/core/src/test/java/org/apache/calcite/materialize/LatticeSuggesterTest.java
index 43f7562..92e562b 100644
---
a/core/src/test/java/org/apache/calcite/materialize/LatticeSuggesterTest.java
+++
b/core/src/test/java/org/apache/calcite/materialize/LatticeSuggesterTest.java
@@ -23,6 +23,7 @@ import org.apache.calcite.sql.SqlNode;
import org.apache.calcite.sql.parser.SqlParseException;
import org.apache.calcite.test.CalciteAssert;
import org.apache.calcite.test.FoodMartQuerySet;
+import org.apache.calcite.test.SlowTests;
import org.apache.calcite.tools.FrameworkConfig;
import org.apache.calcite.tools.Frameworks;
import org.apache.calcite.tools.Planner;
@@ -38,6 +39,7 @@ import org.hamcrest.Description;
import org.hamcrest.Matcher;
import org.hamcrest.TypeSafeMatcher;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import java.util.Arrays;
import java.util.Comparator;
@@ -51,6 +53,7 @@ import static org.junit.Assert.assertThat;
/**
* Unit tests for {@link LatticeSuggester}.
*/
+@Category(SlowTests.class)
public class LatticeSuggesterTest {
/** Some basic query patterns on the Scott schema with "EMP" and "DEPT"
diff --git a/core/src/test/java/org/apache/calcite/profile/ProfilerTest.java
b/core/src/test/java/org/apache/calcite/profile/ProfilerTest.java
index d0a9e90..d284666 100644
--- a/core/src/test/java/org/apache/calcite/profile/ProfilerTest.java
+++ b/core/src/test/java/org/apache/calcite/profile/ProfilerTest.java
@@ -22,6 +22,7 @@ import org.apache.calcite.linq4j.Enumerator;
import org.apache.calcite.rel.metadata.NullSentinel;
import org.apache.calcite.test.CalciteAssert;
import org.apache.calcite.test.Matchers;
+import org.apache.calcite.test.SlowTests;
import org.apache.calcite.util.ImmutableBitSet;
import org.apache.calcite.util.JsonBuilder;
import org.apache.calcite.util.Util;
@@ -34,6 +35,7 @@ import com.google.common.collect.Ordering;
import org.hamcrest.Matcher;
import org.junit.Ignore;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
@@ -57,6 +59,7 @@ import static org.junit.Assert.assertThat;
/**
* Unit tests for {@link Profiler}.
*/
+@Category(SlowTests.class)
public class ProfilerTest {
@Test public void testProfileZeroRows() throws Exception {
final String sql = "select * from \"scott\".dept where false";
diff --git a/core/src/test/java/org/apache/calcite/test/FoodmartTest.java
b/core/src/test/java/org/apache/calcite/test/FoodmartTest.java
index 0416c79..9fe32a6 100644
--- a/core/src/test/java/org/apache/calcite/test/FoodmartTest.java
+++ b/core/src/test/java/org/apache/calcite/test/FoodmartTest.java
@@ -23,6 +23,7 @@ import com.google.common.collect.ImmutableList;
import org.junit.Ignore;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
@@ -33,6 +34,7 @@ import java.util.List;
/**
* Test case that runs the FoodMart reference queries.
*/
+@Category(SlowTests.class)
@RunWith(Parameterized.class)
public class FoodmartTest {
diff --git a/core/src/test/java/org/apache/calcite/test/LatticeTest.java
b/core/src/test/java/org/apache/calcite/test/LatticeTest.java
index a5e70dc..ac3f926 100644
--- a/core/src/test/java/org/apache/calcite/test/LatticeTest.java
+++ b/core/src/test/java/org/apache/calcite/test/LatticeTest.java
@@ -32,6 +32,7 @@ import com.google.common.collect.ImmutableList;
import org.junit.Assume;
import org.junit.Ignore;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import java.io.IOException;
import java.sql.Connection;
@@ -58,6 +59,7 @@ import static org.junit.Assert.assertThat;
/**
* Unit test for lattices.
*/
+@Category(SlowTests.class)
public class LatticeTest {
private static final String SALES_LATTICE = "{\n"
+ " name: 'star',\n"
diff --git
a/core/src/test/java/org/apache/calcite/test/MaterializationTest.java
b/core/src/test/java/org/apache/calcite/test/MaterializationTest.java
index 1193664..458f0e1 100644
--- a/core/src/test/java/org/apache/calcite/test/MaterializationTest.java
+++ b/core/src/test/java/org/apache/calcite/test/MaterializationTest.java
@@ -60,6 +60,7 @@ import com.google.common.collect.Ordering;
import org.junit.Ignore;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import java.math.BigDecimal;
import java.sql.ResultSet;
@@ -84,6 +85,7 @@ import static org.junit.Assert.assertTrue;
* query and one or more materializations (what Oracle calls materialized
views)
* and checks that the materialization is used.
*/
+@Category(SlowTests.class)
public class MaterializationTest {
private static final Consumer<ResultSet> CONTAINS_M0 =
CalciteAssert.checkResultContains(
diff --git a/core/src/test/java/org/apache/calcite/test/SlowTests.java
b/core/src/test/java/org/apache/calcite/test/SlowTests.java
new file mode 100644
index 0000000..af32a8b
--- /dev/null
+++ b/core/src/test/java/org/apache/calcite/test/SlowTests.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.calcite.test;
+
+/**
+ * Declares a JUnit category for slow tests to speedup CI.
+ */
+public interface SlowTests {
+}
+
+// End SlowTests.java
diff --git
a/core/src/test/java/org/apache/calcite/util/PartiallyOrderedSetTest.java
b/core/src/test/java/org/apache/calcite/util/PartiallyOrderedSetTest.java
index 2a9e9dc..50ca11f 100644
--- a/core/src/test/java/org/apache/calcite/util/PartiallyOrderedSetTest.java
+++ b/core/src/test/java/org/apache/calcite/util/PartiallyOrderedSetTest.java
@@ -17,9 +17,11 @@
package org.apache.calcite.util;
import org.apache.calcite.test.CalciteAssert;
+import org.apache.calcite.test.SlowTests;
import org.junit.Assume;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import java.util.AbstractList;
import java.util.ArrayList;
@@ -41,6 +43,7 @@ import static org.junit.Assert.assertTrue;
/**
* Unit test for {@link PartiallyOrderedSet}.
*/
+@Category(SlowTests.class)
public class PartiallyOrderedSetTest {
private static final boolean DEBUG = false;