gnu: vim: Run more tests.
authorEfraim Flashner <efraim@flashner.co.il>
Fri, 20 Nov 2020 13:01:56 +0000 (15:01 +0200)
committerEfraim Flashner <efraim@flashner.co.il>
Fri, 20 Nov 2020 13:20:02 +0000 (15:20 +0200)
* 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.

gnu/packages/vim.scm

index 5c6673c..cda1e14 100644 (file)
              (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)