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)