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");
}