| Index: third_party/protobuf/ruby/tests/stress.rb
|
| diff --git a/third_party/protobuf/ruby/tests/stress.rb b/third_party/protobuf/ruby/tests/stress.rb
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..082d5e22df089ab903f326643b08bf5f80e595d7
|
| --- /dev/null
|
| +++ b/third_party/protobuf/ruby/tests/stress.rb
|
| @@ -0,0 +1,38 @@
|
| +#!/usr/bin/ruby
|
| +
|
| +require 'google/protobuf'
|
| +require 'test/unit'
|
| +
|
| +module StressTest
|
| + pool = Google::Protobuf::DescriptorPool.new
|
| + pool.build do
|
| + add_message "TestMessage" do
|
| + optional :a, :int32, 1
|
| + repeated :b, :message, 2, "M"
|
| + end
|
| + add_message "M" do
|
| + optional :foo, :string, 1
|
| + end
|
| + end
|
| +
|
| + TestMessage = pool.lookup("TestMessage").msgclass
|
| + M = pool.lookup("M").msgclass
|
| +
|
| + 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)
|
| + mnew = mnew.dup
|
| + assert_equal mnew.inspect, m.inspect
|
| + assert TestMessage.encode(mnew) == data
|
| + end
|
| + end
|
| + end
|
| +end
|
|
|