Fix for JRUBY-2882. Handle error messages related to constructors better
[jruby.git] / bench / ffi / bench_strlen.rb
blob8ec8e15a06acb1ae0ce5089df0dbcfa9c3ffb21b
1 require 'benchmark'
2 require 'ffi'
3 iter = 100000
4 str = "test"
6 module JLibC
7   extend JRuby::FFI::Library
8   attach_function :strlen, [ :string ], :int
9 end
10 module RbxLibC
11   extend FFI::Library
12   attach_function :strlen, [ :string ], :int
13 end
15 if RbxLibC.strlen("test") != 4
16   raise ArgumentError, "rubinius FFI.strlen returned incorrect value"
17 end
18 if JLibC.strlen("test") != 4
19   raise ArgumentError, "jruby FFI.strlen returned incorrect value"
20 end
21 puts "Benchmark rubinius FFI api strlen(3) performance, #{iter}x"
22 10.times {
23   puts Benchmark.measure {
24     iter.times { RbxLibC.strlen(str) }
25   }
28 puts "Benchmark jruby FFI api strlen(3) performance, #{iter}x"
29 10.times {
30   puts Benchmark.measure {
31     iter.times { JLibC.strlen(str) }
32   }