Do not leak Kryo from atomix.storage
[controller.git] / third-party / atomix / storage / src / test / java / io / atomix / storage / journal / AbstractJournalTest.java
index 8e027da8ba06ddeb83d82449e64e4c353b96ab35..222d0bfe391307e7b49528be431cf82c37523665 100644 (file)
@@ -1,5 +1,6 @@
 /*
- * Copyright 2017-present Open Networking Foundation
+ * Copyright 2017-2021 Open Networking Foundation
+ * Copyright 2023 PANTHEON.tech, s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  */
 package io.atomix.storage.journal;
 
-import io.atomix.storage.StorageLevel;
-import io.atomix.utils.serializer.Namespace;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
 
 import java.io.IOException;
 import java.nio.file.FileVisitResult;
@@ -31,14 +30,12 @@ import java.nio.file.Paths;
 import java.nio.file.SimpleFileVisitor;
 import java.nio.file.attribute.BasicFileAttributes;
 import java.util.ArrayList;
-import java.util.Collection;
 import java.util.List;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
 
 /**
  * Base journal test.
@@ -47,33 +44,31 @@ import static org.junit.Assert.assertTrue;
  */
 @RunWith(Parameterized.class)
 public abstract class AbstractJournalTest {
-  private static final Namespace NAMESPACE = Namespace.builder()
-      .register(TestEntry.class)
-      .register(byte[].class)
+  private static final JournalSerdes NAMESPACE = JournalSerdes.builder()
+      .register(new TestEntrySerdes(), TestEntry.class)
+      .register(new ByteArraySerdes(), byte[].class)
       .build();
 
   protected static final TestEntry ENTRY = new TestEntry(32);
   private static final Path PATH = Paths.get("target/test-logs/");
 
   private final int maxSegmentSize;
-  private final int cacheSize;
   protected final int entriesPerSegment;
 
-  protected AbstractJournalTest(int maxSegmentSize, int cacheSize) {
+  protected AbstractJournalTest(final int maxSegmentSize) {
     this.maxSegmentSize = maxSegmentSize;
-    this.cacheSize = cacheSize;
-    int entryLength = (NAMESPACE.serialize(ENTRY).length + 8);
-    this.entriesPerSegment = (maxSegmentSize - 64) / entryLength;
+    int entryLength = NAMESPACE.serialize(ENTRY).length + 8;
+    entriesPerSegment = (maxSegmentSize - 64) / entryLength;
   }
 
   protected abstract StorageLevel storageLevel();
 
   @Parameterized.Parameters
-  public static Collection primeNumbers() {
+  public static List<Object[]> primeNumbers() {
     List<Object[]> runs = new ArrayList<>();
     for (int i = 1; i <= 10; i++) {
       for (int j = 1; j <= 10; j++) {
-        runs.add(new Object[]{64 + (i * (NAMESPACE.serialize(ENTRY).length + 8) + j), j});
+        runs.add(new Object[]{64 + i * (NAMESPACE.serialize(ENTRY).length + 8) + j});
       }
     }
     return runs;
@@ -87,7 +82,6 @@ public abstract class AbstractJournalTest {
         .withStorageLevel(storageLevel())
         .withMaxSegmentSize(maxSegmentSize)
         .withIndexDensity(.2)
-        .withCacheSize(cacheSize)
         .build();
   }
 
@@ -104,7 +98,6 @@ public abstract class AbstractJournalTest {
   }
 
   @Test
-  @SuppressWarnings("unchecked")
   public void testWriteRead() throws Exception {
     try (Journal<TestEntry> journal = createJournal()) {
       JournalWriter<TestEntry> writer = journal.writer();
@@ -126,7 +119,7 @@ public abstract class AbstractJournalTest {
       // Test reading an entry
       Indexed<TestEntry> entry1;
       reader.reset();
-      entry1 = (Indexed) reader.next();
+      entry1 = reader.next();
       assertEquals(1, entry1.index());
       assertEquals(entry1, reader.getCurrentEntry());
       assertEquals(1, reader.getCurrentIndex());
@@ -135,7 +128,7 @@ public abstract class AbstractJournalTest {
       Indexed<TestEntry> entry2;
       assertTrue(reader.hasNext());
       assertEquals(2, reader.getNextIndex());
-      entry2 = (Indexed) reader.next();
+      entry2 = reader.next();
       assertEquals(2, entry2.index());
       assertEquals(entry2, reader.getCurrentEntry());
       assertEquals(2, reader.getCurrentIndex());
@@ -144,7 +137,7 @@ public abstract class AbstractJournalTest {
       // Test opening a new reader and reading from the journal.
       reader = journal.openReader(1);
       assertTrue(reader.hasNext());
-      entry1 = (Indexed) reader.next();
+      entry1 = reader.next();
       assertEquals(1, entry1.index());
       assertEquals(entry1, reader.getCurrentEntry());
       assertEquals(1, reader.getCurrentIndex());
@@ -152,7 +145,7 @@ public abstract class AbstractJournalTest {
 
       assertTrue(reader.hasNext());
       assertEquals(2, reader.getNextIndex());
-      entry2 = (Indexed) reader.next();
+      entry2 = reader.next();
       assertEquals(2, entry2.index());
       assertEquals(entry2, reader.getCurrentEntry());
       assertEquals(2, reader.getCurrentIndex());
@@ -164,7 +157,7 @@ public abstract class AbstractJournalTest {
       // Test opening a new reader and reading from the journal.
       reader = journal.openReader(1);
       assertTrue(reader.hasNext());
-      entry1 = (Indexed) reader.next();
+      entry1 = reader.next();
       assertEquals(1, entry1.index());
       assertEquals(entry1, reader.getCurrentEntry());
       assertEquals(1, reader.getCurrentIndex());
@@ -172,7 +165,7 @@ public abstract class AbstractJournalTest {
 
       assertTrue(reader.hasNext());
       assertEquals(2, reader.getNextIndex());
-      entry2 = (Indexed) reader.next();
+      entry2 = reader.next();
       assertEquals(2, entry2.index());
       assertEquals(entry2, reader.getCurrentEntry());
       assertEquals(2, reader.getCurrentIndex());
@@ -194,7 +187,7 @@ public abstract class AbstractJournalTest {
       assertEquals(1, reader.getCurrentEntry().index());
       assertTrue(reader.hasNext());
       assertEquals(2, reader.getNextIndex());
-      entry2 = (Indexed) reader.next();
+      entry2 = reader.next();
       assertEquals(2, entry2.index());
       assertEquals(entry2, reader.getCurrentEntry());
       assertEquals(2, reader.getCurrentIndex());
@@ -268,7 +261,6 @@ public abstract class AbstractJournalTest {
   }
 
   @Test
-  @SuppressWarnings("unchecked")
   public void testWriteReadEntries() throws Exception {
     try (Journal<TestEntry> journal = createJournal()) {
       JournalWriter<TestEntry> writer = journal.writer();
@@ -278,11 +270,11 @@ public abstract class AbstractJournalTest {
         writer.append(ENTRY);
         assertTrue(reader.hasNext());
         Indexed<TestEntry> entry;
-        entry = (Indexed) reader.next();
+        entry = reader.next();
         assertEquals(i, entry.index());
         assertEquals(32, entry.entry().bytes().length);
         reader.reset(i);
-        entry = (Indexed) reader.next();
+        entry = reader.next();
         assertEquals(i, entry.index());
         assertEquals(32, entry.entry().bytes().length);
 
@@ -301,7 +293,7 @@ public abstract class AbstractJournalTest {
         assertTrue(reader.hasNext());
         reader.reset(i);
         assertTrue(reader.hasNext());
-        entry = (Indexed) reader.next();
+        entry = reader.next();
         assertEquals(i, entry.index());
         assertEquals(32, entry.entry().bytes().length);
       }
@@ -309,7 +301,6 @@ public abstract class AbstractJournalTest {
   }
 
   @Test
-  @SuppressWarnings("unchecked")
   public void testWriteReadCommittedEntries() throws Exception {
     try (Journal<TestEntry> journal = createJournal()) {
       JournalWriter<TestEntry> writer = journal.writer();
@@ -321,11 +312,11 @@ public abstract class AbstractJournalTest {
         writer.commit(i);
         assertTrue(reader.hasNext());
         Indexed<TestEntry> entry;
-        entry = (Indexed) reader.next();
+        entry = reader.next();
         assertEquals(i, entry.index());
         assertEquals(32, entry.entry().bytes().length);
         reader.reset(i);
-        entry = (Indexed) reader.next();
+        entry = reader.next();
         assertEquals(i, entry.index());
         assertEquals(32, entry.entry().bytes().length);
       }
@@ -380,13 +371,13 @@ public abstract class AbstractJournalTest {
     if (Files.exists(PATH)) {
       Files.walkFileTree(PATH, new SimpleFileVisitor<Path>() {
         @Override
-        public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
+        public FileVisitResult visitFile(final Path file, final BasicFileAttributes attrs) throws IOException {
           Files.delete(file);
           return FileVisitResult.CONTINUE;
         }
 
         @Override
-        public FileVisitResult postVisitDirectory(Path dir, IOException exc) throws IOException {
+        public FileVisitResult postVisitDirectory(final Path dir, final IOException exc) throws IOException {
           Files.delete(dir);
           return FileVisitResult.CONTINUE;
         }