~ruther/guix-local

c9f4f56b24801718d89c2520bec08867516e1371 — Marius Bakke 8 years ago 81ca29a
gnu: git: Enable tests.

* gnu/packages/version-control.scm (git)[arguments]: Remove #:tests?. Add
'patch-tests' phase.
1 files changed, 32 insertions(+), 1 deletions(-)

M gnu/packages/version-control.scm
M gnu/packages/version-control.scm => gnu/packages/version-control.scm +32 -1
@@ 15,6 15,7 @@
;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com>
;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2017 André <eu@euandre.org>
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
;;;
;;; This file is part of GNU Guix.
;;;


@@ 176,7 177,6 @@ as well as the classic centralized workflow.")
                     ;; nars; see <https://bugs.gnu.org/21949>.
                     "NO_INSTALL_HARDLINKS=indeed")
      #:test-target "test"
      #:tests? #f ; FIXME: Many tests are failing

      ;; The explicit --with-tcltk forces the build system to hardcode the
      ;; absolute file name to 'wish'.


@@ 203,6 203,37 @@ as well as the classic centralized workflow.")
            ;; Add the "PM.stamp" to avoid "no rule to make target".
            (call-with-output-file "perl/PM.stamp" (const #t))
            #t))
        (add-before 'check 'patch-tests
          (lambda _
            ;; These files contain some funny bytes that Guile is unable
            ;; to decode for shebang patching. Just delete them.
            (for-each delete-file '("t/t4201-shortlog.sh"
                                    "t/t7813-grep-icase-iso.sh"))
            ;; Many tests contain inline shell scripts (hooks etc).
            (substitute* (find-files "t" "\\.sh$")
              (("#!/bin/sh") (string-append "#!" (which "sh"))))
            ;; Un-do shebang patching here to prevent checksum mismatch.
            (substitute* '("t/t4034/perl/pre" "t/t4034/perl/post")
              (("^#!.*/bin/perl") "#!/usr/bin/perl"))
            (substitute* "t/t5003-archive-zip.sh"
              (("cp /bin/sh") (string-append "cp " (which "sh"))))
            (substitute* "t/t6030-bisect-porcelain.sh"
              (("\"/bin/sh\"") (string-append "\"" (which "sh") "\"")))
            ;; FIXME: This test runs `git commit` with a bogus EDITOR
            ;; and empty commit message, but does not fail the way it's
            ;; expected to. The test passes when invoked interactively.
            (substitute* "t/t7508-status.sh"
              (("\tcommit_template_commented") "\ttrue"))
            ;; More checksum mismatches due to odd shebangs.
            (substitute* "t/t9100-git-svn-basic.sh"
              (("\"#!/gnu.*/bin/sh") "\"#!/bin/sh"))
            (substitute* "t/t9300-fast-import.sh"
              (("\t#!/gnu.*/bin/sh") "\t#!/bin/sh")
              (("'#!/gnu.*/bin/sh") "'#!/bin/sh"))
            ;; FIXME: Some hooks fail with "basename: command not found".
            ;; See 't/trash directory.t9164.../svn-hook.log'.
            (delete-file "t/t9164-git-svn-dcommit-concurrent.sh")
            #t))
        (add-after 'install 'install-shell-completion
          (lambda* (#:key outputs #:allow-other-keys)
            (let* ((out         (assoc-ref outputs "out"))