From b6bc4c109b807c646e99ec40360e681122d85b2c Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 1 Oct 2022 16:56:19 +0200 Subject: packages: Raise an exception for invalid 'license' values. This is written in such a way that the type check turns into a no-op at macro-expansion time for trivial cases: > ,optimize (validate-license gpl3+) $18 = gpl3+ > ,optimize (validate-license (list gpl3+ gpl2+)) $19 = (list gpl3+ gpl2+) * guix/packages.scm (valid-license-value?, validate-license): New macros. ()[license]: Add 'sanitize' option. (&package-license-error): New error condition type. * tests/packages.scm ("license type checking"): New test. --- tests/packages.scm | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'tests') diff --git a/tests/packages.scm b/tests/packages.scm index 6cbc34ba0b..dc03b13417 100644 --- a/tests/packages.scm +++ b/tests/packages.scm @@ -94,6 +94,13 @@ (define %store (write (dummy-package "foo" (location #f))))))) +(test-equal "license type checking" + 'bad-license + (guard (c ((package-license-error? c) + (package-error-invalid-license c))) + (dummy-package "foo" + (license 'bad-license)))) + (test-assert "hidden-package" (and (hidden-package? (hidden-package (dummy-package "foo"))) (not (hidden-package? (dummy-package "foo"))))) -- cgit v1.2.3