summary refs log tree commit diff
diff options
context:
space:
mode:
authorEfraim Flashner <efraim@flashner.co.il>2020-11-20 15:01:56 +0200
committerEfraim Flashner <efraim@flashner.co.il>2020-11-20 15:20:02 +0200
commit17a53aec7a6a7608bd01841ca2058bfe1500c453 (patch)
tree284a080126c9deb4cbb77c5995b6f3e7aade7b7d
parent23ef1676e2abf8f815f7a50353e5bb5c059036ce (diff)
downloadguix-17a53aec7a6a7608bd01841ca2058bfe1500c453.tar.gz
gnu: vim: Run more tests.
* gnu/packages/vim.scm (vim)[arguments]: In the custom
'skip-or-fix-failing-tests phase adjust substitutions to skip fewer
tests and adjust other test output to patched shebangs.
-rw-r--r--gnu/packages/vim.scm36
1 files changed, 21 insertions, 15 deletions
diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm
index 5c6673cf2b..cda1e144ec 100644
--- a/gnu/packages/vim.scm
+++ b/gnu/packages/vim.scm
@@ -121,30 +121,36 @@
              (substitute* "src/testdir/test_swap.vim"
                (("if !IsRoot\\(\\)") "if 0"))
 
-             ;; These tests check how the terminal looks after executing some
-             ;; actions.  The path of the bash binary is shown, which results in
-             ;; a difference being detected.  Patching the expected result is
-             ;; non-trivial due to the special format used, so skip the test.
-             (substitute* "src/testdir/test_terminal.vim"
-               ((".*Test_terminal_postponed_scrollback.*" line)
-                (string-append line "return\n")))
-             (substitute* "src/testdir/test_popupwin.vim"
-               ((".*Test_popup_drag_termwin.*" line)
-                (string-append line "return\n")))
-
-             ;; This test compares output against a golden ‘…/|b|i|n|/|s|h…’
+             ;; These tests compares output against a golden ‘…/|b|i|n|/|s|h…’
              ;; literal.  We need to match that and substitute a similarly
              ;; ‘spliced’ path to ‘sh’ in the store, truncated to the last
-             ;; 44 (spliced: 88) characters.
+             ;; 44 (spliced: 88) or so characters.
+             ;; Two of the tests we simply skip instead of patching the screen dump.
+             (substitute* "src/testdir/test_popupwin.vim"
+               ((".*Test_popupwin_term_0[1|2].*") ""))
+             ;; We replace the external program call (!) with a scroll-back (<)
+             ;; symbol and blindly fix some other differences based on error output.
              (let ((splice (lambda (s separator)
                                (string-join (map string (string->list s))
                                             separator))))
                (substitute* "src/testdir/dumps/Test_terminal_from_cmd.dump"
                  (((splice "/bin/sh" "\\|"))
                   (splice (string-take-right (which "sh") 44) "|"))
-                 ;; Blindly fix some other differences based on error output.
                  (("^\\|!") "|<")
-                 (("@37") "")))
+                 (("@37") ""))
+               (substitute* '("src/testdir/dumps/Test_terminal_scrollback_1.dump"
+                              "src/testdir/dumps/Test_terminal_scrollback_2.dump")
+                 (((splice "/bin/sh" "\\|"))
+                  (splice (string-take-right (which "sh") 61) "|"))
+                 (("^\\|!") "|<")
+                 ((" @55") " @1"))
+               (substitute* '("src/testdir/dumps/Test_terminal_scrollback_3.dump"
+                              "src/testdir/dumps/Test_popupwin_term_03.dump"
+                              "src/testdir/dumps/Test_popupwin_term_04.dump")
+                 (((splice "/bin/sh" "\\|"))
+                  (splice (string-take-right (which "sh") 62) "|"))
+                 (("^\\|!") "|<")
+                 (("\\]\\| @56") "]| @1")))
              #t)))))
     (inputs
      `(("gawk" ,gawk)