This is an automated email from the ASF dual-hosted git repository.

jackietien pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/master by this push:
     new 1f34ad7c9f8 Fix the path of TsFileResource in unit test
1f34ad7c9f8 is described below

commit 1f34ad7c9f8beb8b17a7bea005c320fb205c908c
Author: shuwenwei <[email protected]>
AuthorDate: Fri Nov 3 19:32:29 2023 +0800

    Fix the path of TsFileResource in unit test
---
 .../dataregion/LastFlushTimeMapTest.java           | 34 +++++++++--
 .../compaction/AbstractCompactionTest.java         | 68 ++++++++++++++++++++++
 .../cross/InsertionCrossSpaceCompactionTest.java   | 22 ++++++-
 3 files changed, 117 insertions(+), 7 deletions(-)

diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/LastFlushTimeMapTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/LastFlushTimeMapTest.java
index 13b4448ae2e..c0bfea036f7 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/LastFlushTimeMapTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/LastFlushTimeMapTest.java
@@ -143,43 +143,65 @@ public class LastFlushTimeMapTest {
 
   @Test
   public void 
testRecoverDeviceLastFlushedTimeWhenLargestTimestampInUnSeqSpace() {
+    String seqDirPath =
+        TestConstant.BASE_OUTPUT_PATH
+            + "data"
+            + File.separator
+            + "sequence"
+            + File.separator
+            + "root.testsg"
+            + File.separator
+            + "0"
+            + File.separator
+            + "0";
+    String unseqDirPath =
+        TestConstant.BASE_OUTPUT_PATH
+            + "data"
+            + File.separator
+            + "unsequence"
+            + File.separator
+            + "root.testsg"
+            + File.separator
+            + "0"
+            + File.separator
+            + "0";
     String device = "root.testsg.d1";
-    File seqResourceFile1 = new File("1-1-0-0.tsfile.resource");
+    File seqResourceFile1 = new File(seqDirPath + File.separator + 
"1-1-0-0.tsfile.resource");
     TsFileResource seqResource1 = new TsFileResource();
     seqResource1.setFile(seqResourceFile1);
     seqResource1.setTimeIndex(new DeviceTimeIndex());
     seqResource1.updateStartTime(device, 10);
     seqResource1.updateEndTime(device, 20);
 
-    File seqResourceFile2 = new File("2-2-0-0.tsfile.resource");
+    File seqResourceFile2 = new File(seqDirPath + File.separator + 
"2-2-0-0.tsfile.resource");
     TsFileResource seqResource2 = new TsFileResource();
     seqResource2.setTimeIndex(new DeviceTimeIndex());
     seqResource2.setFile(seqResourceFile2);
     seqResource2.updateStartTime(device, 30);
     seqResource2.updateEndTime(device, 40);
 
-    File seqResourceFile3 = new File("3-3-0-0.tsfile.resource");
+    File seqResourceFile3 = new File(seqDirPath + File.separator + 
"3-3-0-0.tsfile.resource");
     TsFileResource seqResource3 = new TsFileResource();
     seqResource3.setTimeIndex(new DeviceTimeIndex());
     seqResource3.setFile(seqResourceFile3);
     seqResource3.updateStartTime(device, 50);
     seqResource3.updateEndTime(device, 60);
 
-    File unseqResourceFile1 = new File("4-4-0-0.tsfile.resource");
+    File unseqResourceFile1 = new File(unseqDirPath + File.separator + 
"4-4-0-0.tsfile.resource");
     TsFileResource unseqResource1 = new TsFileResource();
     unseqResource1.setTimeIndex(new DeviceTimeIndex());
     unseqResource1.setFile(unseqResourceFile1);
     unseqResource1.updateStartTime(device, 1);
     unseqResource1.updateEndTime(device, 100);
 
-    File unseqResourceFile2 = new File("5-5-0-0.tsfile.resource");
+    File unseqResourceFile2 = new File(unseqDirPath + File.separator + 
"5-5-0-0.tsfile.resource");
     TsFileResource unseqResource2 = new TsFileResource();
     unseqResource2.setTimeIndex(new DeviceTimeIndex());
     unseqResource2.setFile(unseqResourceFile2);
     unseqResource2.updateStartTime(device, 1);
     unseqResource2.updateEndTime(device, 10);
 
-    File unseqResourceFile3 = new File("6-6-0-0.tsfile.resource");
+    File unseqResourceFile3 = new File(unseqDirPath + File.separator + 
"6-6-0-0.tsfile.resource");
     TsFileResource unseqResource3 = new TsFileResource();
     unseqResource3.setTimeIndex(new DeviceTimeIndex());
     unseqResource3.setFile(unseqResourceFile3);
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/AbstractCompactionTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/AbstractCompactionTest.java
index 3a4f5b362ba..474c134cca9 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/AbstractCompactionTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/AbstractCompactionTest.java
@@ -154,6 +154,8 @@ public class AbstractCompactionTest {
               + File.separator
               + "0");
 
+  protected Map<Long, Pair<File, File>> registeredTimePartitionDirs = new 
HashMap<>();
+
   private int fileVersion = 0;
 
   private int fileCount = 0;
@@ -179,6 +181,41 @@ public class AbstractCompactionTest {
     BloomFilterCache.getInstance().clear();
     tsFileManager.getOrCreateSequenceListByTimePartition(0);
     tsFileManager.getOrCreateUnsequenceListByTimePartition(0);
+    registeredTimePartitionDirs.put(0L, new Pair<>(SEQ_DIRS, UNSEQ_DIRS));
+  }
+
+  protected void createTimePartitionDirIfNotExist(long timePartition) {
+    if (registeredTimePartitionDirs.containsKey(timePartition)) {
+      return;
+    }
+    File seqTimePartitionDir =
+        new File(
+            TestConstant.BASE_OUTPUT_PATH
+                + "data"
+                + File.separator
+                + "sequence"
+                + File.separator
+                + COMPACTION_TEST_SG
+                + File.separator
+                + "0"
+                + File.separator
+                + timePartition);
+    seqTimePartitionDir.mkdirs();
+    File unseqTimePartitionDir =
+        new File(
+            TestConstant.BASE_OUTPUT_PATH
+                + "data"
+                + File.separator
+                + "unsequence"
+                + File.separator
+                + COMPACTION_TEST_SG
+                + File.separator
+                + "0"
+                + File.separator
+                + timePartition);
+    unseqTimePartitionDir.mkdirs();
+    registeredTimePartitionDirs.put(
+        timePartition, new Pair<File, File>(seqTimePartitionDir, 
unseqTimePartitionDir));
   }
 
   /**
@@ -416,6 +453,17 @@ public class AbstractCompactionTest {
     if (UNSEQ_DIRS.exists()) {
       FileUtils.deleteDirectory(UNSEQ_DIRS);
     }
+    for (Map.Entry<Long, Pair<File, File>> entry : 
registeredTimePartitionDirs.entrySet()) {
+      File seqDir = entry.getValue().left;
+      File unseqDir = entry.getValue().right;
+      if (seqDir.exists() && seqDir.isDirectory()) {
+        FileUtils.deleteDirectory(seqDir);
+      }
+      if (unseqDir.exists() && unseqDir.isDirectory()) {
+        FileUtils.deleteDirectory(unseqDir);
+      }
+    }
+    registeredTimePartitionDirs.clear();
     tsFileManager.clear();
   }
 
@@ -622,6 +670,26 @@ public class AbstractCompactionTest {
     return resource;
   }
 
+  protected TsFileResource createEmptyFileAndResourceWithName(
+      String fileName, long timePartition, boolean isSeq) {
+    if (!registeredTimePartitionDirs.containsKey(timePartition)) {
+      createTimePartitionDirIfNotExist(timePartition);
+    }
+    String filePath;
+    if (isSeq) {
+      filePath =
+          registeredTimePartitionDirs.get(timePartition).left.getPath() + 
File.separator + fileName;
+    } else {
+      filePath =
+          registeredTimePartitionDirs.get(timePartition).right.getPath()
+              + File.separator
+              + fileName;
+    }
+    TsFileResource resource = new TsFileResource(new File(filePath));
+    resource.setStatusForTest(TsFileResourceStatus.NORMAL);
+    return resource;
+  }
+
   protected void setDataType(TSDataType dataType) {
     this.dataType = dataType;
   }
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/cross/InsertionCrossSpaceCompactionTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/cross/InsertionCrossSpaceCompactionTest.java
index 81bfcc2a224..7db59c4e690 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/cross/InsertionCrossSpaceCompactionTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/cross/InsertionCrossSpaceCompactionTest.java
@@ -419,11 +419,13 @@ public class InsertionCrossSpaceCompactionTest extends 
AbstractCompactionTest {
         generateSingleNonAlignedSeriesFileWithDevices(
             "3-3-0-0.tsfile", new String[] {"d1"}, new TimeRange[] {new 
TimeRange(6, 9)}, false);
     unseqResource2.setStatusForTest(TsFileResourceStatus.NORMAL);
+    createTimePartitionDirIfNotExist(2808L);
     TsFileResource unseqResource3 =
-        generateSingleNonAlignedSeriesFileWithDevices(
+        generateSingleNonAlignedSeriesFileWithDevicesWithTimePartition(
             "4-4-0-0.tsfile",
             new String[] {"d1"},
             new TimeRange[] {new TimeRange(1698301490306L, 1698301490406L)},
+            2808L,
             false);
     unseqResource3.setStatusForTest(TsFileResourceStatus.NORMAL);
     unseqResources.add(unseqResource1);
@@ -472,6 +474,24 @@ public class InsertionCrossSpaceCompactionTest extends 
AbstractCompactionTest {
     return seqResource1;
   }
 
+  public TsFileResource 
generateSingleNonAlignedSeriesFileWithDevicesWithTimePartition(
+      String fileName, String[] devices, TimeRange[] timeRanges, long 
timePartition, boolean seq)
+      throws IOException {
+    TsFileResource seqResource1 = createEmptyFileAndResourceWithName(fileName, 
timePartition, seq);
+    CompactionTestFileWriter writer1 = new 
CompactionTestFileWriter(seqResource1);
+    for (int i = 0; i < devices.length; i++) {
+      String device = devices[i];
+      TimeRange timeRange = timeRanges[i];
+      writer1.startChunkGroup(device);
+      writer1.generateSimpleNonAlignedSeriesToCurrentDevice(
+          "s1", new TimeRange[] {timeRange}, TSEncoding.PLAIN, 
CompressionType.LZ4);
+      writer1.endChunkGroup();
+    }
+    writer1.endFile();
+    writer1.close();
+    return seqResource1;
+  }
+
   private DataRegionForCompactionTest createDataRegion() {
     return new DataRegionForCompactionTest(COMPACTION_TEST_SG, "0");
   }

Reply via email to