mirror of
				https://github.com/msgpack/msgpack-c.git
				synced 2025-11-04 12:17:38 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			66 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
begin
 | 
						|
require 'rubygems'
 | 
						|
rescue LoadError
 | 
						|
end
 | 
						|
require 'msgpack'
 | 
						|
 | 
						|
def usage
 | 
						|
	puts <<EOF
 | 
						|
Usage: #{$0} [out-file]
 | 
						|
 | 
						|
This tool is for testing of accepting MessagePack random-term.
 | 
						|
This does following behavior:
 | 
						|
 | 
						|
  1. serializes the objects in this file, using Ruby implementation
 | 
						|
     of MessagePack (Note that Ruby implementation is considered valid)
 | 
						|
  2. Writes the serialized binaries into <out-file> (default: stdout)
 | 
						|
 | 
						|
EOF
 | 
						|
	exit 1
 | 
						|
end
 | 
						|
 | 
						|
code = 1
 | 
						|
outio = $stdout
 | 
						|
 | 
						|
if ARGV.length > 2
 | 
						|
	usage
 | 
						|
end
 | 
						|
 | 
						|
if fname = ARGV[0]
 | 
						|
	unless fname == "-"
 | 
						|
		begin
 | 
						|
			outio = File.open(fname, "w")
 | 
						|
		rescue
 | 
						|
			puts "can't open output file: #{$!}"
 | 
						|
			exit 1
 | 
						|
		end
 | 
						|
	end
 | 
						|
end
 | 
						|
 | 
						|
objs = [0, 1, 2, 123, 512, 1230, 678908,
 | 
						|
        -1, -23, -512, -1230, -567898,
 | 
						|
        "hogehoge", "243546rf7g68h798j",
 | 
						|
        123.123,
 | 
						|
       -234.4355, 1.0e-34, 1.0e64,
 | 
						|
        [23, 234, 0.23],
 | 
						|
        [0,42,"sum", [1,2]], [1,42, nil, [3]],
 | 
						|
        { 1 => 2, "hoge" => nil },
 | 
						|
        -234, -50000,
 | 
						|
        42
 | 
						|
       ]
 | 
						|
begin
 | 
						|
  objs.each do |obj|
 | 
						|
    outio.write MessagePack.pack(obj)
 | 
						|
    outio.flush
 | 
						|
  end
 | 
						|
rescue EOFError
 | 
						|
  code=0
 | 
						|
rescue
 | 
						|
  $stderr.puts $!
 | 
						|
  code=1
 | 
						|
end
 | 
						|
 | 
						|
outio.close
 | 
						|
exit code
 | 
						|
 |