update code
This commit is contained in:
38
protobuf/ruby/tests/stress.rb
Normal file
38
protobuf/ruby/tests/stress.rb
Normal file
@@ -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
|
||||
Reference in New Issue
Block a user