File: test_lldb_cruby.rb

package info (click to toggle)
ruby3.3 3.3.8-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 153,620 kB
  • sloc: ruby: 1,244,308; ansic: 836,474; yacc: 28,074; pascal: 6,748; sh: 3,913; python: 1,719; cpp: 1,158; makefile: 742; asm: 712; javascript: 394; lisp: 97; perl: 62; awk: 36; sed: 23; xml: 4
file content (40 lines) | stat: -rw-r--r-- 948 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#!/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