diff --git a/bundles/org.openhab.persistence.mongodb/src/test/java/org/openhab/persistence/mongodb/internal/DataCreationHelper.java b/bundles/org.openhab.persistence.mongodb/src/test/java/org/openhab/persistence/mongodb/internal/DataCreationHelper.java index 83ecd75b40c..ac4deaf7732 100644 --- a/bundles/org.openhab.persistence.mongodb/src/test/java/org/openhab/persistence/mongodb/internal/DataCreationHelper.java +++ b/bundles/org.openhab.persistence.mongodb/src/test/java/org/openhab/persistence/mongodb/internal/DataCreationHelper.java @@ -15,6 +15,9 @@ package org.openhab.persistence.mongodb.internal; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.when; +import java.io.BufferedReader; +import java.io.FileReader; +import java.io.IOException; import java.time.LocalDate; import java.time.ZonedDateTime; import java.util.ArrayList; @@ -224,6 +227,26 @@ public class DataCreationHelper { new QuantityType<>("25.00 °F")))); } + /** + * Checks if the current system supports AVX (Advanced Vector Extensions). + * AVX is a set of CPU instructions that can greatly improve performance for certain operations. + * + * @return true if AVX is supported, false otherwise + */ + public static boolean isAVXSupported() { + try (BufferedReader reader = new BufferedReader(new FileReader("/proc/cpuinfo"))) { + String line; + while ((line = reader.readLine()) != null) { + if (line.toLowerCase().contains("avx")) { + return true; + } + } + } catch (IOException e) { + return false; + } + return false; + } + /** * Provides a stream of arguments to be used for parameterized tests. * @@ -234,7 +257,7 @@ public class DataCreationHelper { * @return A stream of Arguments, each containing a DatabaseTestContainer instance. */ public static Stream provideDatabaseBackends() { - if (DockerClientFactory.instance().isDockerAvailable()) { + if (DockerClientFactory.instance().isDockerAvailable() && isAVXSupported()) { // If Docker is available, create a stream of Arguments with all backends return Stream.of( // Create a DatabaseTestContainer with a MemoryBackend diff --git a/bundles/org.openhab.persistence.mongodb/src/test/java/org/openhab/persistence/mongodb/internal/MongoDBPersistenceServiceTest.java b/bundles/org.openhab.persistence.mongodb/src/test/java/org/openhab/persistence/mongodb/internal/MongoDBPersistenceServiceTest.java index dff84eacd1e..afd122c42aa 100644 --- a/bundles/org.openhab.persistence.mongodb/src/test/java/org/openhab/persistence/mongodb/internal/MongoDBPersistenceServiceTest.java +++ b/bundles/org.openhab.persistence.mongodb/src/test/java/org/openhab/persistence/mongodb/internal/MongoDBPersistenceServiceTest.java @@ -29,7 +29,6 @@ import java.util.stream.Collectors; import org.bson.Document; import org.bson.types.ObjectId; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; @@ -63,7 +62,6 @@ import de.bwaldvogel.mongo.backend.memory.MemoryBackend; * * @author René Ulbricht - Initial contribution */ -@Disabled("Fails on CPUs without AVX support, see: https://github.com/openhab/openhab-addons/issues/17046") public class MongoDBPersistenceServiceTest { /**