gnu: mercurial: Enable more tests.

* gnu/packages/version-control.scm (mercurial)[arguments]: Add phase
'patch-tests'.  Do not remove patched tests in the 'check' phase.
This commit is contained in:
Marius Bakke 2020-03-10 20:26:17 +01:00
parent 79093034b9
commit 944e3502b1
No known key found for this signature in database
GPG Key ID: A2A06DF2A33A54FA

@ -1332,27 +1332,39 @@ control to Git repositories.")
(arguments (arguments
`(#:phases `(#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'patch-tests
(lambda _
(substitute* '("tests/test-extdiff.t"
"tests/test-logtoprocess.t"
"tests/test-patchbomb.t"
"tests/test-run-tests.t"
"tests/test-transplant.t")
(("/bin/sh")
(which "sh")))
#t))
(replace 'check (replace 'check
(lambda* (#:key tests? #:allow-other-keys) (lambda* (#:key tests? #:allow-other-keys)
(with-directory-excursion "tests" (with-directory-excursion "tests"
;; The following tests are known to fail. ;; The following tests are known to fail.
(for-each (lambda (file) (for-each delete-file
(delete-file file)) '(;; XXX: This test calls 'run-tests.py --with-hg=
'("test-extdiff.t" ;; `which hg`' and fails because there is no hg on
;; PATH from before (that's why we are building it!)?
"test-hghave.t" "test-hghave.t"
;; FIXME: Why does this fail in the build container, but
;; not in 'guix environment -C' (even without /bin/sh)?
"test-nointerrupt.t"
;; TODO: the fqaddr() call fails in the build
;; container, causing these server tests to fail.
"test-hgwebdir.t" "test-hgwebdir.t"
"test-http-branchmap.t" "test-http-branchmap.t"
"test-logtoprocess.t"
"test-merge-combination.t"
"test-nointerrupt.t"
"test-patchbomb.t"
"test-pull-bundle.t" "test-pull-bundle.t"
"test-push-http.t" "test-push-http.t"
"test-run-tests.t"
"test-serve.t" "test-serve.t"
"test-subrepo-deep-nested-change.t" "test-subrepo-deep-nested-change.t"
"test-subrepo-recursion.t" "test-subrepo-recursion.t"))
"test-transplant.t"))
(when tests? (when tests?
(invoke "./run-tests.py" (invoke "./run-tests.py"
;; make check does not respect -j. ;; make check does not respect -j.