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