[PATCH 1/2] build-system/dune: Automatically deduce test-target in most cases.

  • Done
  • quality assurance status badge
Details
3 participants
  • Julien Lepiller
  • pukkamustard
  • raingloom
Owner
unassigned
Submitted by
raingloom
Severity
normal
R
R
raingloom wrote on 22 Nov 2022 20:47
(address . guix-patches@gnu.org)(name . raingloom)(address . raingloom@riseup.net)
20221122194712.31515-1-raingloom@riseup.net
guix/build-system/dune.scm (dune-build): tests? defaults to #f.
guix/build/dune-build-system.scm (check): Missing test-target is auto-detected.
---
guix/build-system/dune.scm | 2 +-
guix/build/dune-build-system.scm | 9 +++++++--
2 files changed, 8 insertions(+), 3 deletions(-)

Toggle diff (39 lines)
diff --git a/guix/build-system/dune.scm b/guix/build-system/dune.scm
index 12100fd8e8..b531d3c337 100644
--- a/guix/build-system/dune.scm
+++ b/guix/build-system/dune.scm
@@ -107,7 +107,7 @@ (define* (dune-build name inputs
(dune-release-flags ''())
(tests? #t)
(test-flags ''())
- (test-target "test")
+ (test-target #f)
(install-target "install")
(validate-runpath? #t)
(patch-shebangs? #t)
diff --git a/guix/build/dune-build-system.scm b/guix/build/dune-build-system.scm
index e9ccc71057..8a3725a4e9 100644
--- a/guix/build/dune-build-system.scm
+++ b/guix/build/dune-build-system.scm
@@ -42,12 +42,17 @@ (define* (build #:key (build-flags '()) (jbuild? #f)
build-flags)))
#t)
-(define* (check #:key (test-flags '()) (test-target "test") tests?
+(define* (check #:key (test-flags '()) (test-target #f) tests?
(jbuild? #f) (package #f) (dune-release-flags '())
#:allow-other-keys)
"Test the given package."
(when tests?
- (let ((program (if jbuild? "jbuilder" "dune")))
+ (let ((program (if jbuild? "jbuilder" "dune"))
+ (test-target (or test-target
+ (cond
+ ((file-exists? "tests") "tests")
+ ((file-exists? "test") "test")
+ (else ".")))))
(apply invoke program "runtest" test-target
(append (if package (list "-p" package)
dune-release-flags)
--
2.38.1
J
J
Julien Lepiller wrote on 22 Nov 2022 21:26
(name . raingloom)(address . raingloom@riseup.net)(address . 59487@debbugs.gnu.org)
20221122212613.7acbdd05@sybil.lepiller.eu
Hi!

This LGTM, but maybe put test-target inside the cond too, so we can
remove the or?

I've looked at how opam does things, and this seems to be the norm:

["dune" "runtest" "-p" name "-j" jobs]

Maybe this would work better:

(apply invoke program "runtest"
(append (if test-target (list test-target) '())
...))

WDYT?

Le Tue, 22 Nov 2022 20:47:11 +0100,
raingloom <raingloom@riseup.net> a écrit :

Toggle quote (44 lines)
> guix/build-system/dune.scm (dune-build): tests? defaults to #f.
> guix/build/dune-build-system.scm (check): Missing test-target is
> auto-detected. ---
> guix/build-system/dune.scm | 2 +-
> guix/build/dune-build-system.scm | 9 +++++++--
> 2 files changed, 8 insertions(+), 3 deletions(-)
>
> diff --git a/guix/build-system/dune.scm b/guix/build-system/dune.scm
> index 12100fd8e8..b531d3c337 100644
> --- a/guix/build-system/dune.scm
> +++ b/guix/build-system/dune.scm
> @@ -107,7 +107,7 @@ (define* (dune-build name inputs
> (dune-release-flags ''())
> (tests? #t)
> (test-flags ''())
> - (test-target "test")
> + (test-target #f)
> (install-target "install")
> (validate-runpath? #t)
> (patch-shebangs? #t)
> diff --git a/guix/build/dune-build-system.scm
> b/guix/build/dune-build-system.scm index e9ccc71057..8a3725a4e9 100644
> --- a/guix/build/dune-build-system.scm
> +++ b/guix/build/dune-build-system.scm
> @@ -42,12 +42,17 @@ (define* (build #:key (build-flags '()) (jbuild?
> #f) build-flags)))
> #t)
>
> -(define* (check #:key (test-flags '()) (test-target "test") tests?
> +(define* (check #:key (test-flags '()) (test-target #f) tests?
> (jbuild? #f) (package #f) (dune-release-flags '())
> #:allow-other-keys)
> "Test the given package."
> (when tests?
> - (let ((program (if jbuild? "jbuilder" "dune")))
> + (let ((program (if jbuild? "jbuilder" "dune"))
> + (test-target (or test-target
> + (cond
> + ((file-exists? "tests") "tests")
> + ((file-exists? "test") "test")
> + (else ".")))))
> (apply invoke program "runtest" test-target
> (append (if package (list "-p" package)
> dune-release-flags)
R
R
raingloom wrote on 12 Dec 2022 01:07
[PATCH v2 1/2] build-system/dune: Automatically deduce test-target in most cases.
(address . guix-patches@gnu.org)
20221212000747.24632-1-raingloom@riseup.net
guix/build-system/dune.scm (dune-build): tests? defaults to #f.
guix/build/dune-build-system.scm (check): Missing test-target is auto-detected.
---
guix/build-system/dune.scm | 2 +-
guix/build/dune-build-system.scm | 14 ++++++++++----
2 files changed, 11 insertions(+), 5 deletions(-)

Toggle diff (44 lines)
diff --git a/guix/build-system/dune.scm b/guix/build-system/dune.scm
index 12100fd8e8..b531d3c337 100644
--- a/guix/build-system/dune.scm
+++ b/guix/build-system/dune.scm
@@ -107,7 +107,7 @@ (define* (dune-build name inputs
(dune-release-flags ''())
(tests? #t)
(test-flags ''())
- (test-target "test")
+ (test-target #f)
(install-target "install")
(validate-runpath? #t)
(patch-shebangs? #t)
diff --git a/guix/build/dune-build-system.scm b/guix/build/dune-build-system.scm
index e9ccc71057..e1337a3f82 100644
--- a/guix/build/dune-build-system.scm
+++ b/guix/build/dune-build-system.scm
@@ -42,14 +42,20 @@ (define* (build #:key (build-flags '()) (jbuild? #f)
build-flags)))
#t)
-(define* (check #:key (test-flags '()) (test-target "test") tests?
+(define* (check #:key (test-flags '()) (test-target #f) tests?
(jbuild? #f) (package #f) (dune-release-flags '())
#:allow-other-keys)
"Test the given package."
(when tests?
- (let ((program (if jbuild? "jbuilder" "dune")))
- (apply invoke program "runtest" test-target
- (append (if package (list "-p" package)
+ (let ((program (if jbuild? "jbuilder" "dune"))
+ (test-target (or test-target
+ (cond
+ ((file-exists? "tests") "tests")
+ ((file-exists? "test") "test")
+ (else ".")))))
+ (apply invoke program "runtest"
+ (append (if test-target (list test-target) '())
+ (if package (list "-p" package)
dune-release-flags)
test-flags))))
#t)
--
2.38.1
R
R
raingloom wrote on 12 Dec 2022 01:07
[PATCH v2 2/2] gnu: Remove explicit test-target arguments in ocaml.scm.
(address . guix-patches@gnu.org)
20221212000747.24632-2-raingloom@riseup.net
gnu/packages/ocaml.scm: Delete test-target if it's ".", "test", or "tests".
---
gnu/packages/ocaml.scm | 129 +++++++++++------------------------------
1 file changed, 33 insertions(+), 96 deletions(-)

Toggle diff (485 lines)
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index e0bedf74f9..ca5f319f51 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -603,8 +603,6 @@ (define-public ocaml-cudf
(base32
"1lvrmpscbk1kjv5ag5bzlzv520xk5zw2haf6q7chvz98gcm9g0hk"))))
(build-system dune-build-system)
- (arguments
- '(#:test-target "."))
(propagated-inputs (list ocaml-extlib))
(native-inputs (list ocaml-ounit2))
(home-page "https://www.mancoosi.org/cudf/")
@@ -794,8 +792,7 @@ (define-public opam
"1mw535zsw7xlvpgwnk1dan76z3f7lh5imlg0s6kdyhfg0iqisjd7"))))
(build-system dune-build-system)
(arguments
- `(#:test-target "."
- #:phases
+ `(#:phases
(modify-phases %standard-phases
(add-before 'build 'pre-build
(lambda* (#:key inputs make-flags #:allow-other-keys)
@@ -1629,8 +1626,6 @@ (define-public ocaml-qcheck
(sha256
(base32 "0g3r8lrw6fsdphgpnp08saxyxk1vd3chpmb564ir2qnsp716vz6z"))))
(build-system dune-build-system)
- (arguments
- `(#:test-target "."))
(propagated-inputs
(list ocaml-alcotest ocaml-ounit))
(native-inputs
@@ -1674,8 +1669,6 @@ (define-public ocaml-qtest
(base32
"04ghjshh6104xyglm0db9kv90m62qla5f4bfrlndv6dsvgw3rdjl"))))
(build-system dune-build-system)
- (arguments
- `(#:test-target "tests"))
(propagated-inputs
`(("ounit" ,ocaml-ounit)
("qcheck" ,ocaml-qcheck)))
@@ -1701,8 +1694,6 @@ (define-public ocaml-stringext
(base32
"1m09cmn3vrk3gdm60fb730qsygcfyxsyv7gl9xfzck08q1x2x9qx"))))
(build-system dune-build-system)
- (arguments
- `(#:test-target "."))
(native-inputs
`(("ocamlbuild" ,ocamlbuild)
("qtest" ,ocaml-qtest)))
@@ -1942,8 +1933,7 @@ (define-public ocaml4.07-ppx-tools-versioned
"07lnj4yzwvwyh5fhpp1dxrys4ddih15jhgqjn59pmgxinbnddi66"))))
(build-system dune-build-system)
(arguments
- `(#:test-target "."
- #:package "ppx_tools_versioned"))
+ `(#:package "ppx_tools_versioned"))
(propagated-inputs
(list ocaml-migrate-parsetree))
(properties `((upstream-name . "ppx_tools_versioned")))
@@ -2062,8 +2052,7 @@ (define-public ocaml-result
"166laj8qk7466sdl037c6cjs4ac571hglw4l5qpyll6df07h6a7q"))))
(build-system dune-build-system)
(arguments
- `(#:test-target "."
- #:dune ,dune-bootstrap))
+ `(#:dune ,dune-bootstrap))
(properties `((ocaml4.09-variant . ,(delay ocaml4.09-result))))
(home-page "https://github.com/janestreet/result")
(synopsis "Compatibility Result module")
@@ -2077,8 +2066,7 @@ (define-public ocaml4.09-result
(inherit ocaml-result)
(name "ocaml4.09-result")
(arguments
- `(#:test-target "."
- #:dune ,ocaml4.09-dune-bootstrap
+ `(#:dune ,ocaml4.09-dune-bootstrap
#:ocaml ,ocaml-4.09
#:findlib ,ocaml4.09-findlib))))
@@ -2215,8 +2203,7 @@ (define-public ocaml-csv
"0y2hlqlmqs7r4y5mfzc5qdv7gdp3wxbwpz458vf7fj4593vg94cf"))))
(build-system dune-build-system)
(arguments
- `(#:package "csv"
- #:test-target "."))
+ `(#:package "csv"))
(home-page "https://github.com/Chris00/ocaml-csv")
(synopsis "Pure OCaml functions to read and write CSV")
(description
@@ -2454,7 +2441,6 @@ (define-public ocaml-alcotest
(build-system dune-build-system)
(arguments
`(#:package "alcotest"
- #:test-target "."
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-test-format
@@ -2499,8 +2485,7 @@ (define-public ocaml4.07-alcotest
(base32
"1frwi185z4aadmaf0vp8xk5227nyg7nmh28ijj5l7ncjr5slvhz8"))))
(arguments
- `(#:package "alcotest"
- #:test-target "."))
+ `(#:package "alcotest"))
(properties '()))))
(define-public ocaml-ppx-tools
@@ -2573,8 +2558,6 @@ (define-public ocaml-ssl
(sha256 (base32
"1bg5vagklq6yfxsvcnj2i76xis8hb59088hkic82smyrxdjd1kjs"))))
(build-system dune-build-system)
- (arguments
- `(#:test-target "."))
(native-inputs
(list autoconf automake ocaml-alcotest which))
(propagated-inputs (list openssl))
@@ -2905,8 +2888,7 @@ (define-public ocaml-gen
"1z5nw5wljvcqp8q07h336bbvf9paynia0jsdh4486hlkbmr1ask1"))))
(build-system dune-build-system)
(arguments
- `(#:package "gen"
- #:test-target "."))
+ `(#:package "gen"))
(propagated-inputs
(list ocaml-odoc ocaml-seq))
(native-inputs
@@ -3166,8 +3148,6 @@ (define-public ocaml-ocp-indent
(base32
"1dvcl108ir9nqkk4mjm9xhhj4p9dx9bmg8bnms54fizs1x3x8ar3"))))
(build-system dune-build-system)
- (arguments
- `(#:test-target "tests"))
(propagated-inputs
(list ocaml-cmdliner))
(home-page "https://www.typerex.org/ocp-indent.html")
@@ -3391,7 +3371,6 @@ (define-public ocaml-benchmark
(sha256
(base32 "0d0vdfjgjzf1y6wkd714d8b0piv1z9qav5ahsapynqzk4b4ahhnp"))))
(build-system dune-build-system)
- (arguments `(#:test-target "tests"))
(home-page "https://github.com/Chris00/ocaml-benchmark")
(synopsis "Benchmark running times of code")
(description
@@ -3708,8 +3687,6 @@ (define-public ocaml-re
(sha256
(base32 "1g0vmpx6ylv8m0w77zarn215pgb4czc6gcpb2fi5da1s307zwr0w"))))
(build-system dune-build-system)
- (arguments
- `(#:test-target "."))
(propagated-inputs
(list ocaml-seq))
(native-inputs
@@ -3732,8 +3709,7 @@ (define-public ocaml4.07-re
(package
(inherit ocaml-re)
(arguments
- `(#:test-target "."
- #:phases
+ `(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-dune-version
(lambda _
@@ -3754,8 +3730,6 @@ (define-public ocaml-ocplib-endian
"1klj4g451s7m5r8bxmwc1rpvngpqdm40csnx9smgc06pwy2fax2c"))
(file-name (git-file-name name version))))
(build-system dune-build-system)
- (arguments
- `(#:test-target "tests"))
(native-inputs
`(("cppo" ,ocaml-cppo)))
(home-page "https://github.com/OCamlPro/ocplib-endian")
@@ -3782,8 +3756,7 @@ (define-public ocaml-cstruct
"0dpbirs6lzp0bclr3wcw407jjspll7iy66z18zks3mjccvlxd21w"))))
(build-system dune-build-system)
(arguments
- `(#:package "cstruct"
- #:test-target "."))
+ `(#:package "cstruct"))
(propagated-inputs
(list ocaml-bigarray-compat))
(native-inputs
@@ -3826,8 +3799,6 @@ (define-public ocaml-hex
(base32
"0xnl5wxd2qrba7phm3mdrjwd2kk26kb17dv94ciwp49ljcj28qc1"))))
(build-system dune-build-system)
- (arguments
- `(#:test-target "."))
(propagated-inputs
`(("ocaml-bigarray-compat" ,ocaml-bigarray-compat)
("cstruct" ,ocaml-cstruct)))
@@ -3851,8 +3822,7 @@ (define-public ocaml-ezjsonm
(base32 "004knljxqxn9zq0rnq7q7wxl4nwlzydm8p9f5cqkl8il5yl5zkjm"))))
(build-system dune-build-system)
(arguments
- `(#:package "ezjsonm"
- #:test-target "."))
+ `(#:package "ezjsonm"))
(native-inputs (list ocaml-alcotest js-of-ocaml node))
(propagated-inputs (list ocaml-jsonm ocaml-uutf ocaml-sexplib0 ocaml-hex))
(home-page "https://github.com/mirage/ezjsonm/")
@@ -3879,8 +3849,7 @@ (define-public ocaml-uri
(base32
"1bgkc66cq00mgnkz3i535srwzwc4cpdsv0mly5dzvvq33451xwf0"))))
(build-system dune-build-system)
- (arguments '(#:package "uri"
- #:test-target "."))
+ (arguments '(#:package "uri"))
(propagated-inputs
(list ocaml-stringext ocaml-angstrom))
(native-inputs
@@ -3906,8 +3875,7 @@ (define-public ocaml4.07-uri
(base32 "1ppbav41mszpjcl0zi3fyg958cxyfs57i7kvha4ds9ydn89bjmrh"))))
(build-system dune-build-system)
(arguments
- `(#:test-target "."
- #:phases
+ `(#:phases
(modify-phases %standard-phases
(add-before 'build 'update-deprecated
(lambda _
@@ -4330,8 +4298,6 @@ (define-public ocaml-zed
ocaml-uucp
ocaml-uuseg
ocaml-odoc))
- (arguments
- `(#:test-target "."))
(properties `((ocaml4.07-variant . ,(delay ocaml4.07-zed))))
(synopsis "Abstract engine for text edition in OCaml")
(description
@@ -4379,8 +4345,6 @@ (define-public ocaml-lambda-term
(base32
"1pkamblc6h0rsbk901cqn3xr9gqa3g8wrwyx5zryaqvb2xpbhp8b"))))
(build-system dune-build-system)
- (arguments
- `(#:test-target "."))
(propagated-inputs
(list ocaml-logs
ocaml-lwt
@@ -4434,8 +4398,6 @@ (define-public ocaml-utop
(sha256
(base32 "1pcix3h9f7is06581iax4i08zkd6sv8y5hy1vvxhqhcsd9z0qfl3"))))
(build-system dune-build-system)
- (arguments
- `(#:test-target "."))
(native-inputs
(list ocaml-cppo))
(propagated-inputs
@@ -4490,8 +4452,6 @@ (define-public ocaml-ansiterminal
(base32
"052qnc23vmxp90yympjz9q6lhqw98gs1yvb3r15kcbi1j678l51h"))))
(build-system dune-build-system)
- (arguments
- `(#:test-target "tests"))
(properties `((upstream-name . "ANSITerminal")))
(home-page "https://github.com/Chris00/ANSITerminal")
(synopsis
@@ -4843,8 +4803,6 @@ (define-public ocaml-bindlib
(base32
"1viyws3igy49hfaj4jaiwm4iggck9zdn7r3g6kh1n4zxphqk57yk"))))
(build-system dune-build-system)
- (arguments
- `(#:test-target "."))
(native-inputs
(list ocamlbuild ocaml-findlib))
(home-page "https://rlepigre.github.io/ocaml-bindlib/")
@@ -4871,8 +4829,6 @@ (define-public ocaml-earley
(base32
"1vi58zdxchpw6ai0bz9h2ggcmg8kv57yk6qbx82lh47s5wb3mz5y"))))
(build-system dune-build-system)
- (arguments
- `(#:test-target "."))
(propagated-inputs
(list ocaml-stdlib-shims))
(synopsis "Parsing library based on Earley Algorithm")
@@ -4897,8 +4853,6 @@ (define-public ocaml-timed
"1aqmkpjv5jk95lc2m3qyyrhw8ra7n9wj8pv3bfc83l737zv0hjn1"))
(file-name (git-file-name name version))))
(build-system dune-build-system)
- (arguments
- '(#:test-target "."))
(synopsis "Timed references for imperative state")
(description "Timed references for imperative state. This module provides
an alternative type for references (or mutable cells) supporting undo/redo
@@ -4963,8 +4917,7 @@ (define-public ocaml-yojson
"1habsh00ihjhk1g1csxqg3hj8izk5zvgc7wm579wyjw35vzcmwr1"))))
(build-system dune-build-system)
(arguments
- `(#:test-target "."
- #:package "yojson"))
+ `(#:package "yojson"))
(propagated-inputs (list ocaml-seq))
(native-inputs (list ocaml-alcotest ocaml-cppo))
(synopsis "Low-level JSON library for OCaml")
@@ -5050,8 +5003,7 @@ (define-public ocaml-gsl
"1l5zkkkg8sglsihrbf10ivq9s8xzl1y6ag89i4jqpnmi4m43fy34"))))
(build-system dune-build-system)
(arguments
- `(#:test-target "."
- #:phases
+ `(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-gsl-directory
(lambda* (#:key inputs #:allow-other-keys)
@@ -5421,8 +5373,6 @@ (define-public ocaml-ppx-deriving
(base32
"1wqcnw4wi6pfjjhixpakckm03dpj990259za432804471a6spm2j"))))
(build-system dune-build-system)
- (arguments
- `(#:test-target "."))
(propagated-inputs
(list ocaml-ppx-derivers ocaml-ppxlib ocaml-result))
(native-inputs
@@ -6468,7 +6418,6 @@ (define-public ocaml-ppx-cold
(janestreet-origin "ppx_cold" version
"13gqmfw2sq80anag9bwpm35600l1fnfn7mh9cbj1291k84rsx7wb"))
(build-system dune-build-system)
- (arguments `(#:test-target "tests"))
(propagated-inputs
(list ocaml-base ocaml-ppxlib))
(properties `((upstream-name . "ppx_cold")))
@@ -6630,8 +6579,6 @@ (define-public ocaml-ppx-typerep-conv
(sha256
(base32 "1q1lzykpm83ra4l5jh4rfddhd3c96kx4s4rvx0w4b51z1qk56zam"))))
(build-system dune-build-system)
- (arguments
- `(#:test-target "."))
(propagated-inputs (list ocaml-base ocaml-typerep ocaml-ppxlib))
(properties `((upstream-name . "ppx_typerep_conv")
(ocaml4.07-variant . ,(delay ocaml4.07-ppx-typerep-conv))))
@@ -6697,8 +6644,6 @@ (define-public ocaml-ppx-stable
(sha256
(base32 "1as0v0x8c9ilyhngax55lvwyyi4a2wshyan668v0f2s1608cwb1l"))))
(build-system dune-build-system)
- (arguments
- `(#:test-target "tests"))
(propagated-inputs (list ocaml-base ocaml-ppxlib))
(properties `((upstream-name . "ppx_stable")))
(home-page "https://github.com/janestreet/ppx_stable")
@@ -6716,8 +6661,6 @@ (define-public ocaml-ppx-base
"ppx_base" version
"181w7y2has8jsrqdsvd08q5nhnkx523vwsk3lg0cjix55qssvfyn"))
(build-system dune-build-system)
- (arguments
- `(#:test-target "."))
(propagated-inputs
(list ocaml-ppx-compare
ocaml-ppx-cold
@@ -6873,8 +6816,6 @@ (define-public ocaml-ppx-disable-unused-warnings
(sha256
(base32 "0sb5i4v7p9df2bxk66rjs30k9fqdrwsq1jgykjv6wyrx2d9bv955"))))
(build-system dune-build-system)
- (arguments
- `(#:test-target "tests"))
(propagated-inputs (list ocaml-base ocaml-ppxlib))
(properties `((upstream-name . "ppx_disable_unused_warnings")))
(home-page "https://github.com/janestreet/ppx_disable_unused_warnings")
@@ -6897,8 +6838,6 @@ (define-public ocaml-ppx-jane
(sha256
(base32 "1p6847gdfnnj6qpa4yh57s6wwpsl7rfgy0q7993chz24h9mhz5lk"))))
(build-system dune-build-system)
- (arguments
- `(#:test-target "."))
(propagated-inputs
(list ocaml-base-quickcheck
ocaml-ppx-assert
@@ -7091,8 +7030,7 @@ (define-public ocaml4.07-jane-street-headers
"0afhzm08l9v883fhpqqh2lmy7az609pxif40bp7x1sk8c0yszqsh"))))
(build-system dune-build-system)
(arguments
- `(#:test-target "."
- #:ocaml ,ocaml-4.07
+ `(#:ocaml ,ocaml-4.07
#:findlib ,ocaml4.07-findlib
#:dune ,ocaml4.07-dune))
(home-page "https://github.com/janestreet/jane-street-headers")
@@ -7565,8 +7503,7 @@ (define-public ocaml4.07-bisect-ppx
(native-inputs
`(("ocaml-ounit2" ,ocaml-ounit2)))
(arguments
- `(#:test-target "."
- ;; tests require git and network
+ `(;; tests require git and network
#:tests? #f))
(properties '((upstream-name . "bisect_ppx"))))))
@@ -7707,8 +7644,6 @@ (define-public ocaml-fftw3
(base32
"07ljbin9dsclsqh24p7haqjccz1w828sf5xfwlzl298d4a6zsbhs"))))
(build-system dune-build-system)
- (arguments
- `(#:test-target "tests"))
(propagated-inputs
(list fftw fftwf))
(native-inputs
@@ -7768,8 +7703,6 @@ (define-public ocaml-cairo2
(base32
"06ag9b88ihhr7yd3s9l0ac7ysig02fmlmsswybbsvz71ni0mb105"))))
(build-system dune-build-system)
- (arguments
- `(#:test-target "tests"))
(inputs
`(("cairo" ,cairo)
("gtk+-2" ,gtk+-2)
@@ -7941,7 +7874,18 @@ (define-public lablgtk3
(build-system dune-build-system)
(arguments
`(#:package "lablgtk3"
- #:test-target "."))
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'make-writable
+ (lambda _
+ (for-each (lambda (file)
+ (chmod file #o644))
+ (find-files "." "."))))
+ (add-before 'build 'set-version
+ (lambda _
+ (substitute* "dune-project"
+ (("\\(name lablgtk3\\)")
+ (string-append "(name lablgtk3)\n(version " ,version ")"))))))))
(propagated-inputs
(list ocaml-cairo2 ocaml-camlp-streams))
(inputs
@@ -7966,8 +7910,7 @@ (define-public ocaml-lablgtk3-sourceview3
(propagated-inputs (list lablgtk3))
(native-inputs (list gtksourceview-3 pkg-config))
(arguments
- `(#:package "lablgtk3-sourceview3"
- #:test-target "."))
+ `(#:package "lablgtk3-sourceview3"))
(synopsis "OCaml interface to GTK+ gtksourceview library")
(description "This package provides the lablgtk interface to the
GTK+ gtksourceview library.")))
@@ -8228,8 +8171,6 @@ (define-public ocaml-bigstringaf
(base32
"188j9awxg99vrp2l3rqfmdxdazq5xrjmg1wf62vfqsks9sff6wqx"))))
(build-system dune-build-system)
- (arguments
- '(#:test-target "."))
(propagated-inputs
(list ocaml-bigarray-compat))
(native-inputs
@@ -8361,8 +8302,7 @@ (define-public ocaml-angstrom
(build-system dune-build-system)
(arguments
;; Only build the base angstrom package.
- '(#:package "angstrom"
- #:test-target "."))
+ '(#:package "angstrom"))
(propagated-inputs
(list ocaml-bigstringaf))
(native-inputs
@@ -8409,8 +8349,7 @@ (define-public ocaml-uri-sexp
(inherit ocaml-uri)
(name "ocaml-uri-sexp")
(arguments
- '(#:package "uri-sexp"
- #:test-target "."))
+ '(#:package "uri-sexp"))
(propagated-inputs
(list ocaml-uri ocaml-ppx-sexp-conv ocaml-sexplib0))
(native-inputs (list ocaml-ounit))
@@ -8468,8 +8407,8 @@ (define-public js-of-ocaml
(base32 "14ig69iyc9yzniclfsc6cz9g9zqp96bs66y6dy4rzrm78s81w6i1"))))
(build-system dune-build-system)
(arguments
- `(#:tests? #f ;tests assume ocaml 4.13
- #:test-target "."))
+ ;;tests assume ocaml 4.13
+ `(#:tests? #f))
(propagated-inputs
(list ocaml-ppxlib
ocaml-uchar
@@ -8568,8 +8507,6 @@ (define-public ocaml-crowbar
(base32
"11f3kiw58g8njx15akx16xcplzvzdw9y6c4jpyfxylkxws4g0f6j"))))
(build-system dune-build-system)
- (arguments
- `(#:test-target "."))
(propagated-inputs
(list ocaml-ocplib-endian
ocaml-cmdliner
--
2.38.1
P
P
pukkamustard wrote on 10 Jan 2023 21:24
Re: [bug#59487] [PATCH 1/2] build-system/dune: Automatically deduce test-target in most cases.
(name . raingloom)(address . raingloom@riseup.net)
86eds2nncy.fsf@posteo.net
Hi! Sorry, I missed these patches and only found them after realizing
that your Mirage patches require these.

I'm having trouble applying the second patch (of V2), maybe there have
been changes that cause conflicts? Could you rebase on master or just
resend the V2 patches to 59487@debbugs.gnu.org? Maybe with a short
comment if and how they address Julien's suggestion?

-pukkamustard

raingloom <raingloom@riseup.net> writes:

Toggle quote (44 lines)
> guix/build-system/dune.scm (dune-build): tests? defaults to #f.
> guix/build/dune-build-system.scm (check): Missing test-target is auto-detected.
> ---
> guix/build-system/dune.scm | 2 +-
> guix/build/dune-build-system.scm | 9 +++++++--
> 2 files changed, 8 insertions(+), 3 deletions(-)
>
> diff --git a/guix/build-system/dune.scm b/guix/build-system/dune.scm
> index 12100fd8e8..b531d3c337 100644
> --- a/guix/build-system/dune.scm
> +++ b/guix/build-system/dune.scm
> @@ -107,7 +107,7 @@ (define* (dune-build name inputs
> (dune-release-flags ''())
> (tests? #t)
> (test-flags ''())
> - (test-target "test")
> + (test-target #f)
> (install-target "install")
> (validate-runpath? #t)
> (patch-shebangs? #t)
> diff --git a/guix/build/dune-build-system.scm b/guix/build/dune-build-system.scm
> index e9ccc71057..8a3725a4e9 100644
> --- a/guix/build/dune-build-system.scm
> +++ b/guix/build/dune-build-system.scm
> @@ -42,12 +42,17 @@ (define* (build #:key (build-flags '()) (jbuild? #f)
> build-flags)))
> #t)
>
> -(define* (check #:key (test-flags '()) (test-target "test") tests?
> +(define* (check #:key (test-flags '()) (test-target #f) tests?
> (jbuild? #f) (package #f) (dune-release-flags '())
> #:allow-other-keys)
> "Test the given package."
> (when tests?
> - (let ((program (if jbuild? "jbuilder" "dune")))
> + (let ((program (if jbuild? "jbuilder" "dune"))
> + (test-target (or test-target
> + (cond
> + ((file-exists? "tests") "tests")
> + ((file-exists? "test") "test")
> + (else ".")))))
> (apply invoke program "runtest" test-target
> (append (if package (list "-p" package)
> dune-release-flags)
C
[PATCH v2 1/2] build-system/dune: Automatically deduce test-target in most cases.
(address . 59487@debbugs.gnu.org)
20230111174003.2227-1-raingloom@riseup.net
From: raingloom <raingloom@riseup.net>

guix/build-system/dune.scm (dune-build): tests? defaults to #f.
guix/build/dune-build-system.scm (check): Missing test-target is auto-detected.
---
guix/build-system/dune.scm | 2 +-
guix/build/dune-build-system.scm | 14 ++++++++++----
2 files changed, 11 insertions(+), 5 deletions(-)

Toggle diff (44 lines)
diff --git a/guix/build-system/dune.scm b/guix/build-system/dune.scm
index 12100fd8e8..b531d3c337 100644
--- a/guix/build-system/dune.scm
+++ b/guix/build-system/dune.scm
@@ -107,7 +107,7 @@ (define* (dune-build name inputs
(dune-release-flags ''())
(tests? #t)
(test-flags ''())
- (test-target "test")
+ (test-target #f)
(install-target "install")
(validate-runpath? #t)
(patch-shebangs? #t)
diff --git a/guix/build/dune-build-system.scm b/guix/build/dune-build-system.scm
index e9ccc71057..e1337a3f82 100644
--- a/guix/build/dune-build-system.scm
+++ b/guix/build/dune-build-system.scm
@@ -42,14 +42,20 @@ (define* (build #:key (build-flags '()) (jbuild? #f)
build-flags)))
#t)
-(define* (check #:key (test-flags '()) (test-target "test") tests?
+(define* (check #:key (test-flags '()) (test-target #f) tests?
(jbuild? #f) (package #f) (dune-release-flags '())
#:allow-other-keys)
"Test the given package."
(when tests?
- (let ((program (if jbuild? "jbuilder" "dune")))
- (apply invoke program "runtest" test-target
- (append (if package (list "-p" package)
+ (let ((program (if jbuild? "jbuilder" "dune"))
+ (test-target (or test-target
+ (cond
+ ((file-exists? "tests") "tests")
+ ((file-exists? "test") "test")
+ (else ".")))))
+ (apply invoke program "runtest"
+ (append (if test-target (list test-target) '())
+ (if package (list "-p" package)
dune-release-flags)
test-flags))))
#t)
--
2.38.1
C
[PATCH v2 2/2] gnu: Remove explicit test-target arguments in ocaml.scm.
(address . 59487@debbugs.gnu.org)
20230111174003.2227-2-raingloom@riseup.net
From: raingloom <raingloom@riseup.net>

gnu/packages/ocaml.scm: Delete test-target if it's ".", "test", or "tests".
---
gnu/packages/ocaml.scm | 129 +++++++++++------------------------------
1 file changed, 33 insertions(+), 96 deletions(-)

Toggle diff (485 lines)
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index 5109cd052a..c3a586f091 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -664,8 +664,6 @@ (define-public ocaml-cudf
(base32
"1lvrmpscbk1kjv5ag5bzlzv520xk5zw2haf6q7chvz98gcm9g0hk"))))
(build-system dune-build-system)
- (arguments
- '(#:test-target "."))
(propagated-inputs (list ocaml-extlib))
(native-inputs (list ocaml-ounit2))
(home-page "https://www.mancoosi.org/cudf/")
@@ -855,8 +853,7 @@ (define-public opam
"1mw535zsw7xlvpgwnk1dan76z3f7lh5imlg0s6kdyhfg0iqisjd7"))))
(build-system dune-build-system)
(arguments
- `(#:test-target "."
- #:phases
+ `(#:phases
(modify-phases %standard-phases
(add-before 'build 'pre-build
(lambda* (#:key inputs make-flags #:allow-other-keys)
@@ -1699,8 +1696,6 @@ (define-public ocaml-qcheck
(sha256
(base32 "1r0m5p1dd06lbgfxqdpl1ya4vb8252z7hqkvdi9k444g4rx2ay3p"))))
(build-system dune-build-system)
- (arguments
- `(#:test-target "."))
(propagated-inputs
(list ocaml-alcotest ocaml-ounit ocaml-ppxlib))
(native-inputs
@@ -1744,8 +1739,6 @@ (define-public ocaml-qtest
(base32
"04ghjshh6104xyglm0db9kv90m62qla5f4bfrlndv6dsvgw3rdjl"))))
(build-system dune-build-system)
- (arguments
- `(#:test-target "tests"))
(propagated-inputs
`(("ounit" ,ocaml-ounit)
("qcheck" ,ocaml-qcheck)))
@@ -1771,8 +1764,6 @@ (define-public ocaml-stringext
(base32
"1m09cmn3vrk3gdm60fb730qsygcfyxsyv7gl9xfzck08q1x2x9qx"))))
(build-system dune-build-system)
- (arguments
- `(#:test-target "."))
(native-inputs
`(("ocamlbuild" ,ocamlbuild)
("qtest" ,ocaml-qtest)))
@@ -2047,8 +2038,7 @@ (define-public ocaml4.07-ppx-tools-versioned
"07lnj4yzwvwyh5fhpp1dxrys4ddih15jhgqjn59pmgxinbnddi66"))))
(build-system dune-build-system)
(arguments
- `(#:test-target "."
- #:package "ppx_tools_versioned"))
+ `(#:package "ppx_tools_versioned"))
(propagated-inputs
(list ocaml-migrate-parsetree))
(properties `((upstream-name . "ppx_tools_versioned")))
@@ -2167,8 +2157,7 @@ (define-public ocaml-result
"166laj8qk7466sdl037c6cjs4ac571hglw4l5qpyll6df07h6a7q"))))
(build-system dune-build-system)
(arguments
- `(#:test-target "."
- #:dune ,dune-bootstrap))
+ `(#:dune ,dune-bootstrap))
(properties `((ocaml4.09-variant . ,(delay ocaml4.09-result))
(ocaml5.0-variant . ,(delay ocaml5.0-result))))
(home-page "https://github.com/janestreet/result")
@@ -2183,8 +2172,7 @@ (define-public ocaml4.09-result
(inherit ocaml-result)
(name "ocaml4.09-result")
(arguments
- `(#:test-target "."
- #:dune ,ocaml4.09-dune-bootstrap
+ `(#:dune ,ocaml4.09-dune-bootstrap
#:ocaml ,ocaml-4.09
#:findlib ,ocaml4.09-findlib))))
@@ -2331,8 +2319,7 @@ (define-public ocaml-csv
"0y2hlqlmqs7r4y5mfzc5qdv7gdp3wxbwpz458vf7fj4593vg94cf"))))
(build-system dune-build-system)
(arguments
- `(#:package "csv"
- #:test-target "."))
+ `(#:package "csv"))
(home-page "https://github.com/Chris00/ocaml-csv")
(synopsis "Pure OCaml functions to read and write CSV")
(description
@@ -2570,7 +2557,6 @@ (define-public ocaml-alcotest
(build-system dune-build-system)
(arguments
`(#:package "alcotest"
- #:test-target "."
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-test-format
@@ -2615,8 +2601,7 @@ (define-public ocaml4.07-alcotest
(base32
"1frwi185z4aadmaf0vp8xk5227nyg7nmh28ijj5l7ncjr5slvhz8"))))
(arguments
- `(#:package "alcotest"
- #:test-target "."))
+ `(#:package "alcotest"))
(properties '()))))
(define-public ocaml-ppx-tools
@@ -2689,8 +2674,6 @@ (define-public ocaml-ssl
(sha256 (base32
"1bg5vagklq6yfxsvcnj2i76xis8hb59088hkic82smyrxdjd1kjs"))))
(build-system dune-build-system)
- (arguments
- `(#:test-target "."))
(native-inputs
(list autoconf automake ocaml-alcotest which))
(propagated-inputs (list openssl))
@@ -3243,8 +3226,7 @@ (define-public ocaml-gen
"1z5nw5wljvcqp8q07h336bbvf9paynia0jsdh4486hlkbmr1ask1"))))
(build-system dune-build-system)
(arguments
- `(#:package "gen"
- #:test-target "."))
+ `(#:package "gen"))
(propagated-inputs
(list ocaml-odoc ocaml-seq))
(native-inputs
@@ -3504,8 +3486,6 @@ (define-public ocaml-ocp-indent
(base32
"1dvcl108ir9nqkk4mjm9xhhj4p9dx9bmg8bnms54fizs1x3x8ar3"))))
(build-system dune-build-system)
- (arguments
- `(#:test-target "tests"))
(propagated-inputs
(list ocaml-cmdliner))
(home-page "https://www.typerex.org/ocp-indent.html")
@@ -3729,7 +3709,6 @@ (define-public ocaml-benchmark
(sha256
(base32 "0d0vdfjgjzf1y6wkd714d8b0piv1z9qav5ahsapynqzk4b4ahhnp"))))
(build-system dune-build-system)
- (arguments `(#:test-target "tests"))
(home-page "https://github.com/Chris00/ocaml-benchmark")
(synopsis "Benchmark running times of code")
(description
@@ -4070,8 +4049,6 @@ (define-public ocaml-re
(sha256
(base32 "1g0vmpx6ylv8m0w77zarn215pgb4czc6gcpb2fi5da1s307zwr0w"))))
(build-system dune-build-system)
- (arguments
- `(#:test-target "."))
(propagated-inputs
(list ocaml-seq))
(native-inputs
@@ -4094,8 +4071,7 @@ (define-public ocaml4.07-re
(package
(inherit ocaml-re)
(arguments
- `(#:test-target "."
- #:phases
+ `(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-dune-version
(lambda _
@@ -4116,8 +4092,6 @@ (define-public ocaml-ocplib-endian
"1klj4g451s7m5r8bxmwc1rpvngpqdm40csnx9smgc06pwy2fax2c"))
(file-name (git-file-name name version))))
(build-system dune-build-system)
- (arguments
- `(#:test-target "tests"))
(native-inputs
`(("cppo" ,ocaml-cppo)))
(home-page "https://github.com/OCamlPro/ocplib-endian")
@@ -4144,8 +4118,7 @@ (define-public ocaml-cstruct
"0dpbirs6lzp0bclr3wcw407jjspll7iy66z18zks3mjccvlxd21w"))))
(build-system dune-build-system)
(arguments
- `(#:package "cstruct"
- #:test-target "."))
+ `(#:package "cstruct"))
(propagated-inputs
(list ocaml-bigarray-compat))
(native-inputs
@@ -4188,8 +4161,6 @@ (define-public ocaml-hex
(base32
"0xnl5wxd2qrba7phm3mdrjwd2kk26kb17dv94ciwp49ljcj28qc1"))))
(build-system dune-build-system)
- (arguments
- `(#:test-target "."))
(propagated-inputs
`(("ocaml-bigarray-compat" ,ocaml-bigarray-compat)
("cstruct" ,ocaml-cstruct)))
@@ -4213,8 +4184,7 @@ (define-public ocaml-ezjsonm
(base32 "004knljxqxn9zq0rnq7q7wxl4nwlzydm8p9f5cqkl8il5yl5zkjm"))))
(build-system dune-build-system)
(arguments
- `(#:package "ezjsonm"
- #:test-target "."))
+ `(#:package "ezjsonm"))
(native-inputs (list ocaml-alcotest js-of-ocaml node))
(propagated-inputs (list ocaml-jsonm ocaml-uutf ocaml-sexplib0 ocaml-hex))
(home-page "https://github.com/mirage/ezjsonm/")
@@ -4241,8 +4211,7 @@ (define-public ocaml-uri
(base32
"1bgkc66cq00mgnkz3i535srwzwc4cpdsv0mly5dzvvq33451xwf0"))))
(build-system dune-build-system)
- (arguments '(#:package "uri"
- #:test-target "."))
+ (arguments '(#:package "uri"))
(propagated-inputs
(list ocaml-stringext ocaml-angstrom))
(native-inputs
@@ -4268,8 +4237,7 @@ (define-public ocaml4.07-uri
(base32 "1ppbav41mszpjcl0zi3fyg958cxyfs57i7kvha4ds9ydn89bjmrh"))))
(build-system dune-build-system)
(arguments
- `(#:test-target "."
- #:phases
+ `(#:phases
(modify-phases %standard-phases
(add-before 'build 'update-deprecated
(lambda _
@@ -4692,8 +4660,6 @@ (define-public ocaml-zed
ocaml-uucp
ocaml-uuseg
ocaml-odoc))
- (arguments
- `(#:test-target "."))
(properties `((ocaml4.07-variant . ,(delay ocaml4.07-zed))))
(synopsis "Abstract engine for text edition in OCaml")
(description
@@ -4741,8 +4707,6 @@ (define-public ocaml-lambda-term
(base32
"1pkamblc6h0rsbk901cqn3xr9gqa3g8wrwyx5zryaqvb2xpbhp8b"))))
(build-system dune-build-system)
- (arguments
- `(#:test-target "."))
(propagated-inputs
(list ocaml-logs
ocaml-lwt
@@ -4796,8 +4760,6 @@ (define-public ocaml-utop
(sha256
(base32 "1pcix3h9f7is06581iax4i08zkd6sv8y5hy1vvxhqhcsd9z0qfl3"))))
(build-system dune-build-system)
- (arguments
- `(#:test-target "."))
(native-inputs
(list ocaml-cppo))
(propagated-inputs
@@ -4852,8 +4814,6 @@ (define-public ocaml-ansiterminal
(base32
"052qnc23vmxp90yympjz9q6lhqw98gs1yvb3r15kcbi1j678l51h"))))
(build-system dune-build-system)
- (arguments
- `(#:test-target "tests"))
(properties `((upstream-name . "ANSITerminal")))
(home-page "https://github.com/Chris00/ANSITerminal")
(synopsis
@@ -5233,8 +5193,6 @@ (define-public ocaml-bindlib
(base32
"1viyws3igy49hfaj4jaiwm4iggck9zdn7r3g6kh1n4zxphqk57yk"))))
(build-system dune-build-system)
- (arguments
- `(#:test-target "."))
(native-inputs
(list ocamlbuild ocaml-findlib))
(home-page "https://rlepigre.github.io/ocaml-bindlib/")
@@ -5261,8 +5219,6 @@ (define-public ocaml-earley
(base32
"1vi58zdxchpw6ai0bz9h2ggcmg8kv57yk6qbx82lh47s5wb3mz5y"))))
(build-system dune-build-system)
- (arguments
- `(#:test-target "."))
(propagated-inputs
(list ocaml-stdlib-shims))
(synopsis "Parsing library based on Earley Algorithm")
@@ -5287,8 +5243,6 @@ (define-public ocaml-timed
"1aqmkpjv5jk95lc2m3qyyrhw8ra7n9wj8pv3bfc83l737zv0hjn1"))
(file-name (git-file-name name version))))
(build-system dune-build-system)
- (arguments
- '(#:test-target "."))
(synopsis "Timed references for imperative state")
(description "Timed references for imperative state. This module provides
an alternative type for references (or mutable cells) supporting undo/redo
@@ -5353,8 +5307,7 @@ (define-public ocaml-yojson
"1habsh00ihjhk1g1csxqg3hj8izk5zvgc7wm579wyjw35vzcmwr1"))))
(build-system dune-build-system)
(arguments
- `(#:test-target "."
- #:package "yojson"))
+ `(#:package "yojson"))
(propagated-inputs (list ocaml-seq))
(native-inputs (list ocaml-alcotest ocaml-cppo))
(synopsis "Low-level JSON library for OCaml")
@@ -5504,8 +5457,7 @@ (define-public ocaml-gsl
"1l5zkkkg8sglsihrbf10ivq9s8xzl1y6ag89i4jqpnmi4m43fy34"))))
(build-system dune-build-system)
(arguments
- `(#:test-target "."
- #:phases
+ `(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-gsl-directory
(lambda* (#:key inputs #:allow-other-keys)
@@ -5898,8 +5850,6 @@ (define-public ocaml-ppx-deriving
(base32
"1wqcnw4wi6pfjjhixpakckm03dpj990259za432804471a6spm2j"))))
(build-system dune-build-system)
- (arguments
- `(#:test-target "."))
(propagated-inputs
(list ocaml-ppx-derivers ocaml-ppxlib ocaml-result))
(native-inputs
@@ -6945,7 +6895,6 @@ (define-public ocaml-ppx-cold
(janestreet-origin "ppx_cold" version
"13gqmfw2sq80anag9bwpm35600l1fnfn7mh9cbj1291k84rsx7wb"))
(build-system dune-build-system)
- (arguments `(#:test-target "tests"))
(propagated-inputs
(list ocaml-base ocaml-ppxlib))
(properties `((upstream-name . "ppx_cold")))
@@ -7130,8 +7079,6 @@ (define-public ocaml-ppx-typerep-conv
(sha256
(base32 "1q1lzykpm83ra4l5jh4rfddhd3c96kx4s4rvx0w4b51z1qk56zam"))))
(build-system dune-build-system)
- (arguments
- `(#:test-target "."))
(propagated-inputs (list ocaml-base ocaml-typerep ocaml-ppxlib))
(properties `((upstream-name . "ppx_typerep_conv")
(ocaml4.07-variant . ,(delay ocaml4.07-ppx-typerep-conv))))
@@ -7197,8 +7144,6 @@ (define-public ocaml-ppx-stable
(sha256
(base32 "1as0v0x8c9ilyhngax55lvwyyi4a2wshyan668v0f2s1608cwb1l"))))
(build-system dune-build-system)
- (arguments
- `(#:test-target "tests"))
(propagated-inputs (list ocaml-base ocaml-ppxlib))
(properties `((upstream-name . "ppx_stable")))
(home-page "https://github.com/janestreet/ppx_stable")
@@ -7216,8 +7161,6 @@ (define-public ocaml-ppx-base
"ppx_base" version
"181w7y2has8jsrqdsvd08q5nhnkx523vwsk3lg0cjix55qssvfyn"))
(build-system dune-build-system)
- (arguments
- `(#:test-target "."))
(propagated-inputs
(list ocaml-ppx-compare
ocaml-ppx-cold
@@ -7373,8 +7316,6 @@ (define-public ocaml-ppx-disable-unused-warnings
(sha256
(base32 "0sb5i4v7p9df2bxk66rjs30k9fqdrwsq1jgykjv6wyrx2d9bv955"))))
(build-system dune-build-system)
- (arguments
- `(#:test-target "tests"))
(propagated-inputs (list ocaml-base ocaml-ppxlib))
(properties `((upstream-name . "ppx_disable_unused_warnings")))
(home-page "https://github.com/janestreet/ppx_disable_unused_warnings")
@@ -7397,8 +7338,6 @@ (define-public ocaml-ppx-jane
(sha256
(base32 "1p6847gdfnnj6qpa4yh57s6wwpsl7rfgy0q7993chz24h9mhz5lk"))))
(build-system dune-build-system)
- (arguments
- `(#:test-target "."))
(propagated-inputs
(list ocaml-base-quickcheck
ocaml-ppx-assert
@@ -7591,8 +7530,7 @@ (define-public ocaml4.07-jane-street-headers
"0afhzm08l9v883fhpqqh2lmy7az609pxif40bp7x1sk8c0yszqsh"))))
(build-system dune-build-system)
(arguments
- `(#:test-target "."
- #:ocaml ,ocaml-4.07
+ `(#:ocaml ,ocaml-4.07
#:findlib ,ocaml4.07-findlib
#:dune ,ocaml4.07-dune))
(home-page "https://github.com/janestreet/jane-street-headers")
@@ -8065,8 +8003,7 @@ (define-public ocaml4.07-bisect-ppx
(native-inputs
`(("ocaml-ounit2" ,ocaml-ounit2)))
(arguments
- `(#:test-target "."
- ;; tests require git and network
+ `(;; tests require git and network
#:tests? #f))
(properties '((upstream-name . "bisect_ppx"))))))
@@ -8205,8 +8142,6 @@ (define-public ocaml-fftw3
(base32
"07ljbin9dsclsqh24p7haqjccz1w828sf5xfwlzl298d4a6zsbhs"))))
(build-system dune-build-system)
- (arguments
- `(#:test-target "tests"))
(propagated-inputs
(list fftw fftwf))
(native-inputs
@@ -8266,8 +8201,6 @@ (define-public ocaml-cairo2
(base32
"06ag9b88ihhr7yd3s9l0ac7ysig02fmlmsswybbsvz71ni0mb105"))))
(build-system dune-build-system)
- (arguments
- `(#:test-target "tests"))
(inputs
`(("cairo" ,cairo)
("gtk+-2" ,gtk+-2)
@@ -8439,7 +8372,18 @@ (define-public lablgtk3
(build-system dune-build-system)
(arguments
`(#:package "lablgtk3"
- #:test-target "."))
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'make-writable
+ (lambda _
+ (for-each (lambda (file)
+ (chmod file #o644))
+ (find-files "." "."))))
+ (add-before 'build 'set-version
+ (lambda _
+ (substitute* "dune-project"
+ (("\\(name lablgtk3\\)")
+ (string-append "(name lablgtk3)\n(version " ,version ")"))))))))
(propagated-inputs
(list ocaml-cairo2 ocaml-camlp-streams))
(inputs
@@ -8464,8 +8408,7 @@ (define-public ocaml-lablgtk3-sourceview3
(propagated-inputs (list lablgtk3))
(native-inputs (list gtksourceview-3 pkg-config))
(arguments
- `(#:package "lablgtk3-sourceview3"
- #:test-target "."))
+ `(#:package "lablgtk3-sourceview3"))
(synopsis "OCaml interface to GTK+ gtksourceview library")
(description "This package provides the lablgtk interface to the
GTK+ gtksourceview library.")))
@@ -8727,8 +8670,6 @@ (define-public ocaml-bigstringaf
(base32
"188j9awxg99vrp2l3rqfmdxdazq5xrjmg1wf62vfqsks9sff6wqx"))))
(build-system dune-build-system)
- (arguments
- '(#:test-target "."))
(propagated-inputs
(list ocaml-bigarray-compat))
(native-inputs
@@ -8860,8 +8801,7 @@ (define-public ocaml-angstrom
(build-system dune-build-system)
(arguments
;; Only build the base angstrom package.
- '(#:package "angstrom"
- #:test-target "."))
+ '(#:package "angstrom"))
(propagated-inputs
(list ocaml-bigstringaf))
(native-inputs
@@ -8908,8 +8848,7 @@ (define-public ocaml-uri-sexp
(inherit ocaml-uri)
(name "ocaml-uri-sexp")
(arguments
- '(#:package "uri-sexp"
- #:test-target "."))
+ '(#:package "uri-sexp"))
(propagated-inputs
(list ocaml-uri ocaml-ppx-sexp-conv ocaml-sexplib0))
(native-inputs (list ocaml-ounit))
@@ -8967,8 +8906,8 @@ (define-public js-of-ocaml
(base32 "14ig69iyc9yzniclfsc6cz9g9zqp96bs66y6dy4rzrm78s81w6i1"))))
(build-system dune-build-system)
(arguments
- `(#:tests? #f ;tests assume ocaml 4.13
- #:test-target "."))
+ ;;tests assume ocaml 4.13
+ `(#:tests? #f))
(propagated-inputs
(list ocaml-ppxlib
ocaml-uchar
@@ -9092,8 +9031,6 @@ (define-public ocaml-crowbar
(base32
"11f3kiw58g8njx15akx16xcplzvzdw9y6c4jpyfxylkxws4g0f6j"))))
(build-system dune-build-system)
- (arguments
- `(#:test-target "."))
(propagated-inputs
(list ocaml-ocplib-endian
ocaml-cmdliner
--
2.38.1
C
Re: [bug#59487] [PATCH 1/2] build-system/dune: Automatically deduce test-target in most cases.
(name . pukkamustard)(address . pukkamustard@posteo.net)
861qo1t1au.fsf@riseup.net
pukkamustard <pukkamustard@posteo.net> writes:

Toggle quote (10 lines)
> Hi! Sorry, I missed these patches and only found them after realizing
> that your Mirage patches require these.
>
> I'm having trouble applying the second patch (of V2), maybe there have
> been changes that cause conflicts? Could you rebase on master or just
> resend the V2 patches to 59487@debbugs.gnu.org? Maybe with a short
> comment if and how they address Julien's suggestion?
>
> -pukkamustard

Sent a rebased V2 just now. The runtest invocation looks like Julien's
suggestion, so I think I addressed it.
P
P
pukkamustard wrote on 12 Jan 2023 16:42
Re: [PATCH v2 1/2] build-system/dune: Automatically deduce test-target in most cases.
(name . Csepp)(address . raingloom@riseup.net)
86r0vzwxpb.fsf@posteo.net
Thanks for this! I think it is a valuable improvement.

Csepp <raingloom@riseup.net> writes:

Toggle quote (4 lines)
> From: raingloom <raingloom@riseup.net>
>
> guix/build-system/dune.scm (dune-build): tests? defaults to #f.

This should be: "test-target defaults to #f".

Toggle quote (13 lines)
> + (let ((program (if jbuild? "jbuilder" "dune"))
> + (test-target (or test-target
> + (cond
> + ((file-exists? "tests") "tests")
> + ((file-exists? "test") "test")
> + (else ".")))))
> + (apply invoke program "runtest"
> + (append (if test-target (list test-target) '())
> + (if package (list "-p" package)
> dune-release-flags)
> test-flags))))
> #t)

I think what Julien ment (and I agree) is that you can completely drop
the checks for the files/directories "tests" or "test" to exist.

In your patch, if test-target is #f and "test" or "tests" do not exist,
then the we will run:

`dune runtest -p package .`

but we could (and maybe should) run just:

`dune runtest -p package`

In fact, we should run this even if the "test" or "tests" directories
exist (otherwise we might miss running some tests placed in other
directories).

So this would be enough:

Toggle quote (7 lines)
> + (let ((program (if jbuild? "jbuilder" "dune")))
> + (apply invoke program "runtest"
> + (append (if test-target (list test-target) '())
> + (if package (list "-p" package)
> dune-release-flags)
> test-flags)))

Thinking of this, maybe we can drop the `test-target` argument
completely. wdyt?

-pukkamustard
P
P
pukkamustard wrote on 12 Jan 2023 19:44
(name . Csepp)(address . raingloom@riseup.net)
86mt6nwpvr.fsf@posteo.net
pukkamustard <pukkamustard@posteo.net> writes:

Toggle quote (3 lines)
> Thinking of this, maybe we can drop the `test-target` argument
> completely. wdyt?

Yeah, I'm pretty sure we should drop the test-target argument. I don't
see any reason why it should be used with the dune build-system.

The two remaining packages that have a test-target that is not "test",
"tests" or "." (and do not have tests disabled):

- ocaml-frontc: Builds as expected when test-target is removed.
- ocaml-cohttp: test-target points to a test helper library, not the
tests themselves. Removing the test-target runs the tests, which
currently fail.

-pukkamustard
C
(name . pukkamustard)(address . pukkamustard@posteo.net)
86mt6npmmb.fsf@riseup.net
pukkamustard <pukkamustard@posteo.net> writes:

Toggle quote (53 lines)
> Thanks for this! I think it is a valuable improvement.
>
> Csepp <raingloom@riseup.net> writes:
>
>> From: raingloom <raingloom@riseup.net>
>>
>> guix/build-system/dune.scm (dune-build): tests? defaults to #f.
>
> This should be: "test-target defaults to #f".
>
>> + (let ((program (if jbuild? "jbuilder" "dune"))
>> + (test-target (or test-target
>> + (cond
>> + ((file-exists? "tests") "tests")
>> + ((file-exists? "test") "test")
>> + (else ".")))))
>> + (apply invoke program "runtest"
>> + (append (if test-target (list test-target) '())
>> + (if package (list "-p" package)
>> dune-release-flags)
>> test-flags))))
>> #t)
>
> I think what Julien ment (and I agree) is that you can completely drop
> the checks for the files/directories "tests" or "test" to exist.
>
> In your patch, if test-target is #f and "test" or "tests" do not exist,
> then the we will run:
>
> `dune runtest -p package .`
>
> but we could (and maybe should) run just:
>
> `dune runtest -p package`
>
> In fact, we should run this even if the "test" or "tests" directories
> exist (otherwise we might miss running some tests placed in other
> directories).
>
> So this would be enough:
>
>> + (let ((program (if jbuild? "jbuilder" "dune")))
>> + (apply invoke program "runtest"
>> + (append (if test-target (list test-target) '())
>> + (if package (list "-p" package)
>> dune-release-flags)
>> test-flags)))
>
> Thinking of this, maybe we can drop the `test-target` argument
> completely. wdyt?
>
> -pukkamustard

Hmm, makes sense. I'll test what complete removal does.
C
(name . pukkamustard)(address . pukkamustard@posteo.net)
86fscfphy8.fsf@riseup.net
Csepp <raingloom@riseup.net> writes:

Toggle quote (57 lines)
> pukkamustard <pukkamustard@posteo.net> writes:
>
>> Thanks for this! I think it is a valuable improvement.
>>
>> Csepp <raingloom@riseup.net> writes:
>>
>>> From: raingloom <raingloom@riseup.net>
>>>
>>> guix/build-system/dune.scm (dune-build): tests? defaults to #f.
>>
>> This should be: "test-target defaults to #f".
>>
>>> + (let ((program (if jbuild? "jbuilder" "dune"))
>>> + (test-target (or test-target
>>> + (cond
>>> + ((file-exists? "tests") "tests")
>>> + ((file-exists? "test") "test")
>>> + (else ".")))))
>>> + (apply invoke program "runtest"
>>> + (append (if test-target (list test-target) '())
>>> + (if package (list "-p" package)
>>> dune-release-flags)
>>> test-flags))))
>>> #t)
>>
>> I think what Julien ment (and I agree) is that you can completely drop
>> the checks for the files/directories "tests" or "test" to exist.
>>
>> In your patch, if test-target is #f and "test" or "tests" do not exist,
>> then the we will run:
>>
>> `dune runtest -p package .`
>>
>> but we could (and maybe should) run just:
>>
>> `dune runtest -p package`
>>
>> In fact, we should run this even if the "test" or "tests" directories
>> exist (otherwise we might miss running some tests placed in other
>> directories).
>>
>> So this would be enough:
>>
>>> + (let ((program (if jbuild? "jbuilder" "dune")))
>>> + (apply invoke program "runtest"
>>> + (append (if test-target (list test-target) '())
>>> + (if package (list "-p" package)
>>> dune-release-flags)
>>> test-flags)))
>>
>> Thinking of this, maybe we can drop the `test-target` argument
>> completely. wdyt?
>>
>> -pukkamustard
>
> Hmm, makes sense. I'll test what complete removal does.

Well ocaml-ppxlib fails and I should be working my MirageOS thesis
stuff, so I'll leave this up to you. Or I'll get back to it once I
figure out how cross-toolchains are supposed to work.
P
P
pukkamustard wrote on 13 Jan 2023 11:54
[PATCH v3 0/6] guix: dune-build-system: Run all tests.
(address . 59487@debbugs.gnu.org)
20230113105440.28258-1-pukkamustard@posteo.net
This removes the usage of the `test-target` argument from dune-build-system
completely. Dune automatically finds tests for packages being built. The
previous test-target was limiting the search of tests to specific folders. In
some cases the wrong folders.

I could not systematically check all affected packages, but have fixed tests
for some (these are packages for which previously we were not running tests).

-pukkamustard

pukkamustard (5):
gnu: Add ocaml-cinaps.
gnu: ocaml-ppxlib: Clean up inputs.
gnu: ocaml-cohttp: Run tests.
guix: dune-build-system: Run all tests.
gnu: ocaml-ppx-expect: Disable tests.

raingloom (1):
guix: dune-build-system: Remove usage of test-target argument.

gnu/packages/ocaml.scm | 209 +++++++++++++------------------
guix/build/dune-build-system.scm | 4 +-
2 files changed, 86 insertions(+), 127 deletions(-)


base-commit: 9ad5c3deeaebfb6f953579992a082d8327730611
--
2.38.1
P
P
pukkamustard wrote on 13 Jan 2023 11:54
[PATCH v3 1/6] gnu: Add ocaml-cinaps.
(address . 59487@debbugs.gnu.org)
20230113105440.28258-2-pukkamustard@posteo.net
* gnu/packages/ocaml.scm (ocaml-cinaps): New variable.
---
gnu/packages/ocaml.scm | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)

Toggle diff (43 lines)
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index 5109cd052a..b37cfa4681 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -5939,6 +5939,36 @@ (define-public ocaml-ppx-derivers
as part of the same ocaml-migrate-parsetree driver.")
(license license:bsd-3)))
+(define-public ocaml-cinaps
+ ;; The commit removes the unused dependency of ocaml-ppx-jane. We need to
+ ;; use this as we would otherwise have a dependency loop between
+ ;; ocaml-ppxlib and ocaml-ppx-jane.
+ (let ((commit "d974bb2db3ab1ab14e81f989b5bdb609462bff47")
+ (revision "0"))
+ (package
+ (name "ocaml-cinaps")
+ (version (git-version "0.15.1" revision commit))
+ (home-page "https://github.com/ocaml-ppx/cinaps")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url home-page)
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "00kb04vqlnk1pynqjhna5qhn8790ab17baxf4na5py1l1h1js8qx"))))
+ (build-system dune-build-system)
+ (propagated-inputs (list ocaml-re))
+ (synopsis "Trivial metaprogramming tool for OCaml")
+ (description
+ "Cinaps is a trivial Metaprogramming tool using the OCaml toplevel. It is based
+on the same idea as expectation tests. The user write some OCaml code inside
+special comments and cinaps make sure that what follows is what is printed by
+the OCaml code.")
+ (license license:expat))))
+
(define-public ocaml-ppxlib
(package
(name "ocaml-ppxlib")
--
2.38.1
P
P
pukkamustard wrote on 13 Jan 2023 11:54
[PATCH v3 2/6] gnu: ocaml-ppxlib: Clean up inputs.
(address . 59487@debbugs.gnu.org)
20230113105440.28258-3-pukkamustard@posteo.net
* gnu/packages/ocaml.scm (ocaml-ppxlib):
[propagated-inputs] Remove unused inputs.
[native-inputs] Move test dependencies from propagated-inputs here and add
ocaml-cinaps.
---
gnu/packages/ocaml.scm | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)

Toggle diff (28 lines)
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index b37cfa4681..1507405f7e 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -6003,14 +6003,14 @@ (define-public ocaml-ppxlib
((" \"(Some ppx-es.*)\")" _ m)
(string-append " \"" m "\"."))))))))
(propagated-inputs
- (list ocaml-base
- ocaml-compiler-libs
- ocaml-migrate-parsetree
- ocaml-stdlib-shims
+ (list ocaml-compiler-libs
ocaml-ppx-derivers
- ocaml-stdio
- ocaml-result
- ocaml-sexplib0))
+ ocaml-sexplib0
+ ocaml-stdlib-shims))
+ (native-inputs
+ (list ocaml-stdio
+ ocaml-cinaps
+ ocaml-base))
(properties `((ocaml4.07-variant . ,(delay ocaml4.07-ppxlib))))
(synopsis
"Base library and tools for ppx rewriters")
--
2.38.1
P
P
pukkamustard wrote on 13 Jan 2023 11:54
[PATCH v3 3/6] gnu: ocaml-cohttp: Run tests.
(address . 59487@debbugs.gnu.org)
20230113105440.28258-4-pukkamustard@posteo.net
Tests were not being run as test-target was pointing to a testing library and
not tests.

- gnu/package/ocaml.scm (ocaml-cohttp): [arguments]: Remove test-target.
[native-inputs]: Add ocaml-crowbar.
---
gnu/packages/ocaml.scm | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)

Toggle diff (29 lines)
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index 1507405f7e..1ed837eccd 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -8961,9 +8961,7 @@ (define-public ocaml-cohttp
(base32
"074xis3wmr76gadh1ffmfzjfx13mw4kr2s6rkwqwzcl6l85n9x2z"))))
(build-system dune-build-system)
- (arguments
- '(#:package "cohttp"
- #:test-target "cohttp_test/src"))
+ (arguments '(#:package "cohttp"))
(propagated-inputs
(list ocaml-re
ocaml-uri
@@ -8973,7 +8971,10 @@ (define-public ocaml-cohttp
ocaml-stringext
ocaml-base64))
(native-inputs
- (list ocaml-fmt ocaml-jsonm ocaml-alcotest))
+ (list ocaml-fmt
+ ocaml-jsonm
+ ocaml-alcotest
+ ocaml-crowbar))
(home-page "https://github.com/mirage/ocaml-cohttp")
(synopsis "OCaml library for HTTP clients and servers")
(description
--
2.38.1
P
P
pukkamustard wrote on 13 Jan 2023 11:54
[PATCH v3 4/6] guix: dune-build-system: Run all tests.
(address . 59487@debbugs.gnu.org)
20230113105440.28258-5-pukkamustard@posteo.net
* guix/build/dune-build-system.scm (check): Do not use test-target argument
and let dune run all tests for a given package.
---
guix/build/dune-build-system.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (22 lines)
diff --git a/guix/build/dune-build-system.scm b/guix/build/dune-build-system.scm
index e9ccc71057..f311cd37f1 100644
--- a/guix/build/dune-build-system.scm
+++ b/guix/build/dune-build-system.scm
@@ -42,13 +42,13 @@ (define* (build #:key (build-flags '()) (jbuild? #f)
build-flags)))
#t)
-(define* (check #:key (test-flags '()) (test-target "test") tests?
+(define* (check #:key (test-flags '()) tests?
(jbuild? #f) (package #f) (dune-release-flags '())
#:allow-other-keys)
"Test the given package."
(when tests?
(let ((program (if jbuild? "jbuilder" "dune")))
- (apply invoke program "runtest" test-target
+ (apply invoke program "runtest"
(append (if package (list "-p" package)
dune-release-flags)
test-flags))))
--
2.38.1
P
P
pukkamustard wrote on 13 Jan 2023 11:54
[PATCH v3 5/6] guix: dune-build-system: Remove usage of test-target argument.
(address . 59487@debbugs.gnu.org)
20230113105440.28258-6-pukkamustard@posteo.net
From: raingloom <raingloom@riseup.net>

gnu/packages/ocaml.scm: Remove test-target argument from packages built with
dune-build-system.

Co-authored: pukkamustard <pukkamustard@posteo.net>
---
gnu/packages/ocaml.scm | 153 +++++++++++------------------------------
1 file changed, 39 insertions(+), 114 deletions(-)

Toggle diff (515 lines)
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index 1ed837eccd..371c3ebb71 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -664,8 +664,6 @@ (define-public ocaml-cudf
(base32
"1lvrmpscbk1kjv5ag5bzlzv520xk5zw2haf6q7chvz98gcm9g0hk"))))
(build-system dune-build-system)
- (arguments
- '(#:test-target "."))
(propagated-inputs (list ocaml-extlib))
(native-inputs (list ocaml-ounit2))
(home-page "https://www.mancoosi.org/cudf/")
@@ -855,8 +853,7 @@ (define-public opam
"1mw535zsw7xlvpgwnk1dan76z3f7lh5imlg0s6kdyhfg0iqisjd7"))))
(build-system dune-build-system)
(arguments
- `(#:test-target "."
- #:phases
+ `(#:phases
(modify-phases %standard-phases
(add-before 'build 'pre-build
(lambda* (#:key inputs make-flags #:allow-other-keys)
@@ -1628,8 +1625,7 @@ (define-public ocaml-frontc
"1mi1vh4qgscnb470qwidccaqd068j1bqlz6pf6wddk21paliwnqb"))))
(build-system dune-build-system)
(arguments
- `(#:test-target "test.t"
- #:phases
+ `(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'make-writable
(lambda _
@@ -1699,8 +1695,6 @@ (define-public ocaml-qcheck
(sha256
(base32 "1r0m5p1dd06lbgfxqdpl1ya4vb8252z7hqkvdi9k444g4rx2ay3p"))))
(build-system dune-build-system)
- (arguments
- `(#:test-target "."))
(propagated-inputs
(list ocaml-alcotest ocaml-ounit ocaml-ppxlib))
(native-inputs
@@ -1744,8 +1738,6 @@ (define-public ocaml-qtest
(base32
"04ghjshh6104xyglm0db9kv90m62qla5f4bfrlndv6dsvgw3rdjl"))))
(build-system dune-build-system)
- (arguments
- `(#:test-target "tests"))
(propagated-inputs
`(("ounit" ,ocaml-ounit)
("qcheck" ,ocaml-qcheck)))
@@ -1771,8 +1763,6 @@ (define-public ocaml-stringext
(base32
"1m09cmn3vrk3gdm60fb730qsygcfyxsyv7gl9xfzck08q1x2x9qx"))))
(build-system dune-build-system)
- (arguments
- `(#:test-target "."))
(native-inputs
`(("ocamlbuild" ,ocamlbuild)
("qtest" ,ocaml-qtest)))
@@ -2047,8 +2037,7 @@ (define-public ocaml4.07-ppx-tools-versioned
"07lnj4yzwvwyh5fhpp1dxrys4ddih15jhgqjn59pmgxinbnddi66"))))
(build-system dune-build-system)
(arguments
- `(#:test-target "."
- #:package "ppx_tools_versioned"))
+ `(#:package "ppx_tools_versioned"))
(propagated-inputs
(list ocaml-migrate-parsetree))
(properties `((upstream-name . "ppx_tools_versioned")))
@@ -2167,8 +2156,7 @@ (define-public ocaml-result
"166laj8qk7466sdl037c6cjs4ac571hglw4l5qpyll6df07h6a7q"))))
(build-system dune-build-system)
(arguments
- `(#:test-target "."
- #:dune ,dune-bootstrap))
+ `(#:dune ,dune-bootstrap))
(properties `((ocaml4.09-variant . ,(delay ocaml4.09-result))
(ocaml5.0-variant . ,(delay ocaml5.0-result))))
(home-page "https://github.com/janestreet/result")
@@ -2183,8 +2171,7 @@ (define-public ocaml4.09-result
(inherit ocaml-result)
(name "ocaml4.09-result")
(arguments
- `(#:test-target "."
- #:dune ,ocaml4.09-dune-bootstrap
+ `(#:dune ,ocaml4.09-dune-bootstrap
#:ocaml ,ocaml-4.09
#:findlib ,ocaml4.09-findlib))))
@@ -2193,8 +2180,7 @@ (define-public ocaml5.0-result
(inherit ocaml-result)
(name "ocaml5.0-result")
(arguments
- `(#:test-target "."
- #:dune ,ocaml5.0-dune-bootstrap
+ `(#:dune ,ocaml5.0-dune-bootstrap
#:ocaml ,ocaml-5.0
#:findlib ,ocaml5.0-findlib))))
@@ -2331,8 +2317,7 @@ (define-public ocaml-csv
"0y2hlqlmqs7r4y5mfzc5qdv7gdp3wxbwpz458vf7fj4593vg94cf"))))
(build-system dune-build-system)
(arguments
- `(#:package "csv"
- #:test-target "."))
+ `(#:package "csv"))
(home-page "https://github.com/Chris00/ocaml-csv")
(synopsis "Pure OCaml functions to read and write CSV")
(description
@@ -2570,7 +2555,6 @@ (define-public ocaml-alcotest
(build-system dune-build-system)
(arguments
`(#:package "alcotest"
- #:test-target "."
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-test-format
@@ -2615,8 +2599,7 @@ (define-public ocaml4.07-alcotest
(base32
"1frwi185z4aadmaf0vp8xk5227nyg7nmh28ijj5l7ncjr5slvhz8"))))
(arguments
- `(#:package "alcotest"
- #:test-target "."))
+ `(#:package "alcotest"))
(properties '()))))
(define-public ocaml-ppx-tools
@@ -2689,8 +2672,6 @@ (define-public ocaml-ssl
(sha256 (base32
"1bg5vagklq6yfxsvcnj2i76xis8hb59088hkic82smyrxdjd1kjs"))))
(build-system dune-build-system)
- (arguments
- `(#:test-target "."))
(native-inputs
(list autoconf automake ocaml-alcotest which))
(propagated-inputs (list openssl))
@@ -2760,7 +2741,6 @@ (define-public ocaml-optint
(sha256 (base32
"1qj32bcw1in7s6raxdvbmjr3lvj99iwv98x1ar9cwxp4zf8ybfss"))))
(build-system dune-build-system)
- (arguments `(#:test-target "."))
(native-inputs (list ocaml-crowbar ocaml-monolith ocaml-fmt))
(synopsis "Efficient integer types on 64-bit architectures for OCaml")
(description
@@ -2811,8 +2791,7 @@ (define ocaml-eio
(sha256 (base32
"118raxdwv6pn5b152ffdhmwdi0l4wlwflcj2nmckfmm7v1z2fq4s"))))
(build-system dune-build-system)
- (arguments `(#:package "eio"
- #:test-target "."))
+ (arguments `(#:package "eio"))
(propagated-inputs (list ocaml-bigstringaf
ocaml-cstruct
ocaml-lwt
@@ -2837,8 +2816,7 @@ (define ocaml-eio-luv
(package
(inherit ocaml-eio)
(name "ocaml-eio-luv")
- (arguments `(#:package "eio_luv"
- #:test-target "."))
+ (arguments `(#:package "eio_luv"))
(propagated-inputs (list ocaml-eio ocaml-luv))
(native-inputs (list ocaml-mdx))
(synopsis "Libuv-based backend for Ocaml Eio")
@@ -2863,7 +2841,6 @@ (define-public ocaml-uring
(sha256 (base32
"0k70y7nb2wrk2yql0pwnrhsp1x7k9ld4gd8iihbv6r34kcm3a5m1"))))
(build-system dune-build-system)
- (arguments `(#:test-target "."))
(propagated-inputs
(list ocaml-cstruct
ocaml-fmt
@@ -2884,8 +2861,7 @@ (define ocaml-eio-linux
(package
(inherit ocaml-eio)
(name "ocaml-eio-linux")
- (arguments `(#:package "eio_linux"
- #:test-target "."))
+ (arguments `(#:package "eio_linux"))
(propagated-inputs
(list ocaml-eio
ocaml-uring
@@ -2908,7 +2884,6 @@ (define ocaml-eio-main
(inherit ocaml-eio)
(name "ocaml-eio-main")
(arguments `(#:package "eio_main"
- #:test-target "."
;; tests require network
#:tests? #f))
(propagated-inputs
@@ -3243,8 +3218,7 @@ (define-public ocaml-gen
"1z5nw5wljvcqp8q07h336bbvf9paynia0jsdh4486hlkbmr1ask1"))))
(build-system dune-build-system)
(arguments
- `(#:package "gen"
- #:test-target "."))
+ `(#:package "gen"))
(propagated-inputs
(list ocaml-odoc ocaml-seq))
(native-inputs
@@ -3504,8 +3478,6 @@ (define-public ocaml-ocp-indent
(base32
"1dvcl108ir9nqkk4mjm9xhhj4p9dx9bmg8bnms54fizs1x3x8ar3"))))
(build-system dune-build-system)
- (arguments
- `(#:test-target "tests"))
(propagated-inputs
(list ocaml-cmdliner))
(home-page "https://www.typerex.org/ocp-indent.html")
@@ -3729,7 +3701,6 @@ (define-public ocaml-benchmark
(sha256
(base32 "0d0vdfjgjzf1y6wkd714d8b0piv1z9qav5ahsapynqzk4b4ahhnp"))))
(build-system dune-build-system)
- (arguments `(#:test-target "tests"))
(home-page "https://github.com/Chris00/ocaml-benchmark")
(synopsis "Benchmark running times of code")
(description
@@ -4070,8 +4041,6 @@ (define-public ocaml-re
(sha256
(base32 "1g0vmpx6ylv8m0w77zarn215pgb4czc6gcpb2fi5da1s307zwr0w"))))
(build-system dune-build-system)
- (arguments
- `(#:test-target "."))
(propagated-inputs
(list ocaml-seq))
(native-inputs
@@ -4094,8 +4063,7 @@ (define-public ocaml4.07-re
(package
(inherit ocaml-re)
(arguments
- `(#:test-target "."
- #:phases
+ `(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-dune-version
(lambda _
@@ -4116,8 +4084,6 @@ (define-public ocaml-ocplib-endian
"1klj4g451s7m5r8bxmwc1rpvngpqdm40csnx9smgc06pwy2fax2c"))
(file-name (git-file-name name version))))
(build-system dune-build-system)
- (arguments
- `(#:test-target "tests"))
(native-inputs
`(("cppo" ,ocaml-cppo)))
(home-page "https://github.com/OCamlPro/ocplib-endian")
@@ -4144,8 +4110,7 @@ (define-public ocaml-cstruct
"0dpbirs6lzp0bclr3wcw407jjspll7iy66z18zks3mjccvlxd21w"))))
(build-system dune-build-system)
(arguments
- `(#:package "cstruct"
- #:test-target "."))
+ `(#:package "cstruct"))
(propagated-inputs
(list ocaml-bigarray-compat))
(native-inputs
@@ -4188,8 +4153,6 @@ (define-public ocaml-hex
(base32
"0xnl5wxd2qrba7phm3mdrjwd2kk26kb17dv94ciwp49ljcj28qc1"))))
(build-system dune-build-system)
- (arguments
- `(#:test-target "."))
(propagated-inputs
`(("ocaml-bigarray-compat" ,ocaml-bigarray-compat)
("cstruct" ,ocaml-cstruct)))
@@ -4213,8 +4176,7 @@ (define-public ocaml-ezjsonm
(base32 "004knljxqxn9zq0rnq7q7wxl4nwlzydm8p9f5cqkl8il5yl5zkjm"))))
(build-system dune-build-system)
(arguments
- `(#:package "ezjsonm"
- #:test-target "."))
+ `(#:package "ezjsonm"))
(native-inputs (list ocaml-alcotest js-of-ocaml node))
(propagated-inputs (list ocaml-jsonm ocaml-uutf ocaml-sexplib0 ocaml-hex))
(home-page "https://github.com/mirage/ezjsonm/")
@@ -4241,8 +4203,7 @@ (define-public ocaml-uri
(base32
"1bgkc66cq00mgnkz3i535srwzwc4cpdsv0mly5dzvvq33451xwf0"))))
(build-system dune-build-system)
- (arguments '(#:package "uri"
- #:test-target "."))
+ (arguments '(#:package "uri"))
(propagated-inputs
(list ocaml-stringext ocaml-angstrom))
(native-inputs
@@ -4268,8 +4229,7 @@ (define-public ocaml4.07-uri
(base32 "1ppbav41mszpjcl0zi3fyg958cxyfs57i7kvha4ds9ydn89bjmrh"))))
(build-system dune-build-system)
(arguments
- `(#:test-target "."
- #:phases
+ `(#:phases
(modify-phases %standard-phases
(add-before 'build 'update-deprecated
(lambda _
@@ -4624,8 +4584,7 @@ (define-public ocaml-camomile
"0chn7ldqb3wyf95yhmsxxq65cif56smgz1mhhc7m0dpwmyq1k97h"))))
(build-system dune-build-system)
(arguments
- `(#:test-target "camomile-test"
- #:tests? #f ; Tests fail, see https://github.com/yoriyuki/Camomile/issues/82
+ `(#:tests? #f ; Tests fail, see https://github.com/yoriyuki/Camomile/issues/82
#:phases
(modify-phases %standard-phases
(add-before 'build 'fix-usr-share
@@ -4692,8 +4651,6 @@ (define-public ocaml-zed
ocaml-uucp
ocaml-uuseg
ocaml-odoc))
- (arguments
- `(#:test-target "."))
(properties `((ocaml4.07-variant . ,(delay ocaml4.07-zed))))
(synopsis "Abstract engine for text edition in OCaml")
(description
@@ -4741,8 +4698,6 @@ (define-public ocaml-lambda-term
(base32
"1pkamblc6h0rsbk901cqn3xr9gqa3g8wrwyx5zryaqvb2xpbhp8b"))))
(build-system dune-build-system)
- (arguments
- `(#:test-target "."))
(propagated-inputs
(list ocaml-logs
ocaml-lwt
@@ -4796,8 +4751,6 @@ (define-public ocaml-utop
(sha256
(base32 "1pcix3h9f7is06581iax4i08zkd6sv8y5hy1vvxhqhcsd9z0qfl3"))))
(build-system dune-build-system)
- (arguments
- `(#:test-target "."))
(native-inputs
(list ocaml-cppo))
(propagated-inputs
@@ -4852,8 +4805,6 @@ (define-public ocaml-ansiterminal
(base32
"052qnc23vmxp90yympjz9q6lhqw98gs1yvb3r15kcbi1j678l51h"))))
(build-system dune-build-system)
- (arguments
- `(#:test-target "tests"))
(properties `((upstream-name . "ANSITerminal")))
(home-page "https://github.com/Chris00/ANSITerminal")
(synopsis
@@ -5078,8 +5029,6 @@ (define-public dedukti
(base32
"1dsr3s88kgmcg3najhc29cwfvsxa2plvjws1127fz75kmn15np28"))))
(build-system dune-build-system)
- (arguments
- `(#:test-target "tests"))
(inputs (list gmp ocaml-cmdliner ocaml-z3 z3))
(native-inputs (list ocaml-menhir))
(synopsis "Proof-checker for the λΠ-calculus modulo theory, an extension of
@@ -5233,8 +5182,6 @@ (define-public ocaml-bindlib
(base32
"1viyws3igy49hfaj4jaiwm4iggck9zdn7r3g6kh1n4zxphqk57yk"))))
(build-system dune-build-system)
- (arguments
- `(#:test-target "."))
(native-inputs
(list ocamlbuild ocaml-findlib))
(home-page "https://rlepigre.github.io/ocaml-bindlib/")
@@ -5261,8 +5208,6 @@ (define-public ocaml-earley
(base32
"1vi58zdxchpw6ai0bz9h2ggcmg8kv57yk6qbx82lh47s5wb3mz5y"))))
(build-system dune-build-system)
- (arguments
- `(#:test-target "."))
(propagated-inputs
(list ocaml-stdlib-shims))
(synopsis "Parsing library based on Earley Algorithm")
@@ -5287,8 +5232,6 @@ (define-public ocaml-timed
"1aqmkpjv5jk95lc2m3qyyrhw8ra7n9wj8pv3bfc83l737zv0hjn1"))
(file-name (git-file-name name version))))
(build-system dune-build-system)
- (arguments
- '(#:test-target "."))
(synopsis "Timed references for imperative state")
(description "Timed references for imperative state. This module provides
an alternative type for references (or mutable cells) supporting undo/redo
@@ -5353,8 +5296,7 @@ (define-public ocaml-yojson
"1habsh00ihjhk1g1csxqg3hj8izk5zvgc7wm579wyjw35vzcmwr1"))))
(build-system dune-build-system)
(arguments
- `(#:test-target "."
- #:package "yojson"))
+ `(#:package "yojson"))
(propagated-inputs (list ocaml-seq))
(native-inputs (list ocaml-alcotest ocaml-cppo))
(synopsis "Low-level JSON library for OCaml")
@@ -5504,8 +5446,7 @@ (define-public ocaml-gsl
"1l5zkkkg8sglsihrbf10ivq9s8xzl1y6ag89i4jqpnmi4m43fy34"))))
(build-system dune-build-system)
(arguments
- `(#:test-target "."
- #:phases
+ `(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-gsl-directory
(lambda* (#:key inputs #:allow-other-keys)
@@ -5898,8 +5839,6 @@ (define-public ocaml-ppx-deriving
(base32
"1wqcnw4wi6pfjjhixpakckm03dpj990259za432804471a6spm2j"))))
(build-system dune-build-system)
- (arguments
- `(#:test-target "."))
(propagated-inputs
(list ocaml-ppx-derivers ocaml-ppxlib ocaml-result))
(native-inputs
@@ -6975,7 +6914,6 @@ (define-public ocaml-ppx-cold
(janestreet-origin "ppx_cold" version
"13gqmfw2sq80anag9bwpm35600l1fnfn7mh9cbj1291k84rsx7wb"))
(build-system dune-build-system)
- (arguments `(#:test-target "tests"))
(propagated-inputs
(list ocaml-base ocaml-ppxlib))
(properties `((upstream-name . "ppx_cold")))
@@ -7160,8 +7098,6 @@ (define-public ocaml-ppx-typerep-conv
(sha256
(base32 "1q1lzykpm83ra4l5jh4rfddhd3c96kx4s4rvx0w4b51z1qk56zam"))))
(build-system dune-build-system)
- (arguments
- `(#:test-target "."))
(propagated-inputs (list ocaml-base ocaml-typerep ocaml-ppxlib))
(properties `((upstream-name . "ppx_typerep_conv")
(ocaml4.07-variant . ,(delay ocaml4.07-ppx-typerep-conv))))
@@ -7227,8 +7163,6 @@ (define-public ocaml-ppx-stable
(sha256
(base32 "1as0v0x8c9ilyhngax55lvwyyi4a2wshyan668v0f2s1608cwb1l"))))
(build-system dune-build-system)
- (arguments
- `(#:test-target "tests"))
(propagated-inputs (list ocaml-base ocaml-ppxlib))
(properties `((upstream-name . "ppx_stable")))
(home-page "https://github.com/janestreet/ppx_stable")
@@ -7246,8 +7180,6 @@ (define-public ocaml-ppx-base
"ppx_base" version
"181w7y2has8jsrqdsvd08q5nhnkx523vwsk3lg0cjix55qssvfyn"))
(build-system dune-build-system)
- (arguments
- `(#:test-target "."))
(propagated-inputs
(list ocaml-ppx-compare
ocaml-ppx-cold
@@ -7403,8 +7335,6 @@ (define-public ocaml-ppx-disable-unused-warnings
(sha256
(base32 "0sb5i4v7p9df2bxk66rjs30k9fqdrwsq1jgykjv6wyrx2d9bv955"))))
(build-system dune-build-system)
- (arguments
- `(#:test-target "tests"))
(propagated-inputs (list ocaml-base ocaml-ppxlib))
(properties `((upstream-name . "ppx_disable_unused_warnings")))
(home-page "https://github.com/janestreet/ppx_disable_unused_warnings")
@@ -7427,8 +7357,6 @@ (define-public ocaml-ppx-jane
(sha256
(base32 "1p6847gdfnnj6qpa4yh57s6wwpsl7rfgy0q7993chz24h9mhz5lk"))))
(build-system dune-build-system)
- (arguments
- `(#:test-target "."))
(propagated-inputs
(list ocaml-base-quickcheck
ocaml-ppx-assert
@@ -7621,8 +7549,7 @@ (define-public ocaml4.07-jane-street-headers
"0afhzm08l9v883fhpqqh2lmy7az609pxif40bp7x1sk8c0yszqsh"))))
(build-system dune-build-system)
(arguments
- `(#:test-target "."
- #:ocaml ,ocaml-4.07
+ `(#:ocaml ,ocaml-4.07
#:findlib ,ocaml4.07-findlib
#:dune ,ocaml4.07-dune))
(home-page "https://github.com/janestreet/jane-street-headers")
@@ -8095,8 +8022,7 @@ (define-public ocaml4.07-bisect-ppx
(native-inputs
`(("ocaml-ounit2" ,ocaml-ounit2)))
(arguments
- `(#:test-target "."
- ;; tests require git and network
+ `(;; tests require git and network
#:tests? #f))
(properties '((upstream-name . "bisect_ppx"))))))
@@ -8235,8 +8161,6 @@ (define-public ocaml-fftw3
(base32
"07ljbin9dsclsqh24p7haqjccz1w828sf5xfwlzl298d4a6zsbhs"))))
(build-system dune-build-system)
- (arguments
- `(#:test-target "tests"))
(propagated-inputs
(list fftw fftwf))
(native-inputs
@@ -8296,8 +8220,6 @@ (define-public ocaml-cairo2
(base32
"06ag9b88ihhr7yd3s9l0ac7ysig02fmlmsswybbsvz71ni0mb105"))))
(build-system dune-build-system)
- (arguments
- `(#:test-target "tests"))
(inputs
`(("cairo" ,cairo)
("gtk+-2" ,gtk+-2)
@@ -8469,7 +8391,18 @@ (define-public lablgtk3
(build-system dune-build-system)
(arguments
`(#:package "lablgtk3"
- #:test-target "."))
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'make-writable
+ (lambda _
+ (for-each (lambda (file)
+ (chmod file #o644))
+ (find-files "." "."))))
+ (add-before 'build 'set-version
+ (lambda _
+ (substitute* "dune-project"
+ (("\\(name lablgtk3\\)")
+ (string-append "(name lablgtk3)\n(version " ,version ")"))))))))
(propagat
This message was truncated. Download the full message here.
P
P
pukkamustard wrote on 13 Jan 2023 11:54
[PATCH v3 6/6] gnu: ocaml-ppx-expect: Disable tests.
(address . 59487@debbugs.gnu.org)
20230113105440.28258-7-pukkamustard@posteo.net
Tests require a package that would cause a cyclic dependency.

* gnu/packages/ocaml.scm (ocaml-ppx-expect): Disable tests.
---
gnu/packages/ocaml.scm | 3 +++
1 file changed, 3 insertions(+)

Toggle diff (16 lines)
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index 371c3ebb71..a8412a6903 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -6981,6 +6981,9 @@ (define-public ocaml-ppx-expect
(base32
"134dl5qhjxsj2mcmrx9f3m0iys0n5mjfpz9flj8zn8d2jir43776"))))
(build-system dune-build-system)
+ (arguments
+ ;; Cyclic dependency with ocaml-ppx-jane
+ `(#:tests? #f))
(propagated-inputs
(list ocaml-base
ocaml-ppx-here
--
2.38.1
J
J
Julien Lepiller wrote on 15 Jan 2023 16:02
Re: [PATCH v3 0/6] guix: dune-build-system: Run all tests.
(name . pukkamustard)(address . pukkamustard@posteo.net)
20230115160254.4e0a18fc@sybil.lepiller.eu
I was able to check the dependents, so pushed to master as
7686b68f6bb1ae5dc206178805c32bceceea3743 -
79bf3b54a64e304a29334b5029c24d942d9dc051.

Note that I moved patches around, to have the last one before removing
test-target. I merged patches 3, 4 and 5 because intermediate states
would have failing packages otherwise. Also, patch 5 had unrelated
changes to lablgtk3 which I droped, because the package still builds.
If that was intentional, please send a new patch for that :)

I also listed all modified packages in the commit message, and removed
the Co-authored line which listed the author already.

Thanks!
Closed
J
J
Julien Lepiller wrote on 28 Jan 2023 13:26
Re: [bug#59981] [PATCH v2 2/2] gnu: Remove explicit test-target arguments in ocaml.scm.
(name . raingloom)(address . raingloom@riseup.net)
20230128132631.0b9e6a9b@sybil.lepiller.eu
Closing since a similar patch was pushed already. Thanks!
J
J
Julien Lepiller wrote on 28 Jan 2023 13:28
Re: [bug#59980] [PATCH v2 1/2] build-system/dune: Automatically deduce test-target in most cases.
(name . raingloom)(address . raingloom@riseup.net)
20230128132839.49fab7f0@sybil.lepiller.eu
Closing since a similar patch was pushed already. Thanks!
?