| #!/usr/bin/ruby | |
| require 'google/protobuf' | |
| require 'stress_pb' | |
| require 'test/unit' | |
| module StressTest | |
| TestMessage = StressTestProtos::TestMessage | |
| M = StressTestProtos::M | |
| class StressTest < Test::Unit::TestCase | |
| def get_msg | |
| TestMessage.new(:a => 1000, | |
| :b => [M.new(:foo => "hello"), | |
| M.new(:foo => "world")]) | |
| end | |
| def test_stress | |
| m = get_msg | |
| data = TestMessage.encode(m) | |
| 100_000.times do | |
| mnew = TestMessage.decode(data) | |
| mnew2 = mnew.dup | |
| assert_equal m.inspect, mnew.inspect | |
| assert_equal data, TestMessage.encode(mnew) | |
| assert_equal m.inspect, mnew2.inspect | |
| assert_equal data, TestMessage.encode(mnew2) | |
| end | |
| end | |
| end | |
| end |