| #!/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 |