1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/misc/test_lldb_cruby.rb

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

41 lines
948 B
Ruby
Raw Normal View History

#!/usr/bin/env ruby
require 'open3'
require 'tempfile'
require 'test/unit'
class TestLLDBInit < Test::Unit::TestCase
def assert_rp(expr, pattern, message=nil)
Tempfile.create('lldb') do |tf|
tf.puts <<eom
target create ./miniruby
command script import -r misc/lldb_cruby.py
b rb_inspect
run -e'p #{expr}'
rp obj
eom
tf.flush
o, s = Open3.capture2('lldb', '-b', '-s', tf.path)
assert_true s.success?, message
assert_match /^\(lldb\) rp obj\n#{pattern}/, o, message
end
end
def test_rp_object
assert_rp 'Object.new', 'T_OBJECT'
end
def test_rp_regex
assert_rp '/foo/', '[(]Regex'
end
def test_rp_symbol
assert_rp ':abcde', /T_SYMBOL: \(\h+\)/
end
def test_rp_string
assert_rp '"abc"', /\(char \[\d+\]\) ary = "abc"/
assert_rp "\"\u3042\"", /\(char \[\d+\]\) ary = "\u3042"/
assert_rp '"' + "\u3042"*10 + '"', /\(RString::\(anonymous struct\)\) heap = \{/
end
end