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 |