Mercurial > hg
changeset 41788:19979b8b87e2
tests: add test for hg-test-mode emacs code
This is just coverage for the compilation-mode support, but that was
enough of a hassle that I wanted to have it covered somehow. Test
methodology is _extremely_ cargo-culted from the test for
compilation-mode in emacs, so I still have no idea what I'm doing.
Differential Revision: https://phab.mercurial-scm.org/D6003
author | Augie Fackler <augie@google.com> |
---|---|
date | Thu, 21 Feb 2019 23:07:54 -0500 |
parents | 2a6ca0d94b70 |
children | 2ba96fca8528 |
files | contrib/hg-test-mode.el tests/test-contrib-emacs.t |
diffstat | 2 files changed, 37 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/contrib/hg-test-mode.el Thu Feb 21 23:06:18 2019 -0500 +++ b/contrib/hg-test-mode.el Thu Feb 21 23:07:54 2019 -0500 @@ -65,4 +65,33 @@ "\\+ \\([^:\n]+\\):\\([0-9]+\\):$" 1 2)) (add-to-list 'compilation-error-regexp-alist 'hg-test-check-code-output)) +(defun hg-test-mode--test-one-error-line-regexp (test) + (erase-buffer) + (setq compilation-locs (make-hash-table)) + (insert (car test)) + (compilation-parse-errors (point-min) (point-max)) + (let ((msg (get-text-property 1 'compilation-message))) + (should msg) + (let ((loc (compilation--message->loc msg)) + (line (nth 1 test)) + (file (nth 2 test))) + (should (equal (compilation--loc->line loc) line)) + (should (equal (caar (compilation--loc->file-struct loc)) file))) + msg)) + +(require 'ert) +(ert-deftest hg-test-mode--compilation-mode-support () + "Test hg-specific compilation-mode regular expressions" + (require 'compile) + (with-temp-buffer + (font-lock-mode -1) + (mapc 'hg-test-mode--test-one-error-line-regexp + '( + ("+ contrib/debugshell.py:37:" 37 "contrib/debugshell.py") + ("+ File \"/tmp/hg/mercurial/commands.py\", line 3115, in help_" + 3115 "/tmp/hg/mercurial/commands.py") + ("+ File \"mercurial/dispatch.py\", line 225, in dispatch" + 225 "mercurial/dispatch.py"))))) + + (provide 'hg-test-mode)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-contrib-emacs.t Thu Feb 21 23:07:54 2019 -0500 @@ -0,0 +1,8 @@ +#require emacs + $ emacs -q -no-site-file -batch -l $TESTDIR/../contrib/hg-test-mode.el \ + > -f ert-run-tests-batch-and-exit + Running 1 tests (*) (glob) + passed 1/1 hg-test-mode--compilation-mode-support + + Ran 1 tests, 1 results as expected (*) (glob) +