diff options
| author | Chris Lu <chris.lu@gmail.com> | 2018-12-03 22:12:20 -0800 |
|---|---|---|
| committer | Chris Lu <chris.lu@gmail.com> | 2018-12-03 22:12:20 -0800 |
| commit | c85ee7c0fdb61fe401a8cab2512c65b4e48a8126 (patch) | |
| tree | 8cc64a9d7fb799e325567ce57c76d6f77e8702f6 /other/java/hdfs/src/test | |
| parent | 4119c61df84305886e6116705f1ad08d3da69328 (diff) | |
| download | seaweedfs-c85ee7c0fdb61fe401a8cab2512c65b4e48a8126.tar.xz seaweedfs-c85ee7c0fdb61fe401a8cab2512c65b4e48a8126.zip | |
HCFS: read concatenated files
Diffstat (limited to 'other/java/hdfs/src/test')
| -rw-r--r-- | other/java/hdfs/src/test/java/seaweedfs/hdfs/SeaweedReadTest.java | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/other/java/hdfs/src/test/java/seaweedfs/hdfs/SeaweedReadTest.java b/other/java/hdfs/src/test/java/seaweedfs/hdfs/SeaweedReadTest.java new file mode 100644 index 000000000..4bb9efff5 --- /dev/null +++ b/other/java/hdfs/src/test/java/seaweedfs/hdfs/SeaweedReadTest.java @@ -0,0 +1,66 @@ +package seaweedfs.hdfs; + +import org.junit.Test; +import seaweed.hdfs.SeaweedRead; +import seaweedfs.client.FilerProto; + +import java.util.ArrayList; +import java.util.List; + +import static org.junit.Assert.assertEquals; + +public class SeaweedReadTest { + + @Test + public void testNonOverlappingVisibleIntervals() { + List<FilerProto.FileChunk> chunks = new ArrayList<>(); + chunks.add(FilerProto.FileChunk.newBuilder() + .setFileId("aaa") + .setOffset(0) + .setSize(100) + .setMtime(1000) + .build()); + chunks.add(FilerProto.FileChunk.newBuilder() + .setFileId("bbb") + .setOffset(100) + .setSize(133) + .setMtime(2000) + .build()); + + List<SeaweedRead.VisibleInterval> visibleIntervals = SeaweedRead.nonOverlappingVisibleIntervals(chunks); + for (SeaweedRead.VisibleInterval visibleInterval : visibleIntervals) { + System.out.println("visible:" + visibleInterval); + } + + assertEquals(visibleIntervals.size(), 2); + + SeaweedRead.VisibleInterval visibleInterval = visibleIntervals.get(0); + assertEquals(visibleInterval.start, 0); + assertEquals(visibleInterval.stop, 100); + assertEquals(visibleInterval.modifiedTime, 1000); + assertEquals(visibleInterval.fileId, "aaa"); + + visibleInterval = visibleIntervals.get(1); + assertEquals(visibleInterval.start, 100); + assertEquals(visibleInterval.stop, 233); + assertEquals(visibleInterval.modifiedTime, 2000); + assertEquals(visibleInterval.fileId, "bbb"); + + List<SeaweedRead.ChunkView> chunkViews = SeaweedRead.viewFromVisibles(visibleIntervals, 0, 233); + + SeaweedRead.ChunkView chunkView = chunkViews.get(0); + assertEquals(chunkView.offset, 0); + assertEquals(chunkView.size, 100); + assertEquals(chunkView.logicOffset, 0); + assertEquals(chunkView.fileId, "aaa"); + + chunkView = chunkViews.get(1); + assertEquals(chunkView.offset, 0); + assertEquals(chunkView.size, 133); + assertEquals(chunkView.logicOffset, 100); + assertEquals(chunkView.fileId, "bbb"); + + + } + +} |
