summary refs log tree commit diff
diff options
context:
space:
mode:
authorLars-Dominik Braun <lars@6xq.net>2022-05-14 15:38:14 +0200
committerLars-Dominik Braun <lars@6xq.net>2022-06-06 13:26:45 +0200
commitf4763ec37df1aa03569ceff30192f5bf4bd736a8 (patch)
tree375e2a430fddc54632234fd64aa0bc55539434f0
parente3337f35afa83e746f0a66451fd4d2212c032b03 (diff)
downloadguix-f4763ec37df1aa03569ceff30192f5bf4bd736a8.tar.gz
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.
-rw-r--r--tests/hackage.scm34
1 files changed, 34 insertions, 0 deletions
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 @@ 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