branch: externals/dape
commit 9d64c950b2d27afca984766bf4ac8c64f6231226
Author: Daniel Pettersson <[email protected]>
Commit: Daniel Pettersson <[email protected]>
Add test for breakpoint hits
---
dape-tests.el | 42 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 42 insertions(+)
diff --git a/dape-tests.el b/dape-tests.el
index 6db20ecac9..86a63f9672 100644
--- a/dape-tests.el
+++ b/dape-tests.el
@@ -610,5 +610,47 @@ Expects line with string \"breakpoint\" in source."
(dape-test--should
(member "*dape-source os*" (mapcar 'buffer-name (buffer-list))))))
+(defun dape-test--breakpoint-hits (buffer key &rest args)
+ "Helper for ert test `dape-test-breakpoint-hits'."
+ (let ((breakpoints-buffer
+ (dape--info-get-buffer-create 'dape-info-breakpoints-mode)))
+ ;; No breakpoints in *dape-info Breakpoints*
+ (with-current-buffer breakpoints-buffer
+ (revert-buffer)
+ (dape-test--should (not (dape-test--line-at-regex "^break "))))
+ ;; Set breakpoint in loop
+ (with-current-buffer buffer
+ (save-excursion
+ (dape-test--goto-line (dape-test--line-at-regex "breakpoint"))
+ (dape-breakpoint-toggle)))
+ ;; Breakpoint in buffer
+ (with-current-buffer breakpoints-buffer
+ (revert-buffer)
+ (dape-test--should (dape-test--line-at-regex "^break ")))
+ ;; Start debugging
+ (apply 'dape-test--debug buffer key args)
+ ;; Continue 4 times
+ (dotimes (_ 5)
+ (dape-test--should
+ (and (dape-test--stopped-p)
+ (dape-test--no-pending-p)))
+ (dape-continue (dape--live-connection 'stopped)))
+ ;; Debugging session over
+ (dape-test--should (not (dape--live-connection 'parent t)))
+ ;; Breakpoint in *dape-info Breakpoints*
+ (with-current-buffer breakpoints-buffer
+ (revert-buffer)
+ (dape-test--should (not (dape-test--line-at-regex "^break .*5 *$"))))))
+
+(ert-deftest dape-test-breakpoint-hits ()
+ "Test breakpoint hits."
+ (dape-test--with-files
+ ((index-buffer
+ "index.js"
+ ("for (let i = 0; i < 5; i++) {"
+ "()=>{}; // breakpoint"
+ "}")))
+ (dape-test--breakpoint-hits index-buffer 'js-debug-node)))
+
(provide 'dape-tests)
;;; dape-tests.el ends here