Yuta HIGUCHI

KryoSerializerTest to test KryoSerializer instead of KryoPool

Change-Id: If92e12be730ed2553686f4a3927ddd49f226cf20
...@@ -20,6 +20,7 @@ import org.onlab.onos.net.DefaultLink; ...@@ -20,6 +20,7 @@ import org.onlab.onos.net.DefaultLink;
20 import org.onlab.onos.net.DefaultPort; 20 import org.onlab.onos.net.DefaultPort;
21 import org.onlab.onos.net.Device; 21 import org.onlab.onos.net.Device;
22 import org.onlab.onos.net.DeviceId; 22 import org.onlab.onos.net.DeviceId;
23 +import org.onlab.onos.net.HostLocation;
23 import org.onlab.onos.net.Link; 24 import org.onlab.onos.net.Link;
24 import org.onlab.onos.net.LinkKey; 25 import org.onlab.onos.net.LinkKey;
25 import org.onlab.onos.net.PortNumber; 26 import org.onlab.onos.net.PortNumber;
...@@ -28,8 +29,10 @@ import org.onlab.onos.net.provider.ProviderId; ...@@ -28,8 +29,10 @@ import org.onlab.onos.net.provider.ProviderId;
28 import org.onlab.packet.ChassisId; 29 import org.onlab.packet.ChassisId;
29 import org.onlab.packet.IpAddress; 30 import org.onlab.packet.IpAddress;
30 import org.onlab.packet.IpPrefix; 31 import org.onlab.packet.IpPrefix;
32 +import org.onlab.packet.MacAddress;
31 import org.onlab.util.KryoPool; 33 import org.onlab.util.KryoPool;
32 34
35 +import com.google.common.collect.ImmutableList;
33 import com.google.common.collect.ImmutableMap; 36 import com.google.common.collect.ImmutableMap;
34 import com.google.common.collect.ImmutableSet; 37 import com.google.common.collect.ImmutableSet;
35 import com.google.common.testing.EqualsTester; 38 import com.google.common.testing.EqualsTester;
...@@ -61,78 +64,147 @@ public class KryoSerializerTest { ...@@ -61,78 +64,147 @@ public class KryoSerializerTest {
61 .set("B3", "b3") 64 .set("B3", "b3")
62 .build(); 65 .build();
63 66
64 - private static KryoPool kryos; 67 + private KryoSerializer serializer;
65 68
66 @BeforeClass 69 @BeforeClass
67 public static void setUpBeforeClass() throws Exception { 70 public static void setUpBeforeClass() throws Exception {
68 - kryos = KryoPool.newBuilder()
69 - .register(KryoPoolUtil.API)
70 - .register(ImmutableMap.class, new ImmutableMapSerializer())
71 - .register(ImmutableSet.class, new ImmutableSetSerializer())
72 - .build();
73 } 71 }
74 72
75 @Before 73 @Before
76 public void setUp() throws Exception { 74 public void setUp() throws Exception {
75 + serializer = new KryoSerializer() {
76 +
77 + @Override
78 + protected void setupKryoPool() {
79 + serializerPool = KryoPool.newBuilder()
80 + .register(KryoPoolUtil.API)
81 + .build()
82 + .populate(1);
83 + }
84 + };
77 } 85 }
78 86
79 @After 87 @After
80 public void tearDown() throws Exception { 88 public void tearDown() throws Exception {
81 - // removing Kryo instance to use fresh Kryo on each tests
82 - kryos.getKryo();
83 } 89 }
84 90
85 - private static <T> void testSerialized(T original) { 91 + private <T> void testSerialized(T original) {
86 ByteBuffer buffer = ByteBuffer.allocate(1 * 1024 * 1024); 92 ByteBuffer buffer = ByteBuffer.allocate(1 * 1024 * 1024);
87 - kryos.serialize(original, buffer); 93 + serializer.encode(original, buffer);
88 buffer.flip(); 94 buffer.flip();
89 - T copy = kryos.deserialize(buffer); 95 + T copy = serializer.decode(buffer);
96 +
97 + T copy2 = serializer.decode(serializer.encode(original));
90 98
91 new EqualsTester() 99 new EqualsTester()
92 - .addEqualityGroup(original, copy) 100 + .addEqualityGroup(original, copy, copy2)
93 .testEquals(); 101 .testEquals();
94 } 102 }
95 103
96 104
97 @Test 105 @Test
98 - public final void testSerialization() { 106 + public void testConnectPoint() {
99 testSerialized(new ConnectPoint(DID1, P1)); 107 testSerialized(new ConnectPoint(DID1, P1));
108 + }
109 +
110 + @Test
111 + public void testDefaultLink() {
100 testSerialized(new DefaultLink(PID, CP1, CP2, Link.Type.DIRECT)); 112 testSerialized(new DefaultLink(PID, CP1, CP2, Link.Type.DIRECT));
101 - testSerialized(new DefaultPort(DEV1, P1, true));
102 testSerialized(new DefaultLink(PID, CP1, CP2, Link.Type.DIRECT, A1)); 113 testSerialized(new DefaultLink(PID, CP1, CP2, Link.Type.DIRECT, A1));
114 + }
115 +
116 + @Test
117 + public void testDefaultPort() {
118 + testSerialized(new DefaultPort(DEV1, P1, true));
103 testSerialized(new DefaultPort(DEV1, P1, true, A1_2)); 119 testSerialized(new DefaultPort(DEV1, P1, true, A1_2));
120 + }
121 +
122 + @Test
123 + public void testDeviceId() {
104 testSerialized(DID1); 124 testSerialized(DID1);
125 + }
126 +
127 + @Test
128 + public void testImmutableMap() {
105 testSerialized(ImmutableMap.of(DID1, DEV1, DID2, DEV1)); 129 testSerialized(ImmutableMap.of(DID1, DEV1, DID2, DEV1));
106 testSerialized(ImmutableMap.of(DID1, DEV1)); 130 testSerialized(ImmutableMap.of(DID1, DEV1));
107 testSerialized(ImmutableMap.of()); 131 testSerialized(ImmutableMap.of());
132 + }
133 +
134 + @Test
135 + public void testImmutableSet() {
108 testSerialized(ImmutableSet.of(DID1, DID2)); 136 testSerialized(ImmutableSet.of(DID1, DID2));
109 testSerialized(ImmutableSet.of(DID1)); 137 testSerialized(ImmutableSet.of(DID1));
110 testSerialized(ImmutableSet.of()); 138 testSerialized(ImmutableSet.of());
139 + }
140 +
141 + @Test
142 + public void testImmutableList() {
143 + testSerialized(ImmutableList.of(DID1, DID2));
144 + testSerialized(ImmutableList.of(DID1));
145 + testSerialized(ImmutableList.of());
146 + }
147 +
148 + @Test
149 + public void testIpPrefix() {
111 testSerialized(IpPrefix.valueOf("192.168.0.1/24")); 150 testSerialized(IpPrefix.valueOf("192.168.0.1/24"));
151 + }
152 +
153 + @Test
154 + public void testIpAddress() {
112 testSerialized(IpAddress.valueOf("192.168.0.1")); 155 testSerialized(IpAddress.valueOf("192.168.0.1"));
156 + }
157 +
158 + @Test
159 + public void testMacAddress() {
160 + testSerialized(MacAddress.valueOf("12:34:56:78:90:ab"));
161 + }
162 +
163 + @Test
164 + public void testLinkKey() {
113 testSerialized(LinkKey.linkKey(CP1, CP2)); 165 testSerialized(LinkKey.linkKey(CP1, CP2));
166 + }
167 +
168 + @Test
169 + public void testNodeId() {
114 testSerialized(new NodeId("SomeNodeIdentifier")); 170 testSerialized(new NodeId("SomeNodeIdentifier"));
171 + }
172 +
173 + @Test
174 + public void testPortNumber() {
115 testSerialized(P1); 175 testSerialized(P1);
176 + }
177 +
178 + @Test
179 + public void testProviderId() {
116 testSerialized(PID); 180 testSerialized(PID);
117 testSerialized(PIDA); 181 testSerialized(PIDA);
118 - testSerialized(new NodeId("bar")); 182 + }
183 +
184 + @Test
185 + public void testMastershipTerm() {
119 testSerialized(MastershipTerm.of(new NodeId("foo"), 2)); 186 testSerialized(MastershipTerm.of(new NodeId("foo"), 2));
120 } 187 }
121 188
122 @Test 189 @Test
123 - public final void testAnnotations() { 190 + public void testHostLocation() {
191 + testSerialized(new HostLocation(CP1, 1234L));
192 + }
193 +
194 + @Test
195 + public void testAnnotations() {
124 // Annotations does not have equals defined, manually test equality 196 // Annotations does not have equals defined, manually test equality
125 - final byte[] a1Bytes = kryos.serialize(A1); 197 + final byte[] a1Bytes = serializer.encode(A1);
126 - SparseAnnotations copiedA1 = kryos.deserialize(a1Bytes); 198 + SparseAnnotations copiedA1 = serializer.decode(a1Bytes);
127 assertAnnotationsEquals(copiedA1, A1); 199 assertAnnotationsEquals(copiedA1, A1);
128 200
129 - final byte[] a12Bytes = kryos.serialize(A1_2); 201 + final byte[] a12Bytes = serializer.encode(A1_2);
130 - SparseAnnotations copiedA12 = kryos.deserialize(a12Bytes); 202 + SparseAnnotations copiedA12 = serializer.decode(a12Bytes);
131 assertAnnotationsEquals(copiedA12, A1_2); 203 assertAnnotationsEquals(copiedA12, A1_2);
132 } 204 }
133 205
134 // code clone 206 // code clone
135 - public static void assertAnnotationsEquals(Annotations actual, SparseAnnotations... annotations) { 207 + protected static void assertAnnotationsEquals(Annotations actual, SparseAnnotations... annotations) {
136 SparseAnnotations expected = DefaultAnnotations.builder().build(); 208 SparseAnnotations expected = DefaultAnnotations.builder().build();
137 for (SparseAnnotations a : annotations) { 209 for (SparseAnnotations a : annotations) {
138 expected = DefaultAnnotations.union(expected, a); 210 expected = DefaultAnnotations.union(expected, a);
......