]> git.eshelyaron.com Git - emacs.git/commitdiff
Protect Flymake tests against older Ruby and Perl (bug#29187)
authorJoão Távora <joaotavora@gmail.com>
Thu, 9 Nov 2017 09:34:58 +0000 (09:34 +0000)
committerJoão Távora <joaotavora@gmail.com>
Thu, 9 Nov 2017 09:38:11 +0000 (09:38 +0000)
* test/lisp/progmodes/flymake-tests.el (perl-backend): Search
for the error from the bottom.
(ruby-backend): Protect against situation of bug#29187

test/lisp/progmodes/flymake-tests.el

index c60f91003456707939fd62f65d392a09f71261a3..05214e7a92762ddcaa07b8376528d397336dd5d4 100644 (file)
@@ -114,17 +114,24 @@ SEVERITY-PREDICATE is used to setup
   (flymake-tests--with-flymake ("test.pl")
     (flymake-goto-next-error)
     (should (eq 'flymake-warning (face-at-point)))
-    (flymake-goto-next-error)
+    (goto-char (point-max))
+    (flymake-goto-prev-error)
     (should (eq 'flymake-error (face-at-point)))))
 
 (ert-deftest ruby-backend ()
   "Test the ruby backend"
   (skip-unless (executable-find "ruby"))
-  (flymake-tests--with-flymake ("test.rb")
-    (flymake-goto-next-error)
-    (should (eq 'flymake-warning (face-at-point)))
-    (flymake-goto-next-error)
-    (should (eq 'flymake-error (face-at-point)))))
+  ;; Some versions of ruby fail if HOME doesn't exist (bug#29187).
+  (let* ((tempdir (make-temp-file "flymake-tests-ruby" t))
+         (process-environment (cons (format "HOME=%s" tempdir)
+                                    process-environment)))
+    (unwind-protect
+        (flymake-tests--with-flymake ("test.rb")
+          (flymake-goto-next-error)
+          (should (eq 'flymake-warning (face-at-point)))
+          (flymake-goto-next-error)
+          (should (eq 'flymake-error (face-at-point))))
+      (delete-directory tempdir t))))
 
 (ert-deftest different-diagnostic-types ()
   "Test GCC warning via function predicate."