Skip to content

Commit ee342e9

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

File tree

5 files changed

+161
-23
lines changed

5 files changed

+161
-23
lines changed

pom.xml

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,21 @@
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+
<groupId>junit</groupId>
91+
<artifactId>junit</artifactId>
92+
<scope>test</scope>
93+
</dependency>
94+
</dependencies>
95+
8196
<build>
8297
<resources>
8398
<resource>
@@ -98,6 +113,21 @@
98113
</resource>
99114
</resources>
100115

116+
<!--
117+
Makes the XQuery files of the app available
118+
on the Java classpath for XSuite during tests.
119+
-->
120+
<testResources>
121+
<testResource>
122+
<directory>src/main/xar-resources</directory>
123+
<filtering>false</filtering>
124+
<targetPath>xquery/</targetPath>
125+
<includes>
126+
<include>modules/**</include>
127+
</includes>
128+
</testResource>
129+
</testResources>
130+
101131
<pluginManagement>
102132
<plugins>
103133
<plugin>
@@ -471,7 +501,7 @@
471501
<pluginRepositories>
472502
<pluginRepository>
473503
<id>clojars.org</id>
474-
<url>http://clojars.org/repo</url>
504+
<url>https://clojars.org/repo</url>
475505
</pluginRepository>
476506
</pluginRepositories>
477507

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/conf.xml

Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<exist>
3+
4+
<db-connection cacheSize="256M" checkMaxCacheSize="true" collectionCache="64M" database="native"
5+
files="webapp/WEB-INF/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+
</triggers>
11+
</startup>
12+
<pool max="20" min="1" sync-period="120000" wait-before-shutdown="120000"/>
13+
<query-pool max-stack-size="64" size="128" timeout="120000"/>
14+
<recovery enabled="yes" group-commit="no" journal-dir="webapp/WEB-INF/data"
15+
size="100M" sync-on-commit="no" force-restart="no" consistency-check="yes"/>
16+
<watchdog output-size-limit="1000000" query-timeout="-1"/>
17+
</db-connection>
18+
19+
<repository root="/db/apps"/>
20+
21+
<binary-manager>
22+
<cache class="org.exist.util.io.FileFilterInputStreamCache"/>
23+
</binary-manager>
24+
25+
<indexer caseSensitive="yes" index-depth="5" preserve-whitespace-mixed-content="no"
26+
suppress-whitespace="none">
27+
<modules>
28+
<module id="lucene-index" buffer="32" class="org.exist.indexing.lucene.LuceneIndex" />
29+
<module id="range-index" class="org.exist.indexing.range.RangeIndex"/>
30+
</modules>
31+
<index/>
32+
</indexer>
33+
34+
<scheduler/>
35+
36+
<parser>
37+
<xml>
38+
<features>
39+
<feature name="http://xml.org/sax/features/external-general-entities" value="false"/>
40+
<feature name="http://xml.org/sax/features/external-parameter-entities" value="false"/>
41+
<feature name="http://javax.xml.XMLConstants/feature/secure-processing" value="true"/>
42+
</features>
43+
</xml>
44+
<html-to-xml class="org.cyberneko.html.parsers.SAXParser">
45+
<properties>
46+
<property name="http://cyberneko.org/html/properties/names/elems" value="match"/>
47+
<property name="http://cyberneko.org/html/properties/names/attrs" value="no-change"/>
48+
</properties>
49+
</html-to-xml>
50+
</parser>
51+
52+
<serializer add-exist-id="none" compress-output="no" enable-xinclude="yes"
53+
enable-xsl="no" indent="yes" match-tagging-attributes="no"
54+
match-tagging-elements="no"/>
55+
56+
<transformer class="net.sf.saxon.TransformerFactoryImpl" caching="yes">
57+
<attribute name="http://saxon.sf.net/feature/version-warning" value="false" type="boolean"/>
58+
</transformer>
59+
60+
<validation mode="no">
61+
<entity-resolver>
62+
<catalog uri="${WEBAPP_HOME}/WEB-INF/catalog.xml"/>
63+
</entity-resolver>
64+
</validation>
65+
66+
<xquery enable-java-binding="no" disable-deprecated-functions="no"
67+
enable-query-rewriting="yes" backwardCompatible="no"
68+
enforce-index-use="always"
69+
raise-error-on-failed-retrieval="no">
70+
71+
<builtin-modules>
72+
<!--
73+
Modularized Indexes
74+
-->
75+
<module uri="http://exist-db.org/xquery/lucene" class="org.exist.xquery.modules.lucene.LuceneModule" />
76+
<module uri="http://exist-db.org/xquery/range" class="org.exist.xquery.modules.range.RangeIndexModule" />
77+
78+
<!--
79+
Default Modules
80+
-->
81+
82+
<module uri="http://exist-db.org/xquery/inspection" class="org.exist.xquery.functions.inspect.InspectionModule"/>
83+
<module uri="http://exist-db.org/xquery/request" class="org.exist.xquery.functions.request.RequestModule" />
84+
<module uri="http://exist-db.org/xquery/response" class="org.exist.xquery.functions.response.ResponseModule" />
85+
<module uri="http://exist-db.org/xquery/securitymanager" class="org.exist.xquery.functions.securitymanager.SecurityManagerModule"/>
86+
<module uri="http://exist-db.org/xquery/session" class="org.exist.xquery.functions.session.SessionModule" />
87+
<module uri="http://exist-db.org/xquery/system" class="org.exist.xquery.functions.system.SystemModule" />
88+
<module uri="http://exist-db.org/xquery/transform" class="org.exist.xquery.functions.transform.TransformModule" />
89+
90+
<module uri="http://exist-db.org/xquery/util" class="org.exist.xquery.functions.util.UtilModule">
91+
<parameter name="evalDisabled" value="false"/>
92+
</module>
93+
94+
<module uri="http://exist-db.org/xquery/xmldb" class="org.exist.xquery.functions.xmldb.XMLDBModule" />
95+
96+
<module uri="http://www.w3.org/2005/xpath-functions/map" class="org.exist.xquery.functions.map.MapModule" />
97+
<module uri="http://www.w3.org/2005/xpath-functions/math" class="org.exist.xquery.functions.math.MathModule" />
98+
<module uri="http://www.w3.org/2005/xpath-functions/array" class="org.exist.xquery.functions.array.ArrayModule" />
99+
100+
<module uri="http://expath.org/ns/http-client" class="org.expath.exist.HttpClientModule"/>
101+
102+
<module uri="http://expath.org/ns/zip" class="org.expath.exist.ZipModule" />
103+
104+
<!-- Test module -->
105+
<module uri="http://exist-db.org/xquery/testing" src="resource:org/exist/xquery/lib/test.xq" />
106+
<module uri="http://exist-db.org/xquery/scheduler" class="org.exist.xquery.modules.scheduler.SchedulerModule" />
107+
108+
</builtin-modules>
109+
</xquery>
110+
111+
<xupdate allowed-fragmentation="50000" enable-consistency-checks="no"/>
112+
113+
</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:xquery/modules/docbook.xql";
13+
import module namespace config = "http://exist-db.org/xquery/apps/config"
14+
at "resource:xquery/modules/config.xql";
15+
import module namespace diag = "http://exist-db.org/xquery/diagnostics"
16+
at "resource:xquery/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)