]> code.delx.au - gnu-emacs-elpa/blob - packages/realgud/test/test-loc-regexp-trepan.el
84a63f2ed6888eec464145f7851b2907100bd3c3
[gnu-emacs-elpa] / packages / realgud / test / test-loc-regexp-trepan.el
1 (require 'test-simple)
2 (require 'load-relative)
3 (load-file "./regexp-helper.el")
4 (load-file "../realgud/common/regexp.el")
5 (load-file "../realgud/debugger/trepan/init.el")
6
7 (declare-function realgud-cmdbuf-info-loc-regexp 'realgud-buffer-command)
8 (declare-function cmdbuf-loc-match 'realgud-regexp)
9 (declare-function realgud-loc-pat-regexp 'realgud-regexp)
10 (declare-function realgud-loc-pat-file-group 'realgud-regexp)
11 (declare-function realgud-loc-pat-line-group 'realgud-regexp)
12 (declare-function realgud-cmdbuf-info-file-group 'realgud-regexp)
13 (declare-function realgud-cmdbuf-info-line-group 'realgud-regexp)
14 (declare-function realgud-cmdbuf-info 'realgud-regexp)
15 (declare-function make-realgud-cmdbuf-info 'realgud-regexp)
16 (declare-function __FILE__ 'load-relative)
17
18 (test-simple-start)
19
20 (eval-when-compile
21 (defvar dbg-name)
22 (defvar realgud-pat-hash)
23 (defvar loc-pat)
24 (defvar test-dbgr)
25 (defvar test-text)
26 )
27
28 ;; Some setup usually done in setting up the buffer.
29 ;; We customize this for the debugger trepan. Others may follow.
30 ;; FIXME: encapsulate this.
31 (setq dbg-name "trepan")
32 (setq loc-pat (gethash "loc" (gethash dbg-name realgud-pat-hash)))
33
34 (setq test-dbgr (make-realgud-cmdbuf-info
35 :debugger-name dbg-name
36 :loc-regexp (realgud-loc-pat-regexp loc-pat)
37 :file-group (realgud-loc-pat-file-group loc-pat)
38 :line-group (realgud-loc-pat-line-group loc-pat)))
39
40 (setq test-text "-- (/usr/local/bin/irb:9 @2)")
41 (assert-t (numberp (cmdbuf-loc-match test-text test-dbgr)) "basic location")
42
43 (note "extract file name")
44 (assert-equal 0 (cmdbuf-loc-match test-text test-dbgr))
45 (assert-equal "/usr/local/bin/irb"
46 (match-string (realgud-cmdbuf-info-file-group test-dbgr)
47 test-text))
48
49 (assert-equal "9"
50 (match-string
51 (realgud-cmdbuf-info-line-group test-dbgr)
52 test-text) "extract line number")
53
54 (setq test-text "-> (<internal:lib/rubygems/custom_require>:28 remapped /usr/lib/ruby/gems/1.9.1/gems/data/custom_require.rb:28 @2)")
55 (assert-t (numberp (cmdbuf-loc-match test-text test-dbgr)) "remapped location")
56
57 (assert-equal 0 (cmdbuf-loc-match test-text test-dbgr))
58 (assert-equal "/usr/lib/ruby/gems/1.9.1/gems/data/custom_require.rb"
59 (match-string (realgud-cmdbuf-info-file-group test-dbgr)
60 test-text) "extract remapped file name")
61
62 (assert-equal "28"
63 (match-string
64 (realgud-cmdbuf-info-line-group test-dbgr)
65 test-text) "extract remapped line number")
66
67 (setq test-text "C> (/tmp/c-func.rb:2)")
68 (assert-t (numberp (cmdbuf-loc-match test-text test-dbgr)) "basic location for C fn")
69
70 (assert-equal 0 (cmdbuf-loc-match test-text test-dbgr))
71 (assert-equal "/tmp/c-func.rb"
72 (match-string (realgud-cmdbuf-info-file-group test-dbgr)
73 test-text) "extract file name for C fn")
74
75 (assert-equal "2"
76 (match-string
77 (realgud-cmdbuf-info-line-group test-dbgr)
78 test-text) "extract line number for C fn")
79
80 (end-tests)