Subject: [bug#34412] [PATCH] gnu: ocaml-merlin: Added tests

From: Gabriel Hondet <[email-masked]>
Date: Sun, 10 Feb 2019 14:36:15 +0100

* gnu/packages/ocaml.scm (ocaml-merlin): Added tests
---
 gnu/packages/ocaml.scm | 23 +++++++++++++++++++++--
 1 file changed, 21 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index 07fcf92ae..0b33c257a 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -66,6 +66,7 @@
   #:use-module (gnu packages version-control)
   #:use-module (gnu packages virtualization)
   #:use-module (gnu packages web-browsers)
+  #:use-module (gnu packages web)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
   #:use-module (guix build-system dune)
@@ -4785,6 +4786,11 @@ format}.  @code{craml} is released as a single binary (called @code{craml}).")
              (url "https://github.com/ocaml/merlin.git")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
+       (modules '((guix build utils)))
+       (snippet '(begin
+                   ;; fix a dune file calling missing dependencies
+                   (substitute* "tests/locate/partial-cmt/dune"
+                     (("a.ml a.mli") ""))))
        (sha256
         (base32
          "15ssgmwdxylbwhld9p1cq8x6kadxyhll5bfyf11dddj6cldna3hb"))))
@@ -4794,9 +4800,22 @@ format}.  @code{craml} is released as a single binary (called @code{craml}).")
        ("ocaml-yojson" ,ocaml-yojson)
        ("ocaml-easy-format" ,ocaml-easy-format)))
     (native-inputs
-     `(("ocaml-findlib" ,ocaml-findlib)))
+     `(("ocaml-findlib" ,ocaml-findlib)
+       ("ocaml-craml" ,ocaml-craml)
+       ("jq" ,jq)))
     (arguments
-     '(#:tests? #f)) ;; Errors in tests in version 3.2.2
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'remove-failing
+           (lambda _
+             (delete-file-recursively "tests/warnings/")
+             (delete-file-recursively ;fail because of shebang patching
+              "tests/locate/context-detection/")
+             #t))
+         (replace 'check
+           (lambda _
+             (invoke "make" "test")
+             #t)))))
     (synopsis "Context sensitive completion for OCaml in Vim and Emacs")
     (description "Merlin is an editor service that provides modern IDE
 features for OCaml.  Emacs and Vim support is provided out-of-the-box.
-- 
2.20.1