From da92eed2250c149eb9cf87bbfd5cc8c6217e9705 Mon Sep 17 00:00:00 2001 From: David Capwell Date: Mon, 8 May 2023 11:56:37 -0700 Subject: [PATCH] CEP-15: (C*) Enhance in-memory FileSystem to work with mmap and support tests to add custom logic patch by David Capwell; reviewed by Caleb Rackliffe for CASSANDRA-18485 --- .../cassandra/simulator/ClusterSimulation.java | 1 - test/unit/org/apache/cassandra/cql3/CQLTester.java | 13 +++++++++++++ .../cassandra/cql3/PreparedStatementsTest.java | 2 ++ .../validation/entities/FrozenCollectionsTest.java | 7 ++++++- 4 files changed, 21 insertions(+), 2 deletions(-) diff --git a/test/simulator/main/org/apache/cassandra/simulator/ClusterSimulation.java b/test/simulator/main/org/apache/cassandra/simulator/ClusterSimulation.java index 9b31de369b..7c8867b9c1 100644 --- a/test/simulator/main/org/apache/cassandra/simulator/ClusterSimulation.java +++ b/test/simulator/main/org/apache/cassandra/simulator/ClusterSimulation.java @@ -727,7 +727,6 @@ public class ClusterSimulation implements AutoCloseable .set("failure_detector", SimulatedFailureDetector.Instance.class.getName()) .set("commitlog_compression", new ParameterizedClass(LZ4Compressor.class.getName(), emptyMap())) .set("commitlog_sync", "batch"); - // TODO: Add remove() to IInstanceConfig if (config instanceof InstanceConfig) { diff --git a/test/unit/org/apache/cassandra/cql3/CQLTester.java b/test/unit/org/apache/cassandra/cql3/CQLTester.java index e988b979ab..a167be90e3 100644 --- a/test/unit/org/apache/cassandra/cql3/CQLTester.java +++ b/test/unit/org/apache/cassandra/cql3/CQLTester.java @@ -159,6 +159,7 @@ import org.apache.cassandra.exceptions.SyntaxException; import org.apache.cassandra.index.Index; import org.apache.cassandra.index.SecondaryIndexManager; import org.apache.cassandra.io.filesystem.ListenableFileSystem; +import org.apache.cassandra.io.sstable.Descriptor; import org.apache.cassandra.io.util.File; import org.apache.cassandra.io.util.FileSystems; import org.apache.cassandra.io.util.FileUtils; @@ -3238,6 +3239,18 @@ public abstract class CQLTester return; fs.clearListeners(); } + + protected ListenableFileSystem.PathFilter isCurrentTableIndexFile(String keyspace) + { + return path -> { + if (!path.getFileName().toString().endsWith("Index.db")) + return false; + Descriptor desc = Descriptor.fromFile(new File(path)); + if (!desc.ksname.equals(keyspace) && desc.cfname.equals(currentTable())) + return false; + return true; + }; + } } private static class ClusterSettings diff --git a/test/unit/org/apache/cassandra/cql3/PreparedStatementsTest.java b/test/unit/org/apache/cassandra/cql3/PreparedStatementsTest.java index 2d09317333..db84d8fde3 100644 --- a/test/unit/org/apache/cassandra/cql3/PreparedStatementsTest.java +++ b/test/unit/org/apache/cassandra/cql3/PreparedStatementsTest.java @@ -37,6 +37,7 @@ import com.datastax.driver.core.ResultSet; import com.datastax.driver.core.Session; import com.datastax.driver.core.exceptions.SyntaxError; import com.datastax.driver.core.exceptions.WriteTimeoutException; +import org.apache.cassandra.ServerTestUtils; import org.apache.cassandra.config.DatabaseDescriptor; import org.apache.cassandra.db.ConsistencyLevel; import org.apache.cassandra.exceptions.PreparedQueryNotFoundException; @@ -66,6 +67,7 @@ public class PreparedStatementsTest extends CQLTester @BeforeClass public static void setUpClass() { + ServerTestUtils.daemonInitialization(); DatabaseDescriptor.setAccordTransactionsEnabled(true); CQLTester.setUpClass(); } diff --git a/test/unit/org/apache/cassandra/cql3/validation/entities/FrozenCollectionsTest.java b/test/unit/org/apache/cassandra/cql3/validation/entities/FrozenCollectionsTest.java index 9ea3e7b058..1bdd1ca19b 100644 --- a/test/unit/org/apache/cassandra/cql3/validation/entities/FrozenCollectionsTest.java +++ b/test/unit/org/apache/cassandra/cql3/validation/entities/FrozenCollectionsTest.java @@ -29,7 +29,12 @@ import org.junit.Test; import org.apache.cassandra.Util; import org.apache.cassandra.cql3.CQLTester; import org.apache.cassandra.cql3.restrictions.StatementRestrictions; -import org.apache.cassandra.db.marshal.*; +import org.apache.cassandra.db.marshal.AbstractType; +import org.apache.cassandra.db.marshal.Int32Type; +import org.apache.cassandra.db.marshal.ListType; +import org.apache.cassandra.db.marshal.MapType; +import org.apache.cassandra.db.marshal.SetType; +import org.apache.cassandra.db.marshal.TupleType; import org.apache.cassandra.dht.ByteOrderedPartitioner; import org.apache.cassandra.exceptions.ConfigurationException; import org.apache.cassandra.exceptions.InvalidRequestException;