Skip to content

Commit

Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
improved execution conditions for Cassandra test
Browse files Browse the repository at this point in the history
asolimando committed Feb 4, 2024
1 parent f4f05e2 commit fcfa3c7
Showing 1 changed file with 23 additions and 30 deletions.
Original file line number Diff line number Diff line change
@@ -17,20 +17,19 @@
package org.apache.calcite.test;

import org.apache.calcite.config.CalciteSystemProperty;
import org.apache.calcite.util.Bug;
import org.apache.calcite.util.Sources;
import org.apache.calcite.util.TestUtil;

import org.apache.cassandra.concurrent.Stage;
import org.apache.cassandra.config.DatabaseDescriptor;
import org.apache.cassandra.db.WindowsFailedSnapshotTracker;
import org.apache.cassandra.service.CassandraDaemon;
import org.apache.cassandra.service.StorageService;
import org.apache.cassandra.utils.FBUtilities;

import com.datastax.oss.driver.api.core.CqlSession;
import com.google.common.collect.ImmutableMap;

import org.apache.commons.lang3.SystemUtils;

import org.cassandraunit.utils.EmbeddedCassandraServerHelper;
import org.junit.jupiter.api.extension.ConditionEvaluationResult;
import org.junit.jupiter.api.extension.ExecutionCondition;
@@ -43,8 +42,6 @@
import java.io.IOException;
import java.io.UncheckedIOException;
import java.lang.reflect.Field;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.time.Duration;
import java.util.Locale;
import java.util.Objects;
@@ -121,34 +118,39 @@ private static CassandraResource getOrCreate(ExtensionContext context) {
* {@link com.google.common.collect.ImmutableSet#builderWithExpectedSize(int)}
* and therefore Guava 23 or higher.
*
* <p>Cassandra dropped support for Windows in 4.1.x
* @see <a href="https://issues.apache.org/jira/browse/CASSANDRA-16956">CASSANDRA-16956</a>
*
* @return {@code true} if test is compatible with current environment,
* {@code false} otherwise
*/
@Override public ConditionEvaluationResult evaluateExecutionCondition(
final ExtensionContext context) {
boolean enabled = CalciteSystemProperty.TEST_CASSANDRA.value();
Bug.upgrade("remove JDK version check once cassandra-unit supports JDK11+");
// remove JDK version check once cassandra-unit supports JDK11+
boolean compatibleJdk = TestUtil.getJavaMajorVersion() < 11;
boolean compatibleGuava = TestUtil.getGuavaMajorVersion() >= 23;
// See https://issues.apache.org/jira/browse/CASSANDRA-14883
Bug.upgrade("remove JVM check once Cassandra supports Eclipse OpenJ9 JVM");
// remove JVM check once Cassandra supports Eclipse OpenJ9 JVM
boolean compatibleJVM = !"Eclipse OpenJ9".equals(TestUtil.getJavaVirtualMachineVendor());
if (enabled && compatibleJdk && compatibleGuava && compatibleJVM) {
boolean compatibleOS = !SystemUtils.IS_OS_WINDOWS;
if (enabled && compatibleJdk && compatibleGuava && compatibleJVM && compatibleOS) {
return ConditionEvaluationResult.enabled("Cassandra tests enabled");
} else {
final StringBuilder sb = new StringBuilder("Cassandra tests disabled:");
}

if (!compatibleJdk) {
sb.append("\nJDK11+ is not supported");
}
if (!compatibleGuava) {
sb.append("\nGuava versions < 23 are not supported");
}
if (!compatibleJVM) {
sb.append("\nEclipse OpenJ9 JVM is not supported");
}
return ConditionEvaluationResult.disabled(sb.toString());
final StringBuilder sb = new StringBuilder("Cassandra tests disabled:");
if (!compatibleJdk) {
sb.append("\n - JDK11+ is not supported");
}
if (!compatibleGuava) {
sb.append("\n - Guava versions < 23 are not supported");
}
if (!compatibleJVM) {
sb.append("\n - Eclipse OpenJ9 JVM is not supported");
}
if (!compatibleOS) {
sb.append("\n - Cassandra doesn't support Windows");
}
return ConditionEvaluationResult.disabled(sb.toString());
}

/** Cassandra resource. */
@@ -187,14 +189,6 @@ private CassandraResource() {
Thread.currentThread().interrupt();
}
Stage.shutdownNow();

if (FBUtilities.isWindows) {
// for some reason .toDelete stale folder is not deleted on cassandra shutdown
// doing it manually here
WindowsFailedSnapshotTracker.resetForTests();
// manually delete stale file(s)
Files.deleteIfExists(Paths.get(WindowsFailedSnapshotTracker.TODELETEFILE));
}
}

private static void startCassandra() {
@@ -235,5 +229,4 @@ private static CassandraDaemon extractDaemon() {
}
}
}

}

0 comments on commit fcfa3c7

Please sign in to comment.