Skip to content

Commit 73b37b2

Browse files
authored
Merge pull request #5158 from wubin01/backup_nuit_test
feat(backup): add unit tests for backup module
2 parents 3f1b2a5 + bc2c141 commit 73b37b2

3 files changed

Lines changed: 145 additions & 0 deletions

File tree

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
package org.tron.common.backup;
2+
3+
import java.lang.reflect.Field;
4+
import java.net.InetSocketAddress;
5+
import java.util.ArrayList;
6+
import java.util.List;
7+
import java.util.concurrent.ScheduledExecutorService;
8+
import org.junit.Assert;
9+
import org.junit.Test;
10+
import org.tron.common.backup.message.KeepAliveMessage;
11+
import org.tron.common.backup.socket.UdpEvent;
12+
import org.tron.common.parameter.CommonParameter;
13+
import org.tron.core.Constant;
14+
import org.tron.core.config.args.Args;
15+
16+
public class BackupManagerTest {
17+
18+
@Test
19+
public void test() throws Exception {
20+
String[] a = new String[0];
21+
Args.setParam(a, Constant.TESTNET_CONF);
22+
CommonParameter parameter = CommonParameter.getInstance();
23+
parameter.setBackupPriority(8);
24+
List<String> members = new ArrayList<>();
25+
members.add("127.0.0.2");
26+
parameter.setBackupMembers(members);
27+
28+
BackupManager manager = new BackupManager();
29+
30+
Field field = manager.getClass().getDeclaredField("localIp");
31+
field.setAccessible(true);
32+
field.set(manager, "127.0.0.1");
33+
34+
Assert.assertEquals(manager.getStatus(), BackupManager.BackupStatusEnum.MASTER);
35+
36+
field = manager.getClass().getDeclaredField("executorService");
37+
field.setAccessible(true);
38+
ScheduledExecutorService executorService = (ScheduledExecutorService) field.get(manager);
39+
manager.init();
40+
executorService.shutdown();
41+
Assert.assertEquals(manager.getStatus(), BackupManager.BackupStatusEnum.INIT);
42+
43+
/* ip not in the members */
44+
manager.setStatus(BackupManager.BackupStatusEnum.INIT);
45+
KeepAliveMessage message = new KeepAliveMessage(false, 6);
46+
InetSocketAddress address = new InetSocketAddress("127.0.0.3", 1000);
47+
UdpEvent event = new UdpEvent(message, address);
48+
manager.handleEvent(event);
49+
Assert.assertEquals(manager.getStatus(), BackupManager.BackupStatusEnum.INIT);
50+
51+
/* ip not the member */
52+
address = new InetSocketAddress("127.0.0.3", 1000);
53+
message = new KeepAliveMessage(false, 6);
54+
event = new UdpEvent(message, address);
55+
manager.handleEvent(event);
56+
Assert.assertEquals(manager.getStatus(), BackupManager.BackupStatusEnum.INIT);
57+
58+
/* keepAliveMessage.getFlag() || peerPriority > priority */
59+
address = new InetSocketAddress("127.0.0.2", 1000);
60+
message = new KeepAliveMessage(false, 6);
61+
event = new UdpEvent(message, address);
62+
manager.handleEvent(event);
63+
Assert.assertEquals(manager.getStatus(), BackupManager.BackupStatusEnum.INIT);
64+
65+
/* keepAliveMessage.getFlag() || peerPriority > priority */
66+
message = new KeepAliveMessage(false, 10);
67+
event = new UdpEvent(message, address);
68+
manager.handleEvent(event);
69+
Assert.assertEquals(manager.getStatus(), BackupManager.BackupStatusEnum.SLAVER);
70+
71+
/* keepAliveMessage.getFlag() || peerPriority > priority */
72+
manager.setStatus(BackupManager.BackupStatusEnum.INIT);
73+
message = new KeepAliveMessage(true, 6);
74+
event = new UdpEvent(message, address);
75+
manager.handleEvent(event);
76+
Assert.assertEquals(manager.getStatus(), BackupManager.BackupStatusEnum.SLAVER);
77+
78+
manager.setStatus(BackupManager.BackupStatusEnum.MASTER);
79+
message = new KeepAliveMessage(false, 10);
80+
event = new UdpEvent(message, address);
81+
manager.handleEvent(event);
82+
Assert.assertEquals(manager.getStatus(), BackupManager.BackupStatusEnum.MASTER);
83+
84+
message = new KeepAliveMessage(true, 10);
85+
event = new UdpEvent(message, address);
86+
manager.handleEvent(event);
87+
Assert.assertEquals(manager.getStatus(), BackupManager.BackupStatusEnum.SLAVER);
88+
89+
}
90+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package org.tron.common.backup;
2+
3+
import static org.tron.common.backup.message.UdpMessageTypeEnum.BACKUP_KEEP_ALIVE;
4+
5+
import org.junit.Test;
6+
import org.testng.Assert;
7+
import org.tron.common.backup.message.KeepAliveMessage;
8+
import org.tron.protos.Discover;
9+
10+
public class KeepAliveMessageTest {
11+
12+
@Test
13+
public void test() throws Exception {
14+
KeepAliveMessage m1 = new KeepAliveMessage(true, 10);
15+
Assert.assertTrue(m1.getFlag());
16+
Assert.assertEquals(m1.getPriority(), 10);
17+
Assert.assertEquals(m1.getType(), BACKUP_KEEP_ALIVE);
18+
Assert.assertEquals(m1.getFrom(), null);
19+
Assert.assertEquals(m1.getTimestamp(), 0);
20+
Assert.assertEquals(m1.getData().length + 1, m1.getSendData().length);
21+
22+
23+
Discover.BackupMessage backupMessage = Discover.BackupMessage.newBuilder()
24+
.setFlag(true).setPriority(10).build();
25+
KeepAliveMessage m2 = new KeepAliveMessage(backupMessage.toByteArray());
26+
Assert.assertTrue(m2.getFlag());
27+
Assert.assertEquals(m2.getPriority(), 10);
28+
Assert.assertEquals(m2.getType(), BACKUP_KEEP_ALIVE);
29+
30+
Assert.assertEquals(m2.getMessageId().getBytes(), m1.getMessageId().getBytes());
31+
}
32+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package org.tron.common.backup;
2+
3+
import static org.tron.common.backup.message.UdpMessageTypeEnum.BACKUP_KEEP_ALIVE;
4+
import static org.tron.common.backup.message.UdpMessageTypeEnum.UNKNOWN;
5+
6+
import org.junit.Test;
7+
import org.testng.Assert;
8+
import org.tron.common.backup.message.UdpMessageTypeEnum;
9+
10+
public class UdpMessageTypeEnumTest {
11+
12+
@Test
13+
public void test() {
14+
UdpMessageTypeEnum type = UdpMessageTypeEnum.fromByte((byte) 5);
15+
Assert.assertEquals(type.getType(), (byte) 0x05);
16+
Assert.assertEquals(type, BACKUP_KEEP_ALIVE);
17+
18+
19+
type = UdpMessageTypeEnum.fromByte((byte) 1);
20+
Assert.assertEquals(type.getType(), (byte) 0xFF);
21+
Assert.assertEquals(type, UNKNOWN);
22+
}
23+
}

0 commit comments

Comments
 (0)