mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 21:38:07 -05:00
import: hackage: Evaluate "-any" and "-none" version comparison operators.
* guix/import/cabal.scm (eval-cabal): Modify. * tests/hackage.scm (test-cabal-4): New variable and test. (test-cabal-5): New variable and test. (test-cabal-6): New variable and test.
This commit is contained in:
parent
fd115bee31
commit
e39a44f340
2 changed files with 73 additions and 0 deletions
|
@ -754,6 +754,8 @@ (define (impl haskell)
|
|||
((string= spec-op ">") (version>? comp-ver spec-ver))
|
||||
((string= spec-op "<=") (not (version>? comp-ver spec-ver)))
|
||||
((string= spec-op "<") (not (version>=? comp-ver spec-ver)))
|
||||
((string= spec-op "-any") #t)
|
||||
((string= spec-op "-none") #f)
|
||||
(else
|
||||
(raise (condition
|
||||
(&message (message "Failed to evaluate 'impl' test."))))))
|
||||
|
|
|
@ -69,6 +69,65 @@ (define test-cabal-3
|
|||
mtl >= 2.0 && < 3
|
||||
")
|
||||
|
||||
;; Check "-any", "-none" when name is different.
|
||||
(define test-cabal-4
|
||||
"name: foo
|
||||
version: 1.0.0
|
||||
homepage: http://test.org
|
||||
synopsis: synopsis
|
||||
description: description
|
||||
license: BSD3
|
||||
library
|
||||
if impl(ghcjs -any)
|
||||
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
|
||||
")
|
||||
|
||||
;; Check "-any", "-none".
|
||||
(define test-cabal-5
|
||||
"name: foo
|
||||
version: 1.0.0
|
||||
homepage: http://test.org
|
||||
synopsis: synopsis
|
||||
description: description
|
||||
license: BSD3
|
||||
library
|
||||
if impl(ghc == 7.8)
|
||||
Build-depends:
|
||||
HTTP >= 4000.2.5 && < 4000.3,
|
||||
if impl(ghc -any)
|
||||
Build-depends: mtl >= 2.0 && < 3
|
||||
if impl(ghc>=7.2&&<7.6)
|
||||
Build-depends: ghc-b
|
||||
")
|
||||
|
||||
;; Check "custom-setup".
|
||||
(define test-cabal-6
|
||||
"name: foo
|
||||
build-type: Custom
|
||||
version: 1.0.0
|
||||
homepage: http://test.org
|
||||
synopsis: synopsis
|
||||
description: description
|
||||
license: BSD3
|
||||
custom-setup
|
||||
setup-depends: base >= 4.7 && < 5,
|
||||
Cabal >= 1.24,
|
||||
haskell-gi == 0.21.*
|
||||
library
|
||||
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', missing final newline, spaces between keywords and
|
||||
;; parentheses and between key and column.
|
||||
|
@ -139,6 +198,18 @@ (define* (eval-test-with-cabal test-cabal #:key (cabal-environment '()))
|
|||
(eval-test-with-cabal test-cabal-3
|
||||
#:cabal-environment '(("impl" . "ghc-7.8"))))
|
||||
|
||||
(test-assert "hackage->guix-package test 4"
|
||||
(eval-test-with-cabal test-cabal-4
|
||||
#:cabal-environment '(("impl" . "ghc-7.8"))))
|
||||
|
||||
(test-assert "hackage->guix-package test 5"
|
||||
(eval-test-with-cabal test-cabal-5
|
||||
#:cabal-environment '(("impl" . "ghc-7.8"))))
|
||||
|
||||
(test-assert "hackage->guix-package test 6"
|
||||
(eval-test-with-cabal test-cabal-6
|
||||
#: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"))
|
||||
|
|
Loading…
Reference in a new issue