1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.hadoop.hbase.replication.regionserver;
19
20 import static org.junit.Assert.assertEquals;
21 import org.apache.hadoop.conf.Configuration;
22 import org.apache.hadoop.fs.Path;
23 import org.apache.hadoop.hbase.HBaseConfiguration;
24 import org.apache.hadoop.hbase.testclassification.ReplicationTests;
25 import org.apache.hadoop.hbase.testclassification.SmallTests;
26 import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;
27 import org.apache.hadoop.hbase.util.ManualEnvironmentEdge;
28 import org.junit.Test;
29 import org.junit.experimental.categories.Category;
30
31 @Category({SmallTests.class,ReplicationTests.class})
32 public class TestReplicationSourceLogQueue {
33
34
35
36
37 @Test
38 public void testEnqueueDequeue() {
39 try {
40 String walGroupId1 = "fake-walgroup-id-1";
41 String walGroupId2 = "fake-walgroup-id-2";
42
43 ManualEnvironmentEdge manualEdge = new ManualEnvironmentEdge();
44 EnvironmentEdgeManager.injectEdge(manualEdge);
45
46 MetricsSource metrics = new MetricsSource("1");
47 Configuration conf = HBaseConfiguration.create();
48 ReplicationSourceLogQueue logQueue = new ReplicationSourceLogQueue(conf, metrics);
49 final Path log1 = new Path("log-walgroup-a.8");
50 manualEdge.setValue(10);
51
52 logQueue.enqueueLog(log1, walGroupId1);
53 assertEquals(2, logQueue.getOldestWalAge());
54
55 final Path log2 = new Path("log-walgroup-b.4");
56
57 logQueue.enqueueLog(log2, walGroupId2);
58 assertEquals(6, logQueue.getOldestWalAge());
59
60
61
62 logQueue.remove(walGroupId2);
63 assertEquals(2, logQueue.getOldestWalAge());
64
65
66 logQueue.remove(walGroupId1);
67
68 assertEquals(0, logQueue.getOldestWalAge());
69 } finally {
70 EnvironmentEdgeManager.reset();
71 }
72 }
73 }