diff options
| author | frsyuki <frsyuki@users.sourceforge.jp> | 2010-04-23 18:13:36 +0900 |
|---|---|---|
| committer | frsyuki <frsyuki@users.sourceforge.jp> | 2010-04-23 18:13:36 +0900 |
| commit | b10a7367440a33c9675be8fa435c9b202ff0c4f8 (patch) | |
| tree | 63745f5eae7c9684520839c63f422124749ac33b /ruby/msgpack_test.rb | |
| parent | 60fbaf7612a5340de16ba98277ef01ffb80d1da0 (diff) | |
| download | msgpack-python-b10a7367440a33c9675be8fa435c9b202ff0c4f8.tar.gz | |
ruby: fixese backward compatibility of streaming deserializer
Diffstat (limited to 'ruby/msgpack_test.rb')
| -rw-r--r-- | ruby/msgpack_test.rb | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/ruby/msgpack_test.rb b/ruby/msgpack_test.rb index 455aa40..45adf0b 100644 --- a/ruby/msgpack_test.rb +++ b/ruby/msgpack_test.rb @@ -218,6 +218,28 @@ class MessagePackTestFormat < Test::Unit::TestCase assert_equal(parsed, 1) end + it "streaming backward compatibility" do + obj = [{["a","b"]=>["c","d"]}, ["e","f"], "d"] + pac = MessagePack::Unpacker.new + buffer = "" + nread = 0 + parsed = 0 + obj.to_msgpack.split(//).each do |b| + buffer << b + nread = pac.execute(buffer, nread) + if pac.finished? + o = pac.data + assert_equal(obj, o) + parsed += 1 + pac.reset + buffer.slice!(0, nread) + nread = 0 + next unless buffer.empty? + end + end + assert_equal(parsed, 1) + end + private def check(len, obj) v = obj.to_msgpack |
