[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
07/08: import: hackage: Add new tests.
From: |
Federico Beffa |
Subject: |
07/08: import: hackage: Add new tests. |
Date: |
Thu, 26 Nov 2015 17:18:54 +0000 |
beffa pushed a commit to branch master
in repository guix.
commit d3c827e41908f98f2ebb9db4050f2bf7051715e2
Author: Federico Beffa <address@hidden>
Date: Wed Nov 25 13:58:06 2015 +0100
import: hackage: Add new tests.
* tests/hackage.scm (eval-test-with-cabal): Add optional argument.
(test-cabal-3): New variable and test.
(test-read-cabal-1): Exercise more parsing variants.
---
tests/hackage.scm | 37 ++++++++++++++++++++++++++++++-------
1 files changed, 30 insertions(+), 7 deletions(-)
diff --git a/tests/hackage.scm b/tests/hackage.scm
index 229bee3..b608ccd 100644
--- a/tests/hackage.scm
+++ b/tests/hackage.scm
@@ -50,8 +50,28 @@ build-depends:
}
")
+;; Check compiler implementation test with and without spaces.
+(define test-cabal-3
+ "name: foo
+version: 1.0.0
+homepage: http://test.org
+synopsis: synopsis
+description: description
+license: BSD3
+library
+ if impl(ghc >= 7.2 && < 7.6)
+ Build-depends: ghc-a
+ if impl(ghc>=7.2&&<7.6)
+ Build-depends: ghc-b
+ if impl(ghc == 7.8)
+ Build-depends:
+ HTTP >= 4000.2.5 && < 4000.3,
+ mtl >= 2.0 && < 3
+")
+
;; A fragment of a real Cabal file with minor modification to check precedence
-;; of 'and' over 'or'.
+;; of 'and' over 'or', missing final newline, spaces between keywords and
+;; parentheses and between key and column.
(define test-read-cabal-1
"name: test-me
library
@@ -66,24 +86,23 @@ library
Build-depends: base >= 3 && < 4
else
Build-depends: base < 3
- if flag(base4point8) || flag(base4) && flag(base3)
+ if flag(base4point8) || flag (base4) && flag(base3)
Build-depends: random
- Build-depends: containers
+ Build-depends : containers
-- Modules that are always built.
Exposed-Modules:
- Test.QuickCheck.Exception
-")
+ Test.QuickCheck.Exception")
(test-begin "hackage")
-(define (eval-test-with-cabal test-cabal)
+(define* (eval-test-with-cabal test-cabal #:key (cabal-environment '()))
(mock
((guix import hackage) hackage-fetch
(lambda (name-version)
(call-with-input-string test-cabal
read-cabal)))
- (match (hackage->guix-package "foo")
+ (match (hackage->guix-package "foo" #:cabal-environment cabal-environment)
(('package
('name "ghc-foo")
('version "1.0.0")
@@ -116,6 +135,10 @@ library
(test-assert "hackage->guix-package test 2"
(eval-test-with-cabal test-cabal-2))
+(test-assert "hackage->guix-package test 3"
+ (eval-test-with-cabal test-cabal-3
+ #:cabal-environment '(("impl" . "ghc-7.8"))))
+
(test-assert "read-cabal test 1"
(match (call-with-input-string test-read-cabal-1 read-cabal)
((("name" ("test-me"))
- branch master updated (b72a441 -> d8c66da), Federico Beffa, 2015/11/26
- 01/08: import: hackage: Add recognition of 'true' and 'false' symbols., Federico Beffa, 2015/11/26
- 02/08: import: hackage: Imporve parsing of tests., Federico Beffa, 2015/11/26
- 03/08: import: hackage: Make it resilient to missing final newline., Federico Beffa, 2015/11/26
- 04/08: import: hackage: Make parsing of tests and fields more flexible., Federico Beffa, 2015/11/26
- 08/08: import: hackage: Assume current 'ghc' package version., Federico Beffa, 2015/11/26
- 05/08: utils: Add 'canonical-newline-port'., Federico Beffa, 2015/11/26
- 06/08: import: hackage: Handle CRLF end of line style., Federico Beffa, 2015/11/26
- 07/08: import: hackage: Add new tests.,
Federico Beffa <=