This is an automated email from the ASF dual-hosted git repository.
pjfanning pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/pekko.git
The following commit(s) were added to refs/heads/main by this push:
new 7b6b7ed6c1 make one of the new persistence-tck journal tests optional
(#3083)
7b6b7ed6c1 is described below
commit 7b6b7ed6c136bee4d4499f452cf75680b7ae4815
Author: PJ Fanning <[email protected]>
AuthorDate: Thu Jun 18 12:56:19 2026 +0100
make one of the new persistence-tck journal tests optional (#3083)
* make one of the new persistence-tck journal tests optional
* Update CapabilityFlags.scala
---
.../persistence/PersistencePluginDocSpec.scala | 30 +++++++++++-----------
.../apache/pekko/persistence/CapabilityFlags.scala | 10 ++++++++
.../japi/journal/JavaJournalPerfSpec.scala | 2 ++
.../pekko/persistence/journal/JournalSpec.scala | 24 +++++++++--------
.../journal/inmem/InmemJournalSpec.scala | 1 +
.../journal/leveldb/LeveldbJournalJavaSpec.scala | 3 +++
.../journal/leveldb/LeveldbJournalNativeSpec.scala | 2 ++
...bJournalNoAtomicPersistMultipleEventsSpec.scala | 2 ++
.../PersistenceTestKitJournalCompatSpec.scala | 1 +
9 files changed, 50 insertions(+), 25 deletions(-)
diff --git
a/docs/src/test/scala/docs/persistence/PersistencePluginDocSpec.scala
b/docs/src/test/scala/docs/persistence/PersistencePluginDocSpec.scala
index 79d2d8c3dc..02661d3743 100644
--- a/docs/src/test/scala/docs/persistence/PersistencePluginDocSpec.scala
+++ b/docs/src/test/scala/docs/persistence/PersistencePluginDocSpec.scala
@@ -14,17 +14,17 @@
package docs.persistence
import scala.collection.immutable
-import org.apache.pekko.actor.ActorSystem
-import org.apache.pekko.testkit.TestKit
-import com.typesafe.config._
-import org.scalatest.wordspec.AnyWordSpec
-
import scala.concurrent.Future
-import scala.util.Try
import scala.concurrent.duration._
+import scala.util.Try
-//#plugin-imports
+import com.typesafe.config._
import org.apache.pekko
+import pekko.actor.ActorSystem
+import pekko.testkit.TestKit
+import org.scalatest.wordspec.AnyWordSpec
+
+//#plugin-imports
import pekko.persistence._
import pekko.persistence.journal._
import pekko.persistence.snapshot._
@@ -116,8 +116,8 @@ class PersistencePluginDocSpec extends AnyWordSpec {
}
object SharedLeveldbPluginDocSpec {
- import org.apache.pekko.actor._
- import org.apache.pekko.persistence.journal.leveldb.SharedLeveldbJournal
+ import pekko.actor._
+ import pekko.persistence.journal.leveldb.SharedLeveldbJournal
val config =
"""
@@ -153,9 +153,9 @@ trait SharedLeveldbPluginDocSpec {
val system: ActorSystem
{
- import org.apache.pekko.actor._
+ import pekko.actor._
// #shared-store-creation
- import org.apache.pekko.persistence.journal.leveldb.SharedLeveldbStore
+ import pekko.persistence.journal.leveldb.SharedLeveldbStore
val store = system.actorOf(Props[SharedLeveldbStore](), "store")
// #shared-store-creation
@@ -192,7 +192,7 @@ class MySnapshotStore extends SnapshotStore {
object PersistenceTCKDoc {
object example1 {
- import org.apache.pekko.persistence.journal.JournalSpec
+ import pekko.persistence.journal.JournalSpec
// #journal-tck-scala
class MyJournalSpec
@@ -208,7 +208,7 @@ object PersistenceTCKDoc {
// #journal-tck-scala
}
object example2 {
- import org.apache.pekko.persistence.snapshot.SnapshotStoreSpec
+ import pekko.persistence.snapshot.SnapshotStoreSpec
// #snapshot-store-tck-scala
class MySnapshotStoreSpec
@@ -223,7 +223,7 @@ object PersistenceTCKDoc {
// #snapshot-store-tck-scala
}
object example2b {
- import org.apache.pekko.persistence.state.DurableStateStoreSpec
+ import pekko.persistence.state.DurableStateStoreSpec
// #durable-state-tck-scala
class MyDurableStateStoreSpec
@@ -246,7 +246,7 @@ object PersistenceTCKDoc {
object example3 {
import java.io.File
- import org.apache.pekko.persistence.journal.JournalSpec
+ import pekko.persistence.journal.JournalSpec
import org.iq80.leveldb.util.FileUtils
// #journal-tck-before-after-scala
diff --git
a/persistence-tck/src/main/scala/org/apache/pekko/persistence/CapabilityFlags.scala
b/persistence-tck/src/main/scala/org/apache/pekko/persistence/CapabilityFlags.scala
index 0821608de3..a09441740f 100644
---
a/persistence-tck/src/main/scala/org/apache/pekko/persistence/CapabilityFlags.scala
+++
b/persistence-tck/src/main/scala/org/apache/pekko/persistence/CapabilityFlags.scala
@@ -67,6 +67,16 @@ trait JournalCapabilityFlags extends CapabilityFlags {
*/
protected def supportsMetadata: CapabilityFlag
+ /**
+ * When `true` enables tests which check if the Journal supports a replay
window that
+ * spans a deleted prefix.
+ * <p>
+ * Relates to https://github.com/apache/pekko-persistence-jdbc/pull/517.
+ * pekko-persistence-dynamodb doesn't yet fully support this.
+ * </p>
+ */
+ protected def supportsReplayWindowSpanningDeletedPrefix: CapabilityFlag
+
}
//#journal-flags
diff --git
a/persistence-tck/src/main/scala/org/apache/pekko/persistence/japi/journal/JavaJournalPerfSpec.scala
b/persistence-tck/src/main/scala/org/apache/pekko/persistence/japi/journal/JavaJournalPerfSpec.scala
index 10982f64bf..7af36d3e38 100644
---
a/persistence-tck/src/main/scala/org/apache/pekko/persistence/japi/journal/JavaJournalPerfSpec.scala
+++
b/persistence-tck/src/main/scala/org/apache/pekko/persistence/japi/journal/JavaJournalPerfSpec.scala
@@ -65,4 +65,6 @@ class JavaJournalPerfSpec(config: Config) extends
JournalPerfSpec(config) {
override protected def supportsRejectingNonSerializableObjects:
CapabilityFlag = CapabilityFlag.on()
override protected def supportsSerialization: CapabilityFlag =
CapabilityFlag.on()
+
+ override protected def supportsReplayWindowSpanningDeletedPrefix:
CapabilityFlag = CapabilityFlag.on()
}
diff --git
a/persistence-tck/src/main/scala/org/apache/pekko/persistence/journal/JournalSpec.scala
b/persistence-tck/src/main/scala/org/apache/pekko/persistence/journal/JournalSpec.scala
index 64b683204d..cd7762d7ac 100644
---
a/persistence-tck/src/main/scala/org/apache/pekko/persistence/journal/JournalSpec.scala
+++
b/persistence-tck/src/main/scala/org/apache/pekko/persistence/journal/JournalSpec.scala
@@ -66,6 +66,8 @@ abstract class JournalSpec(config: Config)
override protected def supportsMetadata: CapabilityFlag = false
+ override protected def supportsReplayWindowSpanningDeletedPrefix:
CapabilityFlag = false
+
override protected def beforeEach(): Unit = {
super.beforeEach()
senderProbe = TestProbe()
@@ -259,16 +261,6 @@ abstract class JournalSpec(config: Config)
receiverProbe.expectMsg(RecoverySuccess(highestSequenceNr = 5L))
}
- "replay surviving messages within bounds when the replay window spans a
deleted prefix" in {
- val deleteProbe = TestProbe()
- journal ! DeleteMessagesTo(pid, 3L, deleteProbe.ref)
- deleteProbe.expectMsg(DeleteMessagesSuccess(3L))
-
- journal ! ReplayMessages(1, 4, Long.MaxValue, pid, receiverProbe.ref)
- receiverProbe.expectMsg(replayedMessage(4))
- receiverProbe.expectMsg(RecoverySuccess(highestSequenceNr = 5L))
- }
-
"return only recovery success when the upper bound falls within a deleted
prefix" in {
val deleteProbe = TestProbe()
journal ! DeleteMessagesTo(pid, 3L, deleteProbe.ref)
@@ -409,5 +401,17 @@ abstract class JournalSpec(config: Config)
}
}
+
+ optional(flag = supportsReplayWindowSpanningDeletedPrefix) {
+ "replay surviving messages within bounds when the replay window spans a
deleted prefix" in {
+ val deleteProbe = TestProbe()
+ journal ! DeleteMessagesTo(pid, 3L, deleteProbe.ref)
+ deleteProbe.expectMsg(DeleteMessagesSuccess(3L))
+
+ journal ! ReplayMessages(1, 4, Long.MaxValue, pid, receiverProbe.ref)
+ receiverProbe.expectMsg(replayedMessage(4))
+ receiverProbe.expectMsg(RecoverySuccess(highestSequenceNr = 5L))
+ }
+ }
}
}
diff --git
a/persistence-tck/src/test/scala/org/apache/pekko/persistence/journal/inmem/InmemJournalSpec.scala
b/persistence-tck/src/test/scala/org/apache/pekko/persistence/journal/inmem/InmemJournalSpec.scala
index 0d5a8eef2b..dac1975c46 100644
---
a/persistence-tck/src/test/scala/org/apache/pekko/persistence/journal/inmem/InmemJournalSpec.scala
+++
b/persistence-tck/src/test/scala/org/apache/pekko/persistence/journal/inmem/InmemJournalSpec.scala
@@ -20,4 +20,5 @@ import pekko.persistence.journal.JournalSpec
class InmemJournalSpec extends JournalSpec(config =
PersistenceSpec.config("inmem", "InmemJournalSpec")) {
override protected def supportsRejectingNonSerializableObjects:
CapabilityFlag = CapabilityFlag.off()
+ override protected def supportsReplayWindowSpanningDeletedPrefix:
CapabilityFlag = CapabilityFlag.on()
}
diff --git
a/persistence-tck/src/test/scala/org/apache/pekko/persistence/journal/leveldb/LeveldbJournalJavaSpec.scala
b/persistence-tck/src/test/scala/org/apache/pekko/persistence/journal/leveldb/LeveldbJournalJavaSpec.scala
index 6e9d68db78..89a453b655 100644
---
a/persistence-tck/src/test/scala/org/apache/pekko/persistence/journal/leveldb/LeveldbJournalJavaSpec.scala
+++
b/persistence-tck/src/test/scala/org/apache/pekko/persistence/journal/leveldb/LeveldbJournalJavaSpec.scala
@@ -32,4 +32,7 @@ class LeveldbJournalJavaSpec
override def supportsRejectingNonSerializableObjects = true
override def supportsSerialization = true
+
+ override def supportsReplayWindowSpanningDeletedPrefix = true
+
}
diff --git
a/persistence-tck/src/test/scala/org/apache/pekko/persistence/journal/leveldb/LeveldbJournalNativeSpec.scala
b/persistence-tck/src/test/scala/org/apache/pekko/persistence/journal/leveldb/LeveldbJournalNativeSpec.scala
index f03a25a756..e535b1eefe 100644
---
a/persistence-tck/src/test/scala/org/apache/pekko/persistence/journal/leveldb/LeveldbJournalNativeSpec.scala
+++
b/persistence-tck/src/test/scala/org/apache/pekko/persistence/journal/leveldb/LeveldbJournalNativeSpec.scala
@@ -33,4 +33,6 @@ class LeveldbJournalNativeSpec
override def supportsSerialization = true
+ override def supportsReplayWindowSpanningDeletedPrefix = true
+
}
diff --git
a/persistence-tck/src/test/scala/org/apache/pekko/persistence/journal/leveldb/LeveldbJournalNoAtomicPersistMultipleEventsSpec.scala
b/persistence-tck/src/test/scala/org/apache/pekko/persistence/journal/leveldb/LeveldbJournalNoAtomicPersistMultipleEventsSpec.scala
index 3d77906489..0a85570f3d 100644
---
a/persistence-tck/src/test/scala/org/apache/pekko/persistence/journal/leveldb/LeveldbJournalNoAtomicPersistMultipleEventsSpec.scala
+++
b/persistence-tck/src/test/scala/org/apache/pekko/persistence/journal/leveldb/LeveldbJournalNoAtomicPersistMultipleEventsSpec.scala
@@ -38,4 +38,6 @@ class LeveldbJournalNoAtomicPersistMultipleEventsSpec
override def supportsSerialization = true
+ override def supportsReplayWindowSpanningDeletedPrefix = true
+
}
diff --git
a/persistence-testkit/src/test/scala/org/apache/pekko/persistence/testkit/scaladsl/PersistenceTestKitJournalCompatSpec.scala
b/persistence-testkit/src/test/scala/org/apache/pekko/persistence/testkit/scaladsl/PersistenceTestKitJournalCompatSpec.scala
index a30e72ac75..a0eed033b1 100644
---
a/persistence-testkit/src/test/scala/org/apache/pekko/persistence/testkit/scaladsl/PersistenceTestKitJournalCompatSpec.scala
+++
b/persistence-testkit/src/test/scala/org/apache/pekko/persistence/testkit/scaladsl/PersistenceTestKitJournalCompatSpec.scala
@@ -48,6 +48,7 @@ class PersistenceTestKitJournalCompatSpec extends
JournalSpec(config = Persisten
override protected def supportsRejectingNonSerializableObjects:
CapabilityFlag = true
override protected def supportsMetadata: CapabilityFlag = true
+ override protected def supportsReplayWindowSpanningDeletedPrefix:
CapabilityFlag = true
}
class PersistenceTestKitSnapshotStoreCompatSpec
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]