diff options
| author | Jari Vetoniemi <jari.vetoniemi@indooratlas.com> | 2020-03-16 18:49:26 +0900 | 
|---|---|---|
| committer | Jari Vetoniemi <jari.vetoniemi@indooratlas.com> | 2020-03-30 00:39:06 +0900 | 
| commit | fcbf63e62c627deae76c1b8cb8c0876c536ed811 (patch) | |
| tree | 64cb17de3f41a2b6fef2368028fbd00349946994 /jni/ruby/test/-ext-/marshal | |
Fresh start
Diffstat (limited to 'jni/ruby/test/-ext-/marshal')
| -rw-r--r-- | jni/ruby/test/-ext-/marshal/test_usrmarshal.rb | 32 | 
1 files changed, 32 insertions, 0 deletions
| diff --git a/jni/ruby/test/-ext-/marshal/test_usrmarshal.rb b/jni/ruby/test/-ext-/marshal/test_usrmarshal.rb new file mode 100644 index 0000000..8d8db01 --- /dev/null +++ b/jni/ruby/test/-ext-/marshal/test_usrmarshal.rb @@ -0,0 +1,32 @@ +require 'test/unit' +require '-test-/marshal/usr' + +module Bug end + +module Bug::Marshal +  class TestUsrMarshal < Test::Unit::TestCase +    def old_dump +      @old_dump ||= +        begin +          src = "module Bug; module Marshal; class UsrMarshal; def initialize(val) @value = val; end; end; ::Marshal.dump(UsrMarshal.new(42), STDOUT); end; end" +          EnvUtil.invoke_ruby([], src, true)[0] +        end +    end + +    def test_marshal +      v = ::Marshal.load(::Marshal.dump(UsrMarshal.new(42))) +      assert_instance_of(UsrMarshal, v) +      assert_equal(42, v.value) +    end + +    def test_incompat +      assert_raise_with_message(ArgumentError, "dump format error") {::Marshal.load(old_dump)} +    end + +    def test_compat +      out, err = EnvUtil.invoke_ruby(["-r-test-/marshal/usr", "-r-test-/marshal/compat", "-e", "::Marshal.dump(::Marshal.load(STDIN), STDOUT)"], old_dump, true, true) +      assert_equal(::Marshal.dump(UsrMarshal.new(42)), out) +      assert_equal("", err) +    end +  end +end | 
