mirror of
https://github.com/tiennm99/zfoo.git
synced 2026-10-20 00:15:55 +00:00
test[protocol]: compatible test
This commit is contained in:
1 parent
792cdfb9c7
commit
ac7a4c4d9d
1 file changed
+31
-6
+31
-6
@@ -10,14 +10,12 @@
|
|||||||
* See the License for the specific language governing permissions and limitations under the License.
|
* See the License for the specific language governing permissions and limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.zfoo.protocol.compatiblity;
|
package com.zfoo.protocol.compatible;
|
||||||
|
|
||||||
import com.zfoo.protocol.ProtocolManager;
|
import com.zfoo.protocol.ProtocolManager;
|
||||||
import com.zfoo.protocol.generate.GenerateOperation;
|
import com.zfoo.protocol.generate.GenerateOperation;
|
||||||
import com.zfoo.protocol.packet.*;
|
import com.zfoo.protocol.packet.*;
|
||||||
import com.zfoo.protocol.util.ClassUtils;
|
import com.zfoo.protocol.util.*;
|
||||||
import com.zfoo.protocol.util.IOUtils;
|
|
||||||
import com.zfoo.protocol.util.StringUtils;
|
|
||||||
import io.netty.buffer.ByteBufAllocator;
|
import io.netty.buffer.ByteBufAllocator;
|
||||||
import io.netty.buffer.UnpooledHeapByteBuf;
|
import io.netty.buffer.UnpooledHeapByteBuf;
|
||||||
import org.junit.Ignore;
|
import org.junit.Ignore;
|
||||||
@@ -33,7 +31,7 @@ import static com.zfoo.protocol.BenchmarkTesting.normalObject;
|
|||||||
* @author godotg
|
* @author godotg
|
||||||
*/
|
*/
|
||||||
@Ignore
|
@Ignore
|
||||||
public class CompatibilityTesting {
|
public class CompatibleTesting {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* EN: The order of the bytecode-enhanced Map traversal order will be different, so the order of the serialized content will change.
|
* EN: The order of the bytecode-enhanced Map traversal order will be different, so the order of the serialized content will change.
|
||||||
@@ -42,7 +40,7 @@ public class CompatibilityTesting {
|
|||||||
* CN: 字节码增强的Map遍历顺序会出现不一样,所以序列化的内容顺序会改变,可以看到不相同的字节并不是连续的
|
* CN: 字节码增强的Map遍历顺序会出现不一样,所以序列化的内容顺序会改变,可以看到不相同的字节并不是连续的
|
||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public void compatiblityTest() throws IOException {
|
public void compatibleTest() throws IOException {
|
||||||
ProtocolManager.initProtocolAuto(Set.of(ComplexObject.class, NormalObject.class, SimpleObject.class, EmptyObject.class, VeryBigObject.class), GenerateOperation.NO_OPERATION);
|
ProtocolManager.initProtocolAuto(Set.of(ComplexObject.class, NormalObject.class, SimpleObject.class, EmptyObject.class, VeryBigObject.class), GenerateOperation.NO_OPERATION);
|
||||||
|
|
||||||
var bytes = IOUtils.toByteArray(ClassUtils.getFileFromClassPath("ComplexObject.bytes"));
|
var bytes = IOUtils.toByteArray(ClassUtils.getFileFromClassPath("ComplexObject.bytes"));
|
||||||
@@ -89,4 +87,31 @@ public class CompatibilityTesting {
|
|||||||
|
|
||||||
buffer.clear();
|
buffer.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void normalTest() {
|
||||||
|
var buffer = new UnpooledHeapByteBuf(ByteBufAllocator.DEFAULT, 100, 1_0000);
|
||||||
|
ProtocolManager.write(buffer, normalObject);
|
||||||
|
var packet = ProtocolManager.read(buffer);
|
||||||
|
|
||||||
|
|
||||||
|
var newBuffer = new UnpooledHeapByteBuf(ByteBufAllocator.DEFAULT, 100, 1_0000);
|
||||||
|
ProtocolManager.write(newBuffer, packet);
|
||||||
|
|
||||||
|
buffer.resetReaderIndex();
|
||||||
|
newBuffer.resetReaderIndex();
|
||||||
|
|
||||||
|
var equal = 0;
|
||||||
|
var notEqual = 0;
|
||||||
|
for (int i = 0; i < buffer.writerIndex(); i++) {
|
||||||
|
var a = buffer.readByte();
|
||||||
|
var b = newBuffer.readByte();
|
||||||
|
if (a == b) {
|
||||||
|
equal++;
|
||||||
|
} else {
|
||||||
|
notEqual++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
System.out.println(StringUtils.format("equal [{}], not equal [{}]", equal, notEqual));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in new issue
Block a user