You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by to...@apache.org on 2010/06/02 02:40:49 UTC
svn commit: r950321 [3/3] - in /hbase/trunk: ./
src/docs/src/documentation/content/xdocs/
src/main/java/org/apache/hadoop/hbase/
src/main/java/org/apache/hadoop/hbase/io/
src/main/java/org/apache/hadoop/hbase/io/hfile/
src/main/java/org/apache/hadoop/h...
Modified: hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/TestStore.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/TestStore.java?rev=950321&r1=950320&r2=950321&view=diff
==============================================================================
--- hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/TestStore.java (original)
+++ hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/TestStore.java Wed Jun 2 00:40:48 2010
@@ -130,7 +130,7 @@ public class TestStore extends TestCase
flush(1);
// Now put in place an empty store file. Its a little tricky. Have to
// do manually with hacked in sequence id.
- StoreFile f = this.store.getStorefiles().firstEntry().getValue();
+ StoreFile f = this.store.getStorefiles().get(0);
Path storedir = f.getPath().getParent();
long seqid = f.getMaxSequenceId();
HBaseConfiguration c = new HBaseConfiguration();
Modified: hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/TestStoreFile.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/TestStoreFile.java?rev=950321&r1=950320&r2=950321&view=diff
==============================================================================
--- hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/TestStoreFile.java (original)
+++ hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/TestStoreFile.java Wed Jun 2 00:40:48 2010
@@ -21,6 +21,10 @@ package org.apache.hadoop.hbase.regionse
import java.io.IOException;
import java.nio.ByteBuffer;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Comparator;
import java.util.TreeSet;
import org.apache.commons.logging.Log;
@@ -36,6 +40,12 @@ import org.apache.hadoop.hbase.io.hfile.
import org.apache.hadoop.hbase.io.hfile.HFileScanner;
import org.apache.hadoop.hbase.util.Bytes;
import org.apache.hadoop.hdfs.MiniDFSCluster;
+import org.mockito.Mockito;
+
+import com.google.common.base.Joiner;
+import com.google.common.collect.Collections2;
+import com.google.common.collect.Iterables;
+import com.google.common.collect.Lists;
/**
* Test HStoreFile
@@ -441,4 +451,52 @@ public class TestStoreFile extends HBase
}
+ public void testFlushTimeComparator() {
+ assertOrdering(StoreFile.Comparators.FLUSH_TIME,
+ mockStoreFile(true, 1000, -1, "/foo/123"),
+ mockStoreFile(true, 1000, -1, "/foo/126"),
+ mockStoreFile(true, 2000, -1, "/foo/126"),
+ mockStoreFile(false, -1, 1, "/foo/1"),
+ mockStoreFile(false, -1, 3, "/foo/2"),
+ mockStoreFile(false, -1, 5, "/foo/2"),
+ mockStoreFile(false, -1, 5, "/foo/3"));
+ }
+
+ /**
+ * Assert that the given comparator orders the given storefiles in the
+ * same way that they're passed.
+ */
+ private void assertOrdering(Comparator<StoreFile> comparator, StoreFile ... sfs) {
+ ArrayList<StoreFile> sorted = Lists.newArrayList(sfs);
+ Collections.shuffle(sorted);
+ Collections.sort(sorted, comparator);
+ LOG.debug("sfs: " + Joiner.on(",").join(sfs));
+ LOG.debug("sorted: " + Joiner.on(",").join(sorted));
+ assertTrue(Iterables.elementsEqual(Arrays.asList(sfs), sorted));
+ }
+
+ /**
+ * Create a mock StoreFile with the given attributes.
+ */
+ private StoreFile mockStoreFile(boolean bulkLoad, long bulkTimestamp,
+ long seqId, String path) {
+ StoreFile mock = Mockito.mock(StoreFile.class);
+ Mockito.doReturn(bulkLoad).when(mock).isBulkLoadResult();
+ Mockito.doReturn(bulkTimestamp).when(mock).getBulkLoadTimestamp();
+ if (bulkLoad) {
+ // Bulk load files will throw if you ask for their sequence ID
+ Mockito.doThrow(new IllegalAccessError("bulk load"))
+ .when(mock).getMaxSequenceId();
+ } else {
+ Mockito.doReturn(seqId).when(mock).getMaxSequenceId();
+ }
+ Mockito.doReturn(new Path(path)).when(mock).getPath();
+ String name = "mock storefile, bulkLoad=" + bulkLoad +
+ " bulkTimestamp=" + bulkTimestamp +
+ " seqId=" + seqId +
+ " path=" + path;
+ Mockito.doReturn(name).when(mock).toString();
+ return mock;
+ }
+
}
Modified: hbase/trunk/src/test/java/org/apache/hadoop/hbase/util/TestBytes.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/test/java/org/apache/hadoop/hbase/util/TestBytes.java?rev=950321&r1=950320&r2=950321&view=diff
==============================================================================
--- hbase/trunk/src/test/java/org/apache/hadoop/hbase/util/TestBytes.java (original)
+++ hbase/trunk/src/test/java/org/apache/hadoop/hbase/util/TestBytes.java Wed Jun 2 00:40:48 2010
@@ -150,6 +150,14 @@ public class TestBytes extends TestCase
assertEquals(5, Bytes.binarySearch(arr, key3, 1, 1,
Bytes.BYTES_RAWCOMPARATOR));
}
+
+ public void testStartsWith() {
+ assertTrue(Bytes.startsWith(Bytes.toBytes("hello"), Bytes.toBytes("h")));
+ assertTrue(Bytes.startsWith(Bytes.toBytes("hello"), Bytes.toBytes("")));
+ assertTrue(Bytes.startsWith(Bytes.toBytes("hello"), Bytes.toBytes("hello")));
+ assertFalse(Bytes.startsWith(Bytes.toBytes("hello"), Bytes.toBytes("helloworld")));
+ assertFalse(Bytes.startsWith(Bytes.toBytes(""), Bytes.toBytes("hello")));
+ }
public void testIncrementBytes() throws IOException {