1#!/usr/bin/ruby 2 3require 'google/protobuf' 4require 'stress_pb' 5require 'test/unit' 6 7module StressTest 8 TestMessage = StressTestProtos::TestMessage 9 M = StressTestProtos::M 10 11 class StressTest < Test::Unit::TestCase 12 def get_msg 13 TestMessage.new(:a => 1000, 14 :b => [M.new(:foo => "hello"), 15 M.new(:foo => "world")]) 16 end 17 def test_stress 18 m = get_msg 19 data = TestMessage.encode(m) 20 100_000.times do 21 mnew = TestMessage.decode(data) 22 mnew2 = mnew.dup 23 assert_equal m.inspect, mnew.inspect 24 assert_equal data, TestMessage.encode(mnew) 25 assert_equal m.inspect, mnew2.inspect 26 assert_equal data, TestMessage.encode(mnew2) 27 end 28 end 29 end 30end 31