• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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