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.
This commit is contained in:
Lars-Dominik Braun 2022-05-14 15:38:14 +02:00
parent e3337f35af
commit f4763ec37d
No known key found for this signature in database
GPG Key ID: F663943E08D8092A
1 changed files with 34 additions and 0 deletions

View File

@ -162,6 +162,16 @@ common defaults
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 @@ executable cabal
(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 @@ executable cabal
#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