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