]> git.eshelyaron.com Git - emacs.git/commitdiff
Work on proced-tests.el
authorLaurence Warne <laurencewarne@gmail.com>
Wed, 30 Oct 2024 14:12:13 +0000 (15:12 +0100)
committerEshel Yaron <me@eshelyaron.com>
Tue, 5 Nov 2024 11:06:31 +0000 (12:06 +0100)
* test/lisp/proced-tests.el
(proced--assert-process-valid-cpu-refinement-explainer): New function
for explaining refinement test failures in greater detail.

(cherry picked from commit 98796f95fa5ce7c38074429517c477cd01b0be37)

test/lisp/proced-tests.el

index 64f9dd4148a60e6536b8006300a1d2a6a4a3c287..5d6f9e9f16473539ebd6cc646e792e3f57a37cd8 100644 (file)
 (defun proced--assert-process-valid-cpu-refinement (cpu)
   "Fail unless the process at point could be present after a refinement using CPU."
   (proced--move-to-column "%CPU")
-  (should (>= (thing-at-point 'number) cpu)))
+  (>= (thing-at-point 'number) cpu))
+
+(defun proced--assert-process-valid-cpu-refinement-explainer (cpu)
+  "Explain the result of `proced--assert-process-valid-cpu-refinement'.
+
+CPU is as in `proced--assert-process-valid-cpu-refinement'."
+  `(unexpected-refinement
+    (header-line
+     ,(substring-no-properties
+       (string-replace "%%" "%" (cadr (proced-header-line)))))
+    (process ,(thing-at-point 'line t))
+    (refined-value ,cpu)
+    (process-value
+     ,(save-excursion
+        (proced--move-to-column "%CPU") (thing-at-point 'number)))))
+
+(put #'proced--assert-process-valid-cpu-refinement 'ert-explainer
+     #'proced--assert-process-valid-cpu-refinement-explainer)
 
 (ert-deftest proced-format-test ()
   (dolist (format '(short medium long verbose))
    (let ((cpu (thing-at-point 'number)))
      (proced-refine)
      (while (not (eobp))
-       (proced--assert-process-valid-cpu-refinement cpu)
+       (should (proced--assert-process-valid-cpu-refinement cpu))
        (forward-line)))))
 
 (ert-deftest proced-refine-with-update-test ()
      ;; processes again, causing the test to fail.
      (proced-update)
      (while (not (eobp))
-       (proced--assert-process-valid-cpu-refinement cpu)
+       (should (proced--assert-process-valid-cpu-refinement cpu))
        (forward-line)))))
 
 (ert-deftest proced-update-preserves-pid-at-point-test ()