| OLD | NEW |
| (Empty) |
| 1 #!/usr/bin/ruby | |
| 2 | |
| 3 require 'google/protobuf' | |
| 4 require 'test/unit' | |
| 5 | |
| 6 module StressTest | |
| 7 pool = Google::Protobuf::DescriptorPool.new | |
| 8 pool.build do | |
| 9 add_message "TestMessage" do | |
| 10 optional :a, :int32, 1 | |
| 11 repeated :b, :message, 2, "M" | |
| 12 end | |
| 13 add_message "M" do | |
| 14 optional :foo, :string, 1 | |
| 15 end | |
| 16 end | |
| 17 | |
| 18 TestMessage = pool.lookup("TestMessage").msgclass | |
| 19 M = pool.lookup("M").msgclass | |
| 20 | |
| 21 class StressTest < Test::Unit::TestCase | |
| 22 def get_msg | |
| 23 TestMessage.new(:a => 1000, | |
| 24 :b => [M.new(:foo => "hello"), | |
| 25 M.new(:foo => "world")]) | |
| 26 end | |
| 27 def test_stress | |
| 28 m = get_msg | |
| 29 data = TestMessage.encode(m) | |
| 30 100_000.times do | |
| 31 mnew = TestMessage.decode(data) | |
| 32 mnew = mnew.dup | |
| 33 assert_equal mnew.inspect, m.inspect | |
| 34 assert TestMessage.encode(mnew) == data | |
| 35 end | |
| 36 end | |
| 37 end | |
| 38 end | |
| OLD | NEW |