Skip to content

Commit 3e58ade

Browse files
committed
[refactor] Use XSuite to execute XQSuite tests from Maven
1 parent ed091b8 commit 3e58ade

File tree

5 files changed

+171
-24
lines changed

5 files changed

+171
-24
lines changed

pom.xml

Lines changed: 47 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,30 @@
7878
</plugins>
7979
</reporting>
8080

81+
<dependencies>
82+
<!-- test dependencies -->
83+
<dependency>
84+
<groupId>org.exist-db</groupId>
85+
<artifactId>exist-core</artifactId>
86+
<version>${exist.version}</version>
87+
<scope>test</scope>
88+
</dependency>
89+
<dependency>
90+
<!--
91+
Needed by the documentation app under test
92+
-->
93+
<groupId>org.exist-db</groupId>
94+
<artifactId>exist-index-lucene</artifactId>
95+
<version>${exist.version}</version>
96+
<scope>test</scope>
97+
</dependency>
98+
<dependency>
99+
<groupId>junit</groupId>
100+
<artifactId>junit</artifactId>
101+
<scope>test</scope>
102+
</dependency>
103+
</dependencies>
104+
81105
<build>
82106
<resources>
83107
<resource>
@@ -98,6 +122,17 @@
98122
</resource>
99123
</resources>
100124

125+
<testResources>
126+
<testResource>
127+
<directory>src/test/resources</directory>
128+
<filtering>false</filtering>
129+
</testResource>
130+
<testResource>
131+
<directory>src/test/resources-filtered</directory>
132+
<filtering>true</filtering>
133+
</testResource>
134+
</testResources>
135+
101136
<pluginManagement>
102137
<plugins>
103138
<plugin>
@@ -262,6 +297,16 @@
262297
<xmlIncludes>*/*.xml</xmlIncludes>
263298
</configuration>
264299
</plugin>
300+
<plugin>
301+
<groupId>org.apache.maven.plugins</groupId>
302+
<artifactId>maven-surefire-plugin</artifactId>
303+
<version>3.0.0-M7</version>
304+
</plugin>
305+
<plugin>
306+
<groupId>org.apache.maven.plugins</groupId>
307+
<artifactId>maven-surefire-report-plugin</artifactId>
308+
<version>3.0.0-M7</version>
309+
</plugin>
265310
<plugin>
266311
<groupId>ro.kuberam.maven.plugins</groupId>
267312
<artifactId>kuberam-expath-plugin</artifactId>
@@ -309,7 +354,7 @@
309354
<executions>
310355
<execution>
311356
<id>prepare-autodeploy-deps</id>
312-
<phase>pre-integration-test</phase>
357+
<phase>generate-test-resources</phase>
313358
<goals>
314359
<goal>resolve</goal>
315360
</goals>
@@ -471,7 +516,7 @@
471516
<pluginRepositories>
472517
<pluginRepository>
473518
<id>clojars.org</id>
474-
<url>http://clojars.org/repo</url>
519+
<url>https://clojars.org/repo</url>
475520
</pluginRepository>
476521
</pluginRepositories>
477522

src/main/xar-resources/modules/test-runner.xql

Lines changed: 0 additions & 19 deletions
This file was deleted.
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package org.exist.documentation.xquery;
2+
3+
import org.exist.test.runner.XSuite;
4+
import org.junit.runner.RunWith;
5+
6+
@RunWith(XSuite.class)
7+
@XSuite.XSuiteFiles({
8+
"src/test/xquery/documentation"
9+
})
10+
public class DocumentationTests {
11+
}

src/test/resources-filtered/conf.xml

Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<exist>
3+
4+
<db-connection cacheSize="256M" checkMaxCacheSize="true" collectionCache="64M" database="native"
5+
files="${basedir}/target/test-data" pageSize="4096" nodesBuffer="1000" cacheShrinkThreshold="10000"
6+
doc-ids="default" minDiskSpace="128M" posix-chown-restricted="true" preserve-on-copy="false">
7+
<startup>
8+
<triggers>
9+
<trigger class="org.exist.security.BouncyCastleJceProviderStartupTrigger"/>
10+
11+
<!--
12+
AutoDeploymentTrigger will install any .xar application package it finds
13+
in the autodeploy directory unless the application has already been installed
14+
in the db.
15+
-->
16+
<trigger class="org.exist.repo.AutoDeploymentTrigger">
17+
<parameter name="ignore-autodeploy-system-property" value="true"/>
18+
<parameter name="dir" value="${basedir}/target/autodeploy"/>
19+
</trigger>
20+
</triggers>
21+
</startup>
22+
<pool max="20" min="1" sync-period="120000" wait-before-shutdown="120000"/>
23+
<query-pool max-stack-size="64" size="128" timeout="120000"/>
24+
<recovery enabled="yes" group-commit="no" journal-dir="${basedir}/target/test-data"
25+
size="100M" sync-on-commit="no" force-restart="no" consistency-check="yes"/>
26+
<watchdog output-size-limit="1000000" query-timeout="-1"/>
27+
</db-connection>
28+
29+
<repository root="/db/apps"/>
30+
31+
<binary-manager>
32+
<cache class="org.exist.util.io.FileFilterInputStreamCache"/>
33+
</binary-manager>
34+
35+
<indexer caseSensitive="yes" index-depth="5" preserve-whitespace-mixed-content="no"
36+
suppress-whitespace="none">
37+
<modules>
38+
39+
<!--
40+
Needed by the documentation app under test
41+
-->
42+
<module id="lucene-index" buffer="32" class="org.exist.indexing.lucene.LuceneIndex" />
43+
44+
</modules>
45+
<index/>
46+
</indexer>
47+
48+
<scheduler/>
49+
50+
<parser>
51+
<xml>
52+
<features>
53+
<feature name="http://xml.org/sax/features/external-general-entities" value="false"/>
54+
<feature name="http://xml.org/sax/features/external-parameter-entities" value="false"/>
55+
<feature name="http://javax.xml.XMLConstants/feature/secure-processing" value="true"/>
56+
</features>
57+
</xml>
58+
<html-to-xml class="org.cyberneko.html.parsers.SAXParser">
59+
<properties>
60+
<property name="http://cyberneko.org/html/properties/names/elems" value="match"/>
61+
<property name="http://cyberneko.org/html/properties/names/attrs" value="no-change"/>
62+
</properties>
63+
</html-to-xml>
64+
</parser>
65+
66+
<serializer add-exist-id="none" compress-output="no" enable-xinclude="yes"
67+
enable-xsl="no" indent="yes" match-tagging-attributes="no"
68+
match-tagging-elements="no"/>
69+
70+
<transformer class="net.sf.saxon.TransformerFactoryImpl" caching="yes">
71+
<attribute name="http://saxon.sf.net/feature/version-warning" value="false" type="boolean"/>
72+
</transformer>
73+
74+
<validation mode="no">
75+
<entity-resolver>
76+
<catalog uri="${project.build.testOutputDirectory}/org/exist/validation/catalog.xml"/>
77+
</entity-resolver>
78+
</validation>
79+
80+
<xquery enable-java-binding="no" disable-deprecated-functions="no"
81+
enable-query-rewriting="yes" backwardCompatible="no"
82+
enforce-index-use="always"
83+
raise-error-on-failed-retrieval="no">
84+
85+
<builtin-modules>
86+
<!--
87+
Needed by the documentation app under test
88+
-->
89+
<module uri="http://exist-db.org/xquery/lucene" class="org.exist.xquery.modules.lucene.LuceneModule" />
90+
91+
<!-- Needed for XQSuite! -->
92+
<module uri="http://www.w3.org/2005/xpath-functions/map" class="org.exist.xquery.functions.map.MapModule" />
93+
<module uri="http://www.w3.org/2005/xpath-functions/array" class="org.exist.xquery.functions.array.ArrayModule" />
94+
<module uri="http://exist-db.org/xquery/inspection" class="org.exist.xquery.functions.inspect.InspectionModule"/>
95+
<module uri="http://exist-db.org/xquery/response" class="org.exist.xquery.functions.response.ResponseModule" />
96+
<module uri="http://exist-db.org/xquery/system" class="org.exist.xquery.functions.system.SystemModule" />
97+
<module uri="http://exist-db.org/xquery/util" class="org.exist.xquery.functions.util.UtilModule">
98+
<parameter name="evalDisabled" value="false"/>
99+
</module>
100+
<module uri="http://exist-db.org/xquery/xmldb" class="org.exist.xquery.functions.xmldb.XMLDBModule"/>
101+
102+
</builtin-modules>
103+
</xquery>
104+
105+
<xupdate allowed-fragmentation="50000" enable-consistency-checks="no"/>
106+
107+
</exist>

src/main/xar-resources/modules/test-suite.xql renamed to src/test/xquery/documentation/test-suite.xql

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,12 @@ xquery version "3.1";
88

99
module namespace tests = "http://exist-db.org/xquery/documentation/tests";
1010

11-
import module namespace docbook = "http://docbook.org/ns/docbook" at "docbook.xql";
12-
import module namespace config = "http://exist-db.org/xquery/apps/config" at "config.xqm";
13-
import module namespace diag = "http://exist-db.org/xquery/diagnostics" at "diagnostics.xql";
11+
import module namespace docbook = "http://docbook.org/ns/docbook"
12+
at "resource:modules/docbook.xql";
13+
import module namespace config = "http://exist-db.org/xquery/apps/config"
14+
at "resource:modules/config.xql";
15+
import module namespace diag = "http://exist-db.org/xquery/diagnostics"
16+
at "resource:modules/diagnostics.xql";
1417

1518
declare namespace test = "http://exist-db.org/xquery/xqsuite";
1619
declare namespace db5 = "http://docbook.org/ns/docbook";

0 commit comments

Comments
 (0)