Merge branch 'ceej/tiered-tests' - Consolidate surefire testing
configuration, and add support for creating groups of tests which
can be globally disabled. Also introduce "slow" category for
AQL tests.
diff --git a/asterix-app/pom.xml b/asterix-app/pom.xml
index 6dbc506..299bb86 100644
--- a/asterix-app/pom.xml
+++ b/asterix-app/pom.xml
@@ -8,14 +8,14 @@
License for the specific language governing permissions and ! limitations
under the License. ! -->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <artifactId>asterix</artifactId>
- <groupId>edu.uci.ics.asterix</groupId>
- <version>0.8.4-SNAPSHOT</version>
- </parent>
- <artifactId>asterix-app</artifactId>
-
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>asterix</artifactId>
+ <groupId>edu.uci.ics.asterix</groupId>
+ <version>0.8.4-SNAPSHOT</version>
+ </parent>
+ <artifactId>asterix-app</artifactId>
+
<build>
<plugins>
<plugin>
@@ -76,26 +76,6 @@
</execution>
</executions>
</plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <version>2.8</version>
- <configuration>
- <!-- doesn't work from m2eclipse, currently <additionalClasspathElements>
- <additionalClasspathElement>${basedir}/src/main/resources</additionalClasspathElement>
- </additionalClasspathElements> -->
- <forkMode>pertest</forkMode>
- <argLine>-enableassertions -Xmx${test.heap.size}m
- -Dfile.encoding=UTF-8
- -Djava.util.logging.config.file=src/test/resources/logging.properties
- -Xdebug
- -Xrunjdwp:transport=dt_socket,server=y,address=8000,suspend=n</argLine>
- <includes>
- <include>**/*TestSuite.java</include>
- <include>**/*Test.java</include>
- </includes>
- </configuration>
- </plugin>
</plugins>
</build>
@@ -120,12 +100,6 @@
<scope>compile</scope>
</dependency>
<dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>4.8.1</version>
- <scope>test</scope>
- </dependency>
- <dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-control-cc</artifactId>
</dependency>
diff --git a/asterix-app/src/test/java/edu/uci/ics/asterix/test/dml/DmlTest.java b/asterix-app/src/test/java/edu/uci/ics/asterix/test/dml/DmlTest.java
index 33e1f88..0f2aeb8 100644
--- a/asterix-app/src/test/java/edu/uci/ics/asterix/test/dml/DmlTest.java
+++ b/asterix-app/src/test/java/edu/uci/ics/asterix/test/dml/DmlTest.java
@@ -21,6 +21,8 @@
import java.io.PrintWriter;
import java.io.Reader;
+import org.junit.Test;
+
import edu.uci.ics.asterix.api.common.AsterixHyracksIntegrationUtil;
import edu.uci.ics.asterix.api.java.AsterixJavaClient;
import edu.uci.ics.asterix.common.exceptions.AsterixException;
@@ -41,6 +43,7 @@
private static final PrintWriter ERR = new PrintWriter(System.err);
+ @Test
public void enlistTest() throws Exception {
File outdir = new File(PATH_ACTUAL);
if (outdir.exists()) {
diff --git a/asterix-aql/pom.xml b/asterix-aql/pom.xml
index 5ec2b0f..52640c2 100644
--- a/asterix-aql/pom.xml
+++ b/asterix-aql/pom.xml
@@ -115,12 +115,6 @@
</build>
<dependencies>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>4.8.1</version>
- <scope>test</scope>
- </dependency>
<dependency>
<groupId>edu.uci.ics.asterix</groupId>
<artifactId>asterix-common</artifactId>
diff --git a/asterix-common/pom.xml b/asterix-common/pom.xml
index 9203d86..9602cf2 100644
--- a/asterix-common/pom.xml
+++ b/asterix-common/pom.xml
@@ -169,12 +169,6 @@
<scope>test</scope>
</dependency>
<dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>4.8.1</version>
- <scope>test</scope>
- </dependency>
- <dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>hyracks-storage-am-lsm-btree</artifactId>
</dependency>
diff --git a/asterix-events/pom.xml b/asterix-events/pom.xml
index 00996f4..46d944f 100644
--- a/asterix-events/pom.xml
+++ b/asterix-events/pom.xml
@@ -149,12 +149,6 @@
</build>
<dependencies>
<dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>4.8.1</version>
- <scope>test</scope>
- </dependency>
- <dependency>
<groupId>args4j</groupId>
<artifactId>args4j</artifactId>
<version>2.0.12</version>
diff --git a/asterix-external-data/pom.xml b/asterix-external-data/pom.xml
index 4f57a80..9f99f88 100644
--- a/asterix-external-data/pom.xml
+++ b/asterix-external-data/pom.xml
@@ -92,12 +92,6 @@
<type>jar</type>
</dependency>
<dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>4.8.1</version>
- <scope>test</scope>
- </dependency>
- <dependency>
<groupId>edu.uci.ics.asterix</groupId>
<artifactId>asterix-om</artifactId>
<version>0.8.4-SNAPSHOT</version>
diff --git a/asterix-fuzzyjoin/pom.xml b/asterix-fuzzyjoin/pom.xml
index 95ecfd8..162e6ea 100644
--- a/asterix-fuzzyjoin/pom.xml
+++ b/asterix-fuzzyjoin/pom.xml
@@ -45,24 +45,14 @@
<outputDirectory>${basedir}/target</outputDirectory>
</configuration>
</plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <configuration>
- <forkMode>pertest</forkMode>
- <argLine>-enableassertions -Xmx1g</argLine>
- </configuration>
- </plugin>
</plugins>
</build>
<dependencies>
<dependency>
+ <!-- Dependency management inherited from top-level asterixdb -->
<groupId>junit</groupId>
<artifactId>junit</artifactId>
- <version>4.8.1</version>
- <type>jar</type>
- <scope>test</scope>
</dependency>
</dependencies>
diff --git a/asterix-installer/pom.xml b/asterix-installer/pom.xml
index 0c332ed..c24a2e4 100644
--- a/asterix-installer/pom.xml
+++ b/asterix-installer/pom.xml
@@ -125,12 +125,6 @@
<dependencies>
<dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>4.8.1</version>
- <scope>test</scope>
- </dependency>
- <dependency>
<groupId>args4j</groupId>
<artifactId>args4j</artifactId>
<version>2.0.12</version>
diff --git a/asterix-installer/src/test/resources/integrationts/library/testsuite.xml b/asterix-installer/src/test/resources/integrationts/library/testsuite.xml
index be9ba0e..ef21a16 100644
--- a/asterix-installer/src/test/resources/integrationts/library/testsuite.xml
+++ b/asterix-installer/src/test/resources/integrationts/library/testsuite.xml
@@ -39,7 +39,7 @@
</test-case>
</test-group>
<test-group name="library-feeds">
- <test-case FilePath="library-feeds">
+ <test-case FilePath="library-feeds" category="slow">
<compilation-unit name="feed_ingest">
<output-dir compare="Text">feed_ingest</output-dir>
</compilation-unit>
diff --git a/asterix-maven-plugins/lexer-generator-maven-plugin/pom.xml b/asterix-maven-plugins/lexer-generator-maven-plugin/pom.xml
index 37d4b0f..d164cde 100644
--- a/asterix-maven-plugins/lexer-generator-maven-plugin/pom.xml
+++ b/asterix-maven-plugins/lexer-generator-maven-plugin/pom.xml
@@ -42,10 +42,9 @@
<dependencies>
<dependency>
+ <!-- Dependency management inherited from top-level asterixdb -->
<groupId>junit</groupId>
<artifactId>junit</artifactId>
- <version>4.8.1</version>
- <scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
diff --git a/asterix-maven-plugins/record-manager-generator-maven-plugin/pom.xml b/asterix-maven-plugins/record-manager-generator-maven-plugin/pom.xml
index 5f2ffaf..5fddc22 100644
--- a/asterix-maven-plugins/record-manager-generator-maven-plugin/pom.xml
+++ b/asterix-maven-plugins/record-manager-generator-maven-plugin/pom.xml
@@ -42,12 +42,6 @@
<dependencies>
<dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>4.8.1</version>
- <scope>test</scope>
- </dependency>
- <dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<version>2.0.2</version>
diff --git a/asterix-test-framework/pom.xml b/asterix-test-framework/pom.xml
index 4329a9c..a1ea210 100644
--- a/asterix-test-framework/pom.xml
+++ b/asterix-test-framework/pom.xml
@@ -46,6 +46,4 @@
</plugins>
</build>
- <dependencies>
- </dependencies>
</project>
diff --git a/asterix-test-framework/src/main/java/edu/uci/ics/asterix/testframework/context/TestCaseContext.java b/asterix-test-framework/src/main/java/edu/uci/ics/asterix/testframework/context/TestCaseContext.java
index cee292e..ba7d02a 100644
--- a/asterix-test-framework/src/main/java/edu/uci/ics/asterix/testframework/context/TestCaseContext.java
+++ b/asterix-test-framework/src/main/java/edu/uci/ics/asterix/testframework/context/TestCaseContext.java
@@ -19,6 +19,7 @@
import java.util.Collections;
import java.util.List;
+import edu.uci.ics.asterix.testframework.xml.CategoryEnum;
import edu.uci.ics.asterix.testframework.xml.TestCase;
import edu.uci.ics.asterix.testframework.xml.TestCase.CompilationUnit;
import edu.uci.ics.asterix.testframework.xml.TestGroup;
@@ -156,11 +157,14 @@
}
private void addContexts(File tsRoot, TestSuite ts, List<TestGroup> tgPath, List<TestCaseContext> tccs) {
+ boolean doSlow = System.getProperty("runSlowAQLTests") != null;
TestGroup tg = tgPath.get(tgPath.size() - 1);
for (TestCase tc : tg.getTestCase()) {
- tccs.add(new TestCaseContext(tsRoot, ts, tgPath.toArray(new TestGroup[tgPath.size()]), tc));
+ if (doSlow || tc.getCategory() != CategoryEnum.SLOW) {
+ tccs.add(new TestCaseContext(tsRoot, ts, tgPath.toArray(new TestGroup[tgPath.size()]), tc));
+ }
}
addContexts(tsRoot, ts, tgPath, tg.getTestGroup(), tccs);
}
}
-}
\ No newline at end of file
+}
diff --git a/asterix-test-framework/src/main/java/edu/uci/ics/asterix/testframework/xml/TestSuiteParser.java b/asterix-test-framework/src/main/java/edu/uci/ics/asterix/testframework/xml/TestSuiteParser.java
index e578924..8ffa9b3 100644
--- a/asterix-test-framework/src/main/java/edu/uci/ics/asterix/testframework/xml/TestSuiteParser.java
+++ b/asterix-test-framework/src/main/java/edu/uci/ics/asterix/testframework/xml/TestSuiteParser.java
@@ -22,8 +22,8 @@
public TestSuiteParser() {
}
- public TestSuite parse(File testSuiteCatalog) throws Exception {
- JAXBContext ctx = JAXBContext.newInstance(TestSuite.class);
- return (TestSuite) ctx.createUnmarshaller().unmarshal(testSuiteCatalog);
+ public edu.uci.ics.asterix.testframework.xml.TestSuite parse(File testSuiteCatalog) throws Exception {
+ JAXBContext ctx = JAXBContext.newInstance(edu.uci.ics.asterix.testframework.xml.TestSuite.class);
+ return (edu.uci.ics.asterix.testframework.xml.TestSuite) ctx.createUnmarshaller().unmarshal(testSuiteCatalog);
}
}
\ No newline at end of file
diff --git a/asterix-test-framework/src/main/resources/Catalog.xsd b/asterix-test-framework/src/main/resources/Catalog.xsd
index 632d6ad..763309e 100644
--- a/asterix-test-framework/src/main/resources/Catalog.xsd
+++ b/asterix-test-framework/src/main/resources/Catalog.xsd
@@ -135,6 +135,7 @@
<!-- This name is always equal to the name of the test case -->
<xs:attribute name="name" type="xs:string" use="required"/>
+
</xs:complexType>
</xs:element>
@@ -150,8 +151,24 @@
<xs:attribute name="FilePath" type="test:SimplifiedRelativeFilePath" use="required"/>
<xs:attribute name="date" type="xs:date" use="required"/>
+ <xs:attribute name="category" type="test:category-enum"/>
</xs:complexType>
+ <!-- category-enum type -->
+ <!-- Identify which category of test this is. Currently only "slow". -->
+
+ <xs:simpleType name="category-enum">
+ <xs:annotation>
+ <xs:documentation>
+ Identify the category of test, for limiting when it is run.
+ </xs:documentation>
+ </xs:annotation>
+
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="slow"/>
+ </xs:restriction>
+ </xs:simpleType>
+
<!-- comparison-enum type -->
<!-- Identify the type of comparison used to determine whether an -->
<!-- expected result and an actual result match. -->
diff --git a/asterix-tools/pom.xml b/asterix-tools/pom.xml
index 04edf26..38d7ffc 100644
--- a/asterix-tools/pom.xml
+++ b/asterix-tools/pom.xml
@@ -57,37 +57,6 @@
</executions>
</plugin>
<plugin>
- <artifactId>maven-surefire-plugin</artifactId>
- <version>2.7.2</version>
- <executions>
- <execution>
- <id>default-test</id>
- <phase>test</phase>
- <goals>
- <goal>test</goal>
- </goals>
- <configuration>
- <forkMode>pertest</forkMode>
- <argLine>-enableassertions -Xmx1024m -Dfile.encoding=UTF-8
- -Djava.util.logging.config.file=src/test/resources/logging.properties</argLine>
- <includes>
- <include>**/*TestSuite.java</include>
- <include>**/*Test.java</include>
- </includes>
- </configuration>
- </execution>
- </executions>
- <configuration>
- <forkMode>pertest</forkMode>
- <argLine>-enableassertions -Xmx1536m -Dfile.encoding=UTF-8
- -Djava.util.logging.config.file=src/test/resources/logging.properties</argLine>
- <includes>
- <include>**/*TestSuite.java</include>
- <include>**/*Test.java</include>
- </includes>
- </configuration>
- </plugin>
- <plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>appassembler-maven-plugin</artifactId>
<version>1.0</version>
@@ -177,12 +146,6 @@
<version>4.2.2</version>
<scope>compile</scope>
</dependency>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>4.8.1</version>
- <scope>test</scope>
- </dependency>
</dependencies>
</project>
diff --git a/pom.xml b/pom.xml
index c0dfb4e..1585923 100644
--- a/pom.xml
+++ b/pom.xml
@@ -14,28 +14,62 @@
! limitations under the License.
!-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <groupId>edu.uci.ics.asterix</groupId>
- <artifactId>asterix</artifactId>
- <version>0.8.4-SNAPSHOT</version>
- <packaging>pom</packaging>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>edu.uci.ics.asterix</groupId>
+ <artifactId>asterix</artifactId>
+ <version>0.8.4-SNAPSHOT</version>
+ <packaging>pom</packaging>
+
+ <properties>
+ <algebricks.version>0.2.11-SNAPSHOT</algebricks.version>
+ <hyracks.version>0.2.11-SNAPSHOT</hyracks.version>
+ <jvm.extraargs />
+ <skipSlowTests>true</skipSlowTests>
- <properties>
- <algebricks.version>0.2.11-SNAPSHOT</algebricks.version>
- <hyracks.version>0.2.11-SNAPSHOT</hyracks.version>
- </properties>
+ <!-- Definition of tests in various categories which may be excluded -->
+ <optimizer.tests>**/optimizer/**/*Test.java</optimizer.tests>
+ <metadata.tests>**/metadata/*Test.java</metadata.tests>
+ <execution.tests>**/ExecutionTest.java</execution.tests>
+ <invalid.tests>**/DmlTest.java</invalid.tests>
+ <test.includes>**/*TestSuite.java,**/*Test.java</test.includes>
+ <test.excludes>${optimizer.tests},${metadata.tests},${execution.tests},${invalid.tests}</test.excludes>
+ </properties>
<build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-release-plugin</artifactId>
- <version>2.1</version>
- <configuration>
- <goals>package source:jar javadoc:jar deploy:deploy</goals>
- </configuration>
- </plugin>
- </plugins>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-release-plugin</artifactId>
+ <version>2.1</version>
+ <configuration>
+ <goals>package source:jar javadoc:jar deploy:deploy</goals>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>2.16</version>
+ <configuration>
+ <failIfNoTests>false</failIfNoTests>
+ <systemPropertyVariables>
+ <skipFredSlowTests>true</skipFredSlowTests>
+ </systemPropertyVariables>
+ <forkCount>1</forkCount>
+ <reuseForks>false</reuseForks>
+ <argLine>-enableassertions -Xmx${test.heap.size}m
+ -Dfile.encoding=UTF-8
+ -Djava.util.logging.config.file=${user.home}/logging.properties
+ -Xdebug
+ -Xrunjdwp:transport=dt_socket,server=y,address=8000,suspend=n</argLine>
+ <includes>
+ <include>${test.includes}</include>
+ </includes>
+ <excludes>
+ <exclude>${test.excludes}</exclude>
+ </excludes>
+ </configuration>
+ </plugin>
+ </plugins>
</build>
<scm>
@@ -55,6 +89,30 @@
</distributionManagement>
<profiles>
+ <profile>
+ <id>optimizer-tests</id>
+ <properties>
+ <optimizer.tests />
+ </properties>
+ </profile>
+ <profile>
+ <id>metadata-tests</id>
+ <properties>
+ <metadata.tests />
+ </properties>
+ </profile>
+ <profile>
+ <id>execution-tests</id>
+ <properties>
+ <execution.tests />
+ </properties>
+ </profile>
+ <profile>
+ <id>invalid-tests</id>
+ <properties>
+ <invalid.tests />
+ </properties>
+ </profile>
<profile>
<id>32bitvm</id>
<activation>
@@ -80,6 +138,14 @@
<test.heap.size>3072</test.heap.size>
</properties>
</profile>
+
+ <profile>
+ <id>slow</id>
+ <properties>
+ <skipSlowTests>false</skipSlowTests>
+ </properties>
+ </profile>
+
</profiles>
<modules>
@@ -152,6 +218,11 @@
</repositories>
<dependencyManagement>
<dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.8.1</version>
+ </dependency>
<dependency>
<groupId>edu.uci.ics.hyracks</groupId>
<artifactId>algebricks-compiler</artifactId>
diff --git a/tlp/pom.xml b/tlp/pom.xml
new file mode 100644
index 0000000..c6c32ad
--- /dev/null
+++ b/tlp/pom.xml
@@ -0,0 +1,28 @@
+<!--
+ ! Copyright 2009-2013 by The Regents of the University of California
+ ! Licensed 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 from
+ !
+ ! 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.
+ !-->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>edu.uci.ics</groupId>
+ <artifactId>experimental</artifactId>
+ <version>0.0.1</version>
+ <packaging>pom</packaging>
+ <name>hyracks-asterix</name>
+
+ <modules>
+ <module>hyracks</module>
+ <module>asterixdb</module>
+ </modules>
+</project>