keycloak-uncached

Details

.travis.yml 1(+1 -0)

diff --git a/.travis.yml b/.travis.yml
index d3ea4f1..3a494b4 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -15,6 +15,7 @@ env:
     - TESTS=server-group3
     - TESTS=server-group4
     - TESTS=old
+    - TESTS=crossdc
 
 jdk:
   - oraclejdk8
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/crossdc/manual/SessionsPreloadCrossDCTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/crossdc/manual/SessionsPreloadCrossDCTest.java
index 80949cf..f4a7159 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/crossdc/manual/SessionsPreloadCrossDCTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/crossdc/manual/SessionsPreloadCrossDCTest.java
@@ -30,6 +30,7 @@ import org.keycloak.testsuite.arquillian.AuthServerTestEnricher;
 import org.keycloak.testsuite.crossdc.AbstractAdminCrossDCTest;
 import org.keycloak.testsuite.crossdc.DC;
 import org.keycloak.testsuite.util.OAuthClient;
+import org.junit.Assume;
 
 /**
  * Tests userSessions and offline sessions preloading at startup
@@ -47,7 +48,7 @@ public class SessionsPreloadCrossDCTest extends AbstractAdminCrossDCTest {
     @Override
     public void beforeAbstractKeycloakTest() throws Exception {
         // Doublecheck we are in manual mode
-        Assert.assertTrue("The test requires to be executed with manual.mode=true", suiteContext.getCacheServersInfo().get(0).isManual());
+        Assume.assumeTrue("The test requires to be executed with manual.mode=true", suiteContext.getCacheServersInfo().get(0).isManual());
 
         stopAllCacheServersAndAuthServers();
 

travis-run-tests.sh 46(+45 -1)

diff --git a/travis-run-tests.sh b/travis-run-tests.sh
index 7776f57..b953046 100755
--- a/travis-run-tests.sh
+++ b/travis-run-tests.sh
@@ -1,6 +1,6 @@
 #!/bin/bash -e
 
-function run-server-tests {
+function run-server-tests() {
     cd testsuite/integration-arquillian
     mvn install -B -nsu -Pauth-server-wildfly -DskipTests
 
@@ -9,6 +9,40 @@ function run-server-tests {
     exit ${PIPESTATUS[0]}
 }
 
+# The following lines are due to travis internals. See https://github.com/travis-ci/travis-ci/issues/6069#issuecomment-319710346
+git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
+git fetch
+
+function should-tests-run() {
+    # If this is not a pull request, it is build as a branch update. In that case test everything
+    [ "$TRAVIS_PULL_REQUEST" = "false" ] && return 0
+
+    # Do not run tests for changes in documentation
+    git diff --name-only HEAD origin/${TRAVIS_BRANCH} |
+        egrep -iv '^misc/.*\.md$|^testsuite/.*\.md$'
+}
+
+## You can define a precondition for running a particular test group by defining function should-tests-run-<test-group-name>.
+## Its return value determines whether the test group should run.
+
+function should-tests-run-crossdc() {
+    # If this is not a pull request, it is build as a branch update. In that case test everything
+    [ "$TRAVIS_PULL_REQUEST" = "false" ] && return 0
+
+    git diff --name-only HEAD origin/${TRAVIS_BRANCH} |
+        egrep -i 'crossdc|infinispan'
+}
+
+if ! should-tests-run; then
+    echo "Skipping all tests (including group '$1')"
+    exit 0
+fi
+
+if declare -f "should-tests-run-$1" > /dev/null && ! eval "should-tests-run-$1"; then
+    echo "Skipping group '$1'"
+    exit 0
+fi
+
 mvn install -B -nsu -Pdistribution -DskipTests -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
 
 if [ $1 == "old" ]; then
@@ -40,3 +74,13 @@ fi
 if [ $1 == "server-group4" ]; then
     run-server-tests org.keycloak.testsuite.k*.**.*Test,org.keycloak.testsuite.m*.**.*Test,org.keycloak.testsuite.o*.**.*Test,org.keycloak.testsuite.s*.**.*Test
 fi
+
+if [ $1 == "crossdc" ]; then
+    cd testsuite/integration-arquillian
+    mvn install -B -nsu -Pauth-servers-crossdc-jboss,auth-server-wildfly,cache-server-infinispan -DskipTests
+
+    cd tests/base
+    mvn clean test -B -nsu -Pcache-server-infinispan,auth-servers-crossdc-jboss,auth-server-wildfly -Dtest=*.crossdc.**.* 2>&1 |
+        java -cp ../../../utils/target/classes org.keycloak.testsuite.LogTrimmer
+    exit ${PIPESTATUS[0]}
+fi