From bd67403967e86d41235ef3af2e142869bc6c5c48 Mon Sep 17 00:00:00 2001 From: Lars-Dominik Braun Date: Sat, 14 May 2022 15:38:14 +0200 Subject: [PATCH 5/5] import: cabal: Document failing syntax through tests. * tests/hackage.scm (test-read-cabal-brackets-newline): New variable. (test-cabal-no-final-newline): Likewise. ("hackage->guix-package test without final newline", "read-cabal test: property brackets on new line"): New tests. --- tests/hackage.scm | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/tests/hackage.scm b/tests/hackage.scm index 98f9c34fd2..d7ecd0cc21 100644 --- a/tests/hackage.scm +++ b/tests/hackage.scm @@ -162,6 +162,16 @@ (define test-read-cabal-2 if os(foobar) { cc-options: -DBARBAZ } ") ; Intentional newline. +;; Test opening bracket on new line. +(define test-read-cabal-brackets-newline + "name: test-me +common defaults + build-depends: + { foobar + , barbaz + } +") + (test-begin "hackage") (define-syntax-rule (define-package-matcher name pattern) @@ -334,6 +344,21 @@ (define test-cabal-property-no-space (test-assert "hackage->guix-package test properties without space" (eval-test-with-cabal test-cabal-property-no-space match-ghc-foo)) +;; There may be no final newline terminating a property. +(define test-cabal-no-final-newline +"name: foo +version: 1.0.0 +homepage: http://test.org +synopsis: synopsis +description: description +license: BSD3 +executable cabal + build-depends: HTTP >= 4000.2.5 && < 4000.3, mtl >= 2.0 && < 3") + +(test-expect-fail 1) +(test-assert "hackage->guix-package test without final newline" + (eval-test-with-cabal test-cabal-no-final-newline match-ghc-foo)) + ;; Check if-elif-else statements (define test-cabal-if "name: foo @@ -509,6 +534,15 @@ (define-package-matcher match-ghc-foo-revision #t) (x (pk 'fail x #f)))) +(test-expect-fail 1) +(test-assert "read-cabal test: property brackets on new line" + (match (call-with-input-string test-read-cabal-brackets-newline read-cabal) + ((("name" ("test-me")) + ('section 'common "defaults" + (("build-depends" ("foobar , barbaz"))))) + #t) + (x (pk 'fail x #f)))) + (define test-cabal-import "name: foo version: 1.0.0 -- 2.35.1