aboutsummaryrefslogtreecommitdiff
path: root/other/java/hdfs/src/test
diff options
context:
space:
mode:
authorChris Lu <chris.lu@gmail.com>2018-12-03 22:12:20 -0800
committerChris Lu <chris.lu@gmail.com>2018-12-03 22:12:20 -0800
commitc85ee7c0fdb61fe401a8cab2512c65b4e48a8126 (patch)
tree8cc64a9d7fb799e325567ce57c76d6f77e8702f6 /other/java/hdfs/src/test
parent4119c61df84305886e6116705f1ad08d3da69328 (diff)
downloadseaweedfs-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.java66
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");
+
+
+ }
+
+}