Subject: bug#23477: 25.1.50; shr-tests fails on an out-of-tree build

From: Ken Brown <[email-masked]>
Date: Mon, 9 May 2016 10:27:52 -0400

On 5/7/2016 6:38 PM, Ken Brown wrote:
> The test in test/lisp/net/shr-tests.el fails on an out-of-tree build
> because of the references to the relative directory "data/shr".  I guess
> this should be replaced everywhere by something like
>
>   (expand-file-name "test/data/shr" source-directory)

The attached patch seems to fix it.

Ken

diff --git a/test/lisp/net/shr-tests.el b/test/lisp/net/shr-tests.el
index ab6fc93..501916f 100644
--- a/test/lisp/net/shr-tests.el
+++ b/test/lisp/net/shr-tests.el
@@ -25,9 +25,12 @@
 
 (require 'shr)
 
+(defconst shr-tests--datadir
+  (expand-file-name "test/data/shr" source-directory))
+
 (defun shr-test (name)
   (with-temp-buffer
-    (insert-file-contents (format "data/shr/%s.html" name))
+    (insert-file-contents (format (concat shr-tests--datadir "/%s.html") name))
     (let ((dom (libxml-parse-html-region (point-min) (point-max)))
           (shr-width 80)
           (shr-use-fonts nil))
@@ -35,7 +38,8 @@ shr-test
       (shr-insert-document dom)
       (cons (buffer-substring-no-properties (point-min) (point-max))
             (with-temp-buffer
-              (insert-file-contents (format "data/shr/%s.txt" name))
+              (insert-file-contents
+               (format (concat shr-tests--datadir "/%s.txt") name))
               (while (re-search-forward "%\\([0-9A-F][0-9A-F]\\)" nil t)
                 (replace-match (string (string-to-number (match-string 1) 16))
                                t t))
@@ -43,7 +47,7 @@ shr-test
 
 (ert-deftest rendering ()
   (skip-unless (fboundp 'libxml-parse-html-region))
-  (dolist (file (directory-files "data/shr" nil "\\.html\\'"))
+  (dolist (file (directory-files shr-tests--datadir nil "\\.html\\'"))
     (let* ((name (replace-regexp-in-string "\\.html\\'" "" file))
            (result (shr-test name)))
       (unless (equal (car result) (cdr result))