You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2022/05/11 12:28:43 UTC
[sling-org-apache-sling-starter] 01/02: SLING-7935 - Move launchpad-testing module into the main starter repository
This is an automated email from the ASF dual-hosted git repository.
rombert pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-starter.git
commit 8ec602d3d03995f1aebdd2a3b8dfb97fd57b57c0
Author: Robert Munteanu <ro...@apache.org>
AuthorDate: Fri Apr 29 16:17:33 2022 +0200
SLING-7935 - Move launchpad-testing module into the main starter repository
- execute the launchpad-testing test suite in the regular starter build.
- add a workaround for https://github.com/bndtools/bnd/issues/5247,
present only on the ASF Jenkins
---
README.md | 11 +++++
pom.xml | 52 +++++++++++++++++++++++-
src/main/features/test/junit.json | 27 ++++++++++++
src/main/features/test/test-content-repoinit.txt | 25 ++++++++++++
src/main/features/test/test-content.json | 28 +++++++++++++
5 files changed, 142 insertions(+), 1 deletion(-)
diff --git a/README.md b/README.md
index fca91f8..a303489 100644
--- a/README.md
+++ b/README.md
@@ -76,6 +76,17 @@ $ docker run --rm -p 8080:8080 -v sling-launcher:/opt/sling/launcher apache/slin
The [docker/](docker/) directory contains sample files related to container-based development.
+## Testing
+
+The Sling Starter will execute two suites of tests using the `maven-surefire-plugin`:
+
+1. A small set of smoke tests, embedded in the project, that verify the basic functionality of the Starter
+1. An extensive set of end-to-end tests that verify the overall functionality of the Starter and the bundles that are embedded into it
+
+By default, these are both executed when building the project against an Oak SegmentNodeStore backend.
+
+Additionally, when the `ci` profile is enabled the smoke tests are also executed in against an Oak DocumentNodeStore backend. For technical resons, the full end-to-end tests are not executed.
+
## Building the Docker image
This module can optionally build a Docker image. This is achieved by running a build with the `-Ddocker.skip=false` argument. By default, the image is built as `apache/sling:snapshot`. The tag can be overrriden using the `docker.label` Maven property.
diff --git a/pom.xml b/pom.xml
index 9823294..c4fec13 100644
--- a/pom.xml
+++ b/pom.xml
@@ -104,10 +104,20 @@
<filesInclude>oak/*.json</filesInclude>
<title>Sling With No Samples and No Persistence</title>
</aggregate>
+ <aggregate>
+ <classifier>oak_tar_test</classifier>
+ <filesInclude>*.json</filesInclude>
+ <filesInclude>oak/*.json</filesInclude>
+ <filesInclude>oak/persistence/oak_persistence_sns.json</filesInclude>
+ <filesInclude>app/*.json</filesInclude>
+ <filesInclude>test/*.json</filesInclude>
+ <title>Sling with Oak Segment NS persistence and test content</title>
+ </aggregate>
</aggregates>
<scans>
<scan>
<includeClassifier>oak_tar</includeClassifier>
+ <includeClassifier>oak_tar_test</includeClassifier>
<includeClassifier>oak_mongo</includeClassifier>
<includeClassifier>nosample_base</includeClassifier>
</scan>
@@ -298,7 +308,7 @@
<groupId>${project.groupId}</groupId>
<artifactId>${project.artifactId}</artifactId>
<version>${project.version}</version>
- <classifier>oak_tar</classifier>
+ <classifier>oak_tar_test</classifier>
<type>slingosgifeature</type>
</feature>
<launcherArguments>
@@ -351,7 +361,20 @@
</execution>
</executions>
<configuration>
+ <dependenciesToScan>
+ <dependency>org.apache.sling:org.apache.sling.launchpad.integration-tests</dependency>
+ </dependenciesToScan>
+ <includes>
+ <include>**/*Test.java</include>
+ <include>**/*IT.java</include>
+ </includes>
+ <excludes>
+ <exclude>${failsafe.exclude}</exclude>
+ <!-- Don't run provisioning model ITs in the feature model context -->
+ <exclude>org/apache/sling/launchpad/webapp/integrationtest/provisioning/**.java</exclude>
+ </excludes>
<systemPropertyVariables>
+ <launchpad.http.server.url>http://localhost:${http.port}/</launchpad.http.server.url>
<starter.http.test.ports>false:${http.port},${docker.skip}:${http.port.mongo}</starter.http.test.ports>
<starter.min.bundles.count>${starter.min.bundles.count}</starter.min.bundles.count>
<!-- Comma-separated list of paths to check for 200 status (added for SLING-10402) -->
@@ -404,6 +427,19 @@
<version>1.11.8</version>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.sling</groupId>
+ <artifactId>org.apache.sling.launchpad.integration-tests</artifactId>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <!-- provided-scope dependency of the commons.johnzon bundle -->
+ <dependency>
+ <groupId>org.apache.johnzon</groupId>
+ <artifactId>johnzon-core</artifactId>
+ <version>1.0.0</version>
+ <scope>test</scope>
+ </dependency>
</dependencies>
<profiles>
@@ -426,6 +462,20 @@
<bnd.index.generation.skip>false</bnd.index.generation.skip>
<docker.skip>false</docker.skip>
</properties>
+ <!-- workaround for https://github.com/bndtools/bnd/issues/5247 -->
+ <repositories>
+ <repository>
+ <id>Nexus</id>
+ <name>Nexus</name>
+ <url>https://repository.apache.org/snapshots/</url>
+ <snapshots>
+ <enabled>true</enabled>
+ </snapshots>
+ <releases>
+ <enabled>false</enabled>
+ </releases>
+ </repository>
+ </repositories>
</profile>
</profiles>
</project>
diff --git a/src/main/features/test/junit.json b/src/main/features/test/junit.json
new file mode 100644
index 0000000..a01c37c
--- /dev/null
+++ b/src/main/features/test/junit.json
@@ -0,0 +1,27 @@
+{
+ "id":"${project.groupId}:${project.artifactId}:slingosgifeature:junit:${project.version}",
+ "bundles":[
+ {
+ "id": "org.apache.sling:org.apache.sling.junit.core:1.0.26",
+ "start-order": "25"
+ },
+ {
+ "id": "org.apache.sling:org.apache.sling.junit.remote:1.0.12",
+ "start-order": "25"
+ },
+ {
+ "id": "org.apache.sling:org.apache.sling.junit.scriptable:1.0.12",
+ "start-order": "25"
+ }
+ ],
+ "configurations": {
+ "org.apache.sling.jcr.base.internal.LoginAdminWhitelist.fragment~junit": {
+ "whitelist.bundles": [
+ "org.apache.sling.junit.core",
+ "org.apache.sling.junit.remote",
+ "org.apache.sling.junit.scriptable"
+ ],
+ "whitelist.name" :"junit"
+ }
+ }
+}
diff --git a/src/main/features/test/test-content-repoinit.txt b/src/main/features/test/test-content-repoinit.txt
new file mode 100644
index 0000000..fa2c57d
--- /dev/null
+++ b/src/main/features/test/test-content-repoinit.txt
@@ -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.
+#
+
+create path /repoinit/provisioningModelTest
+create service user provisioningModelUser
+create path (sling:OrderedFolder) /ANON_CAN_READ
+set ACL for everyone
+ allow jcr:read on /ANON_CAN_READ
+end
\ No newline at end of file
diff --git a/src/main/features/test/test-content.json b/src/main/features/test/test-content.json
new file mode 100644
index 0000000..f0197e8
--- /dev/null
+++ b/src/main/features/test/test-content.json
@@ -0,0 +1,28 @@
+{
+ "id":"${project.groupId}:${project.artifactId}:slingosgifeature:test-content:${project.version}",
+ "bundles":[
+ {
+ "id": "org.apache.sling:org.apache.sling.launchpad.test-fragment:13-SNAPSHOT",
+ "start-order": "25"
+ },
+ {
+ "id": "org.apache.sling:org.apache.sling.launchpad.test-services:13-SNAPSHOT",
+ "start-order": "25"
+ }
+ ],
+ "configurations": {
+ "org.apache.sling.jcr.base.internal.LoginAdminWhitelist.fragment~test-content": {
+ "whitelist.bundles": [
+ "org.apache.sling.launchpad.test-services"
+ ],
+ "whitelist.name" :"test-content"
+ },
+ "org.apache.sling.servlets.resolver.SlingServletResolver": {
+ "servletresolver.cacheSize": 0
+ },
+ "integrationTestsConfig": {
+ "message": "This test config should be loaded at startup"
+ }
+ },
+ "repoinit:TEXT|true":"@file"
+}