зеркало из https://github.com/github/ruby.git
Add initial test for lldb extension
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59485 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
Родитель
4f8107a4ba
Коммит
dc7f2cd586
|
@ -3,6 +3,8 @@
|
|||
#
|
||||
# Usage: run `command script import -r misc/lldb_cruby.py` on LLDB
|
||||
#
|
||||
# Test: misc/test_lldb_cruby.rb
|
||||
#
|
||||
|
||||
import lldb
|
||||
import commands
|
||||
|
|
|
@ -0,0 +1,36 @@
|
|||
#!/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_p
|
||||
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_symbol
|
||||
assert_rp ':abcde', /immediate\(\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
|
Загрузка…
Ссылка в новой задаче