From 0972feaff1f766c1759d0b89876132ae473725ce Mon Sep 17 00:00:00 2001 From: Lars-Dominik Braun Date: Sat, 30 Apr 2022 15:39:34 +0200 Subject: import: cabal: Allow curly brackets in more positions. * guix/import/cabal.scm (is-layout-property): Do not expect end of line. (lex-layout-property): Check for newline. (lex-property): Stop reading on closing curly bracket. * tests/hackage.scm (test-read-cabal-2): New variable. ("read-cabal test: if brackets on the same line"): New test. --- tests/hackage.scm | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'tests/hackage.scm') diff --git a/tests/hackage.scm b/tests/hackage.scm index 38f75b268e..15309a3381 100644 --- a/tests/hackage.scm +++ b/tests/hackage.scm @@ -156,6 +156,12 @@ library Exposed-Modules: Test.QuickCheck.Exception") +(define test-read-cabal-2 + "name: test-me +common defaults + if os(foobar) { cc-options: -DBARBAZ } +") ; Intentional newline. + (test-begin "hackage") (define-syntax-rule (define-package-matcher name pattern) @@ -471,6 +477,16 @@ executable cabal #t) (x (pk 'fail x #f)))) +(test-assert "read-cabal test: if brackets on the same line" + (match (call-with-input-string test-read-cabal-2 read-cabal) + ((("name" ("test-me")) + ('section 'common "defaults" + (('if ('os "foobar") + (("cc-options" ("-DBARBAZ "))) + ())))) + #t) + (x (pk 'fail x #f)))) + (define test-cabal-import "name: foo version: 1.0.0 -- cgit 1.4.1