diff options
Diffstat (limited to 'gnu/packages/vim.scm')
-rw-r--r-- | gnu/packages/vim.scm | 44 |
1 files changed, 32 insertions, 12 deletions
diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm index 236bb97cbe..cda1e144ec 100644 --- a/gnu/packages/vim.scm +++ b/gnu/packages/vim.scm @@ -70,7 +70,7 @@ (define-public vim (package (name "vim") - (version "8.2.1980") + (version "8.2.2017") (source (origin (method git-fetch) (uri (git-reference @@ -79,7 +79,7 @@ (file-name (git-file-name name version)) (sha256 (base32 - "1l1bb4lhlivgvj4jaxkibdkcg6rh1gk80d6ni41kphyrir7xahja")))) + "0ad0c4wv8zf28wns06k82c19rs63ilsphnglajhgw5j2a1aqplyn")))) (build-system gnu-build-system) (arguments `(#:test-target "test" @@ -110,7 +110,7 @@ ;; Make sure the TERM environment variable is set for the tests (setenv "TERM" "xterm") #t)) - (add-before 'check 'skip-failing-tests + (add-before 'check 'skip-or-fix-failing-tests (lambda _ ;; This test assumes that PID 1 is run as root and that the user ;; running the test suite does not have permission to kill(1, 0) @@ -121,16 +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"))) + ;; 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) or so characters. + ;; Two of the tests we simply skip instead of patching the screen dump. (substitute* "src/testdir/test_popupwin.vim" - ((".*Test_popup_drag_termwin.*" line) - (string-append line "return\n"))) + ((".*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) "|")) + (("^\\|!") "|<") + (("@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) |