1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.hadoop.hbase.regionserver;
20
21 import org.apache.hadoop.hbase.HBaseTestCase;
22 import org.apache.hadoop.hbase.HBaseTestingUtility;
23 import org.apache.hadoop.hbase.io.HFileLink;
24 import org.apache.hadoop.hbase.testclassification.SmallTests;
25 import org.junit.experimental.categories.Category;
26
27
28
29
30 @Category(SmallTests.class)
31 public class TestStoreFileInfo extends HBaseTestCase {
32 private static final HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();
33
34
35
36
37 public void testStoreFileNames() {
38 String[] legalHFileLink = { "MyTable_02=abc012-def345", "MyTable_02.300=abc012-def345",
39 "MyTable_02-400=abc012-def345", "MyTable_02-400.200=abc012-def345",
40 "MyTable_02=abc012-def345_SeqId_1_", "MyTable_02=abc012-def345_SeqId_20_" };
41 for (String name: legalHFileLink) {
42 assertTrue("should be a valid link: " + name, HFileLink.isHFileLink(name));
43 assertTrue("should be a valid StoreFile" + name, StoreFileInfo.validateStoreFileName(name));
44 assertFalse("should not be a valid reference: " + name, StoreFileInfo.isReference(name));
45
46 String refName = name + ".6789";
47 assertTrue("should be a valid link reference: " + refName,
48 StoreFileInfo.isReference(refName));
49 assertTrue("should be a valid StoreFile" + refName,
50 StoreFileInfo.validateStoreFileName(refName));
51 }
52
53 String[] illegalHFileLink = { ".MyTable_02=abc012-def345", "-MyTable_02.300=abc012-def345",
54 "MyTable_02-400=abc0_12-def345", "MyTable_02-400.200=abc012-def345...." };
55 for (String name: illegalHFileLink) {
56 assertFalse("should not be a valid link: " + name, HFileLink.isHFileLink(name));
57 }
58 }
59 }
60