]> code.delx.au - gnu-emacs-elpa/blob - packages/realgud/test/test-regexp-jdb.el
Add 'packages/realgud/' from commit 'd811316e6a0f4eeee8a1347f504c196c86baa2cb'
[gnu-emacs-elpa] / packages / realgud / test / test-regexp-jdb.el
1 (require 'test-simple)
2 (load-file "../realgud/common/buffer/command.el")
3 (load-file "../realgud/debugger/jdb/init.el")
4 (load-file "./regexp-helper.el")
5
6 (declare-function __FILE__ 'load-relative)
7 (declare-function prompt-match 'regexp-helper)
8
9 (eval-when-compile
10 (defvar dbg-name) (defvar realgud-pat-hash) (defvar loc-pat)
11 (defvar test-dbgr) (defvar test-text) (defvar prompt-pat)
12 (defvar realgud:jdb-pat-hash)
13 )
14
15 (test-simple-start)
16
17 (note "jdb prompt matching")
18 (set (make-local-variable 'prompt-pat)
19 (gethash "prompt" realgud:jdb-pat-hash))
20 (prompt-match "main[1] " "1" "most common main prompt")
21 (prompt-match "main[2] " "2" "main prompt up a level")
22 (prompt-match "> " nil "no loc prompt")
23
24
25 ; Some setup usually done in setting up the buffer.
26 ; We customize this for this debugger.
27 ; FIXME: encapsulate this.
28 (setq dbg-name "jdb")
29
30 (setq loc-pat (gethash "loc" (gethash dbg-name realgud-pat-hash)))
31 (setq test-dbgr (make-realgud-cmdbuf-info
32 :debugger-name dbg-name
33 :loc-regexp (realgud-loc-pat-regexp loc-pat)
34 :file-group (realgud-loc-pat-file-group loc-pat)
35 :line-group (realgud-loc-pat-line-group loc-pat)))
36
37 ;; FIXME: we get a void variable somewhere in here when running
38 ;; even though we define it in lexical-let. Dunno why.
39 ;; setq however will workaround this.
40 (let ((text "Breakpoint hit: \"thread=main\", TestMe.main(), line=7 bci=0"))
41
42 (note "traceback location matching")
43
44 (assert-t (numberp (cmdbuf-loc-match text test-dbgr)) "breakpoint location")
45 (assert-equal "7"
46 (match-string (realgud-cmdbuf-info-line-group test-dbgr)
47 text) "extract line number from breakpoint"))
48
49 (let ((text "Step completed: \"thread=main\", TestMe.main(), line=71 bci=0"))
50 (assert-t (numberp (cmdbuf-loc-match text test-dbgr)) "breakpoint location")
51 (assert-equal "71"
52 (match-string (realgud-cmdbuf-info-line-group test-dbgr)
53 text) "extract line number from step"))
54
55 ;; (note "debugger-backtrace")
56 ;; (setq realgud-bt-pat (gethash "debugger-backtrace"
57 ;; realgud:jdb-pat-hash))
58 ;; (setq s1
59 ;; " [1] java.lang.Class.getDeclaredMethods0 (native method)
60 ;; [2] java.lang.Class.privateGetDeclaredMethods (Class.java:2,570)
61 ;; [3] java.lang.Class.getMethod0 (Class.java:2,813)
62 ;; [4] java.lang.Class.getMethod (Class.java:1,663)
63 ;; [5] sun.launcher.LauncherHelper.getMainMethod (LauncherHelper.java:494)
64 ;; [6] sun.launcher.LauncherHelper.checkAndLoadMain (LauncherHelper.java:486)
65 ;; ")
66 ;; (setq realgud-bt-re (realgud-loc-pat-regexp realgud-bt-pat))
67 ;; (setq file-group (realgud-loc-pat-file-group realgud-bt-pat))
68 ;; (setq line-group (realgud-loc-pat-line-group realgud-bt-pat))
69 ;; (assert-equal 0 (string-match realgud-bt-re s1))
70 ;; (assert-equal "570"
71 ;; (substring s1
72 ;; (match-beginning line-group)
73 ;; (match-end line-group)))
74
75 (end-tests)