summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-08-03 09:39:25 +0000
committernaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-08-03 09:39:25 +0000
commitdc7f2cd58615afb193f46b2bec1285186f5bf5bd (patch)
tree7fea9ed1b38508875571d3d14927671977ffbb0d
parent4f8107a4ba9ea72e75aa7ccd7f5b4fe36f64b096 (diff)
Add initial test for lldb extension
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59485 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rwxr-xr-xmisc/lldb_cruby.py2
-rw-r--r--misc/test_lldb_cruby.rb36
2 files changed, 38 insertions, 0 deletions
diff --git a/misc/lldb_cruby.py b/misc/lldb_cruby.py
index eafbafdd8a..e954d1be00 100755
--- a/misc/lldb_cruby.py
+++ b/misc/lldb_cruby.py
@@ -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
diff --git a/misc/test_lldb_cruby.rb b/misc/test_lldb_cruby.rb
new file mode 100644
index 0000000000..4d1cc499f5
--- /dev/null
+++ b/misc/test_lldb_cruby.rb
@@ -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