diff --git a/.github/workflows/maven-publish.yml b/.github/workflows/maven-publish.yml
index bf5b357..c689396 100644
--- a/.github/workflows/maven-publish.yml
+++ b/.github/workflows/maven-publish.yml
@@ -44,7 +44,7 @@ jobs:
run: |
echo "REVISION: $REVISION"
- mvn -B -Drevision=${REVISION} clean deploy
+ mvn -B -Drevision=${REVISION} -Ddbengine.ci=true clean deploy
env:
MAVEN_USERNAME: ${{ secrets.MCHV_USERNAME }}
MAVEN_PASSWORD: ${{ secrets.MCHV_TOKEN }}
diff --git a/pom.xml b/pom.xml
index 071690b..3a241ed 100644
--- a/pom.xml
+++ b/pom.xml
@@ -13,6 +13,7 @@
UTF-8
0-SNAPSHOT
+ false
@@ -511,6 +512,12 @@
--enable-preview --add-modules jdk.incubator.foreign -Dforeign.restricted=permit --add-opens=java.base/jdk.internal.misc=ALL-UNNAMED
+
+
+ ci
+ ${dbengine.ci}
+
+
diff --git a/src/test/java/it/cavallium/dbengine/DbTestUtils.java b/src/test/java/it/cavallium/dbengine/DbTestUtils.java
index 203678b..a4da5c2 100644
--- a/src/test/java/it/cavallium/dbengine/DbTestUtils.java
+++ b/src/test/java/it/cavallium/dbengine/DbTestUtils.java
@@ -69,6 +69,10 @@ public class DbTestUtils {
return activeAllocations;
}
+ public static boolean isCIMode() {
+ return System.getProperty("dbengine.ci", "false").equalsIgnoreCase("true");
+ }
+
public static Flux tempDb(TemporaryDbGenerator temporaryDbGenerator,
TestAllocator alloc,
Function> action) {
diff --git a/src/test/java/it/cavallium/dbengine/TestDictionaryMap.java b/src/test/java/it/cavallium/dbengine/TestDictionaryMap.java
index 324802c..f2f3c61 100644
--- a/src/test/java/it/cavallium/dbengine/TestDictionaryMap.java
+++ b/src/test/java/it/cavallium/dbengine/TestDictionaryMap.java
@@ -32,7 +32,7 @@ public abstract class TestDictionaryMap {
private boolean checkLeaks = true;
private static boolean isTestBadKeysEnabled() {
- return System.getProperty("badkeys", "true").equalsIgnoreCase("true");
+ return !isCIMode() && System.getProperty("badkeys", "true").equalsIgnoreCase("true");
}
protected abstract TemporaryDbGenerator getTempDbGenerator();
@@ -49,7 +49,7 @@ public abstract class TestDictionaryMap {
goodKeys.stream().map(s -> Tuples.of(s, false)),
badKeys.stream().map(s -> Tuples.of(s, true))
).collect(Collectors.toList());
- var values = List.of("", "\0", BIG_STRING);
+ var values = isCIMode() ? List.of("val") : List.of("", "\0", BIG_STRING);
return keys
.stream()
@@ -315,7 +315,7 @@ public abstract class TestDictionaryMap {
}
private static Stream provideArgumentsPutMulti() {
- var goodKeys = List.of(List.of("12345", "67890"), List.of());
+ var goodKeys = isCIMode() ? List.of(List.of("12345")) : List.of(List.of("12345", "67890"), List.of());
List> badKeys;
if (isTestBadKeysEnabled()) {
badKeys = List.of(List.of("", "12345"), List.of("45678", "aaaa"), List.of("aaaaaa", "capra"));
@@ -326,7 +326,7 @@ public abstract class TestDictionaryMap {
goodKeys.stream().map(s -> Tuples.of(s, false)),
badKeys.stream().map(s -> Tuples.of(s, true))
).collect(Collectors.toList());
- var values = List.of("", "\0", BIG_STRING);
+ var values = isCIMode() ? List.of("val") : List.of("", "\0", BIG_STRING);
return keys
.stream()
diff --git a/src/test/java/it/cavallium/dbengine/TestDictionaryMapDeep.java b/src/test/java/it/cavallium/dbengine/TestDictionaryMapDeep.java
index 21db819..3fa252e 100644
--- a/src/test/java/it/cavallium/dbengine/TestDictionaryMapDeep.java
+++ b/src/test/java/it/cavallium/dbengine/TestDictionaryMapDeep.java
@@ -2,6 +2,7 @@ package it.cavallium.dbengine;
import static it.cavallium.dbengine.DbTestUtils.BIG_STRING;
import static it.cavallium.dbengine.DbTestUtils.ensureNoLeaks;
+import static it.cavallium.dbengine.DbTestUtils.isCIMode;
import static it.cavallium.dbengine.DbTestUtils.newAllocator;
import static it.cavallium.dbengine.DbTestUtils.destroyAllocator;
import static it.cavallium.dbengine.DbTestUtils.tempDatabaseMapDictionaryDeepMap;
@@ -45,7 +46,7 @@ public abstract class TestDictionaryMapDeep {
private boolean checkLeaks = true;
private static boolean isTestBadKeysEnabled() {
- return System.getProperty("badkeys", "true").equalsIgnoreCase("true");
+ return !isCIMode() && System.getProperty("badkeys", "true").equalsIgnoreCase("true");
}
protected abstract TemporaryDbGenerator getTempDbGenerator();
@@ -87,14 +88,14 @@ public abstract class TestDictionaryMapDeep {
}
private static Stream provideArgumentsPut() {
- var goodKeys1 = List.of("12345", "zebra");
+ var goodKeys1 = isCIMode() ? List.of("12345") : List.of("12345", "zebra");
List badKeys1;
if (isTestBadKeysEnabled()) {
badKeys1 = List.of("", "a", "aaaa", "aaaaaa");
} else {
badKeys1 = List.of();
}
- var goodKeys2 = List.of("123456", "anatra");
+ var goodKeys2 = isCIMode() ? List.of("123456") : List.of("123456", "anatra");
List badKeys2;
if (isTestBadKeysEnabled()) {
badKeys2 = List.of("", "a", "aaaaa", "aaaaaaa");
@@ -102,7 +103,7 @@ public abstract class TestDictionaryMapDeep {
badKeys2 = List.of();
}
- var values = List.of("a", "", "\0", "\0\0", "z", "azzszgzczqz", BIG_STRING);
+ var values = isCIMode() ? List.of("val") : List.of("a", "", "\0", "\0\0", "z", "azzszgzczqz", BIG_STRING);
Flux> failOnKeys1 = Flux
.fromIterable(badKeys1)
@@ -679,7 +680,7 @@ public abstract class TestDictionaryMapDeep {
}
private static Stream provideArgumentsSetMulti() {
- var goodKeys = List.of(List.of("12345", "67890"), List.of());
+ var goodKeys = isCIMode() ? List.of(List.of("12345")) : List.of(List.of("12345", "67890"), List.of());
List> badKeys;
if (isTestBadKeysEnabled()) {
badKeys = List.of(List.of("", "12345"), List.of("45678", "aaaa"), List.of("aaaaaa", "capra"));
@@ -690,7 +691,7 @@ public abstract class TestDictionaryMapDeep {
goodKeys.stream().map(s -> Tuples.of(s, false)),
badKeys.stream().map(s -> Tuples.of(s, true))
).collect(Collectors.toList());
- var values = List.of(
+ var values = isCIMode() ? List.of(Map.of("123456", "val")) : List.of(
Map.of("123456", "a", "234567", ""),
Map.of("123456", "\0", "234567", "\0\0", "345678", BIG_STRING)
);
diff --git a/src/test/java/it/cavallium/dbengine/TestDictionaryMapDeepHashMap.java b/src/test/java/it/cavallium/dbengine/TestDictionaryMapDeepHashMap.java
index ff6c3ef..97d4ca6 100644
--- a/src/test/java/it/cavallium/dbengine/TestDictionaryMapDeepHashMap.java
+++ b/src/test/java/it/cavallium/dbengine/TestDictionaryMapDeepHashMap.java
@@ -3,6 +3,7 @@ package it.cavallium.dbengine;
import static it.cavallium.dbengine.DbTestUtils.BIG_STRING;
import static it.cavallium.dbengine.DbTestUtils.destroyAllocator;
import static it.cavallium.dbengine.DbTestUtils.ensureNoLeaks;
+import static it.cavallium.dbengine.DbTestUtils.isCIMode;
import static it.cavallium.dbengine.DbTestUtils.newAllocator;
import static it.cavallium.dbengine.DbTestUtils.tempDatabaseMapDictionaryDeepMapHashMap;
import static it.cavallium.dbengine.DbTestUtils.tempDb;
@@ -11,6 +12,7 @@ import static it.cavallium.dbengine.DbTestUtils.tempDictionary;
import it.cavallium.dbengine.DbTestUtils.TestAllocator;
import it.cavallium.dbengine.database.UpdateMode;
import java.util.Arrays;
+import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Objects;
@@ -38,22 +40,22 @@ public abstract class TestDictionaryMapDeepHashMap {
private boolean checkLeaks = true;
private static boolean isTestBadKeysEnabled() {
- return System.getProperty("badkeys", "true").equalsIgnoreCase("true");
+ return !isCIMode() && System.getProperty("badkeys", "true").equalsIgnoreCase("true");
}
protected abstract TemporaryDbGenerator getTempDbGenerator();
private static Stream provideArgumentsPut() {
- var goodKeys1 = Set.of("12345", "zebra");
- Set badKeys1;
+ var goodKeys1 = isCIMode() ? List.of("12345") : List.of("12345", "zebra");
+ List badKeys1;
if (isTestBadKeysEnabled()) {
- badKeys1 = Set.of("", "a", "aaaa", "aaaaaa");
+ badKeys1 = List.of("", "a", "aaaa", "aaaaaa");
} else {
- badKeys1 = Set.of();
+ badKeys1 = List.of();
}
- var goodKeys2 = Set.of("123456", "anatra", "", "a", "aaaaa", "aaaaaaa");
+ var goodKeys2 = isCIMode() ? List.of("123456") : List.of("123456", "anatra", "", "a", "aaaaa", "aaaaaaa");
- var values = Set.of("a", "", "\0", "\0\0", "z", "azzszgzczqz", BIG_STRING);
+ var values = isCIMode() ? List.of("val") : List.of("a", "", "\0", "\0\0", "z", "azzszgzczqz", BIG_STRING);
Flux> failOnKeys1 = Flux
.fromIterable(badKeys1)