1616package org .msgpack .core
1717
1818import java .io ._
19- import java .nio .ByteBuffer
20- import java .nio .charset .StandardCharsets
2119
22- import org .msgpack .core .MessageUnpackerTest .SplitMessageBufferInput
2320import org .msgpack .core .buffer ._
2421import org .msgpack .value .ValueType
25- import xerial .core .io .IOUtil
22+ import xerial .core .io .IOUtil . _
2623
2724import 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