Skip to content

Commit 919c71e

Browse files
committed
Enhanced boundary test
1 parent 17e10b9 commit 919c71e

File tree

1 file changed

+22
-11
lines changed

1 file changed

+22
-11
lines changed

msgpack-core/src/test/scala/org/msgpack/core/MessageUnpackerTest.scala

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,10 @@
1616
package org.msgpack.core
1717

1818
import java.io._
19-
import java.nio.ByteBuffer
20-
import java.nio.charset.StandardCharsets
2119

22-
import org.msgpack.core.MessageUnpackerTest.SplitMessageBufferInput
2320
import org.msgpack.core.buffer._
2421
import org.msgpack.value.ValueType
25-
import xerial.core.io.IOUtil
22+
import xerial.core.io.IOUtil._
2623

2724
import scala.util.Random
2825

@@ -591,7 +588,7 @@ class MessageUnpackerTest extends MessagePackSpec {
591588
val N = 1000
592589
val t = time("unpacker", repeat = 10) {
593590
block("no-buffer-reset") {
594-
IOUtil.withResource(MessagePack.newDefaultUnpacker(arr)) { unpacker =>
591+
withResource(MessagePack.newDefaultUnpacker(arr)) { unpacker =>
595592
for (i <- 0 until N) {
596593
val buf = new ArrayBufferInput(arr)
597594
unpacker.reset(buf)
@@ -602,7 +599,7 @@ class MessageUnpackerTest extends MessagePackSpec {
602599
}
603600

604601
block("reuse-array-input") {
605-
IOUtil.withResource(MessagePack.newDefaultUnpacker(arr)) { unpacker =>
602+
withResource(MessagePack.newDefaultUnpacker(arr)) { unpacker =>
606603
val buf = new ArrayBufferInput(arr)
607604
for (i <- 0 until N) {
608605
buf.reset(arr)
@@ -614,7 +611,7 @@ class MessageUnpackerTest extends MessagePackSpec {
614611
}
615612

616613
block("reuse-message-buffer") {
617-
IOUtil.withResource(MessagePack.newDefaultUnpacker(arr)) { unpacker =>
614+
withResource(MessagePack.newDefaultUnpacker(arr)) { unpacker =>
618615
val buf = new ArrayBufferInput(arr)
619616
for (i <- 0 until N) {
620617
buf.reset(mb)
@@ -708,17 +705,31 @@ class MessageUnpackerTest extends MessagePackSpec {
708705
}
709706
}
710707

708+
def readTest(input:MessageBufferInput): Unit = {
709+
withResource(MessagePack.newDefaultUnpacker(input)) { unpacker =>
710+
while (unpacker.hasNext) {
711+
unpacker.unpackValue()
712+
}
713+
}
714+
}
715+
711716
"read value length at buffer boundary" taggedAs("number-boundary") in {
712717
val input = new SplitMessageBufferInput(Array(
713718
Array[Byte](MessagePack.Code.STR16),
714719
Array[Byte](0x00),
715720
Array[Byte](0x05), // STR16 length at the boundary
716721
"hello".getBytes(MessagePack.UTF8))
717722
)
718-
val unpacker = MessagePack.newDefaultUnpacker(input)
719-
while(unpacker.hasNext) {
720-
unpacker.unpackValue()
721-
}
723+
readTest(input)
724+
725+
val input2 = new SplitMessageBufferInput(Array(
726+
Array[Byte](MessagePack.Code.STR32),
727+
Array[Byte](0x00),
728+
Array[Byte](0x00, 0x00),
729+
Array[Byte](0x05), // STR32 length at the boundary
730+
"hello".getBytes(MessagePack.UTF8))
731+
)
732+
readTest(input2)
722733
}
723734
}
724735
}

0 commit comments

Comments
 (0)