salve-2.0.0.10: source/test-suite/Main.hs
import qualified Control.Monad as Monad
import qualified Salve
import qualified System.Exit as Exit
import qualified Test.HUnit as Test
main :: IO ()
main = do
counts <-
Test.runTestTT $
Test.TestList
[ (compare <$> Salve.parseVersion "1.2.3" <*> Salve.parseVersion "2.0.0")
Test.~?= Just LT,
(compare <$> Salve.parseVersion "1.2.3" <*> Salve.parseVersion "1.3.0")
Test.~?= Just LT,
(compare <$> Salve.parseVersion "1.2.3" <*> Salve.parseVersion "1.2.4")
Test.~?= Just LT,
(compare <$> Salve.parseVersion "0.0.9" <*> Salve.parseVersion "0.0.10")
Test.~?= Just LT,
( compare
<$> Salve.parseVersion "1.2.3-a"
<*> Salve.parseVersion
"1.2.3-b"
)
Test.~?= Just LT,
( compare
<$> Salve.parseVersion "1.2.3-pre"
<*> Salve.parseVersion
"1.2.3"
)
Test.~?= Just LT,
( compare
<$> Salve.parseVersion "1.2.4-pre"
<*> Salve.parseVersion
"1.2.3"
)
Test.~?= Just GT,
( compare
<$> Salve.parseVersion "1.2.3+a"
<*> Salve.parseVersion
"1.2.3+b"
)
Test.~?= Just EQ,
((==) <$> Salve.parseVersion "1.2.3+a" <*> Salve.parseVersion "1.2.3+b")
Test.~?= Just False,
(compare <$> Salve.parsePreRelease "1" <*> Salve.parsePreRelease "a")
Test.~?= Just LT,
(compare <$> Salve.parsePreRelease "9" <*> Salve.parsePreRelease "10")
Test.~?= Just LT,
(compare <$> Salve.parsePreRelease "p10" <*> Salve.parsePreRelease "p9")
Test.~?= Just LT,
( Salve.satisfiesConstraint
<$> Salve.parseConstraint "<1.2.3"
<*> Salve.parseVersion "1.2.2"
)
Test.~?= Just True,
( Salve.satisfiesConstraint
<$> Salve.parseConstraint "<1.2.3"
<*> Salve.parseVersion "1.2.3"
)
Test.~?= Just False,
( Salve.satisfiesConstraint
<$> Salve.parseConstraint "<1.2.3"
<*> Salve.parseVersion "1.2.4"
)
Test.~?= Just False,
( Salve.satisfiesConstraint
<$> Salve.parseConstraint "<1.2.3"
<*> Salve.parseVersion "1.2.3-pre"
)
Test.~?= Just True,
( Salve.satisfiesConstraint
<$> Salve.parseConstraint "<=1.2.3"
<*> Salve.parseVersion "1.2.2"
)
Test.~?= Just True,
( Salve.satisfiesConstraint
<$> Salve.parseConstraint "<=1.2.3"
<*> Salve.parseVersion "1.2.3"
)
Test.~?= Just True,
( Salve.satisfiesConstraint
<$> Salve.parseConstraint "<=1.2.3"
<*> Salve.parseVersion "1.2.4"
)
Test.~?= Just False,
( Salve.satisfiesConstraint
<$> Salve.parseConstraint "=1.2.3"
<*> Salve.parseVersion "1.2.2"
)
Test.~?= Just False,
( Salve.satisfiesConstraint
<$> Salve.parseConstraint "=1.2.3"
<*> Salve.parseVersion "1.2.3"
)
Test.~?= Just True,
( Salve.satisfiesConstraint
<$> Salve.parseConstraint "=1.2.3"
<*> Salve.parseVersion "1.2.4"
)
Test.~?= Just False,
( Salve.satisfiesConstraint
<$> Salve.parseConstraint "=1.2.3"
<*> Salve.parseVersion "1.2.3-pre"
)
Test.~?= Just False,
( Salve.satisfiesConstraint
<$> Salve.parseConstraint "=1.2.3"
<*> Salve.parseVersion "1.2.3+build"
)
Test.~?= Just True,
( Salve.satisfiesConstraint
<$> Salve.parseConstraint ">=1.2.3"
<*> Salve.parseVersion "1.2.2"
)
Test.~?= Just False,
( Salve.satisfiesConstraint
<$> Salve.parseConstraint ">=1.2.3"
<*> Salve.parseVersion "1.2.3"
)
Test.~?= Just True,
( Salve.satisfiesConstraint
<$> Salve.parseConstraint ">=1.2.3"
<*> Salve.parseVersion "1.2.4"
)
Test.~?= Just True,
( Salve.satisfiesConstraint
<$> Salve.parseConstraint ">1.2.3"
<*> Salve.parseVersion "1.2.2"
)
Test.~?= Just False,
( Salve.satisfiesConstraint
<$> Salve.parseConstraint ">1.2.3"
<*> Salve.parseVersion "1.2.3"
)
Test.~?= Just False,
( Salve.satisfiesConstraint
<$> Salve.parseConstraint ">1.2.3"
<*> Salve.parseVersion "1.2.4"
)
Test.~?= Just True,
( Salve.satisfiesConstraint
<$> Salve.parseConstraint ">1.2.3"
<*> Salve.parseVersion "1.2.4-pre"
)
Test.~?= Just True,
( Salve.satisfiesConstraint
<$> Salve.parseConstraint ">1.2.3-pre"
<*> Salve.parseVersion "1.2.4"
)
Test.~?= Just True,
( Salve.satisfiesConstraint
<$> Salve.parseConstraint ">1.2.3 <1.2.5"
<*> Salve.parseVersion "1.2.3"
)
Test.~?= Just False,
( Salve.satisfiesConstraint
<$> Salve.parseConstraint ">1.2.3 <1.2.5"
<*> Salve.parseVersion "1.2.4"
)
Test.~?= Just True,
( Salve.satisfiesConstraint
<$> Salve.parseConstraint ">1.2.3 <1.2.5"
<*> Salve.parseVersion "1.2.5"
)
Test.~?= Just False,
( Salve.satisfiesConstraint
<$> Salve.parseConstraint "1.2.3 || 1.2.4"
<*> Salve.parseVersion "1.2.2"
)
Test.~?= Just False,
( Salve.satisfiesConstraint
<$> Salve.parseConstraint "1.2.3 || 1.2.4"
<*> Salve.parseVersion "1.2.3"
)
Test.~?= Just True,
( Salve.satisfiesConstraint
<$> Salve.parseConstraint "1.2.3 || 1.2.4"
<*> Salve.parseVersion "1.2.4"
)
Test.~?= Just True,
( Salve.satisfiesConstraint
<$> Salve.parseConstraint "1.2.3 || 1.2.4"
<*> Salve.parseVersion "1.2.5"
)
Test.~?= Just False,
( Salve.satisfiesConstraint
<$> Salve.parseConstraint "1.2.2 || >1.2.3 <1.3.0"
<*> Salve.parseVersion "1.2.2"
)
Test.~?= Just True,
( Salve.satisfiesConstraint
<$> Salve.parseConstraint "1.2.2 || >1.2.3 <1.3.0"
<*> Salve.parseVersion "1.2.3"
)
Test.~?= Just False,
( Salve.satisfiesConstraint
<$> Salve.parseConstraint "1.2.2 || >1.2.3 <1.3.0"
<*> Salve.parseVersion "1.2.4"
)
Test.~?= Just True,
( Salve.satisfiesConstraint
<$> Salve.parseConstraint "1.2.2 || >1.2.3 <1.3.0"
<*> Salve.parseVersion "1.3.0"
)
Test.~?= Just False,
( Salve.satisfiesConstraint
<$> Salve.parseConstraint "1.2.3 - 1.2.4"
<*> Salve.parseVersion "1.2.2"
)
Test.~?= Just False,
( Salve.satisfiesConstraint
<$> Salve.parseConstraint "1.2.3 - 1.2.4"
<*> Salve.parseVersion "1.2.3"
)
Test.~?= Just True,
( Salve.satisfiesConstraint
<$> Salve.parseConstraint "1.2.3 - 1.2.4"
<*> Salve.parseVersion "1.2.4"
)
Test.~?= Just True,
( Salve.satisfiesConstraint
<$> Salve.parseConstraint "1.2.3 - 1.2.4"
<*> Salve.parseVersion "1.2.5"
)
Test.~?= Just False,
( Salve.satisfiesConstraint
<$> Salve.parseConstraint "~1.2.3"
<*> Salve.parseVersion "1.2.2"
)
Test.~?= Just False,
( Salve.satisfiesConstraint
<$> Salve.parseConstraint "~1.2.3"
<*> Salve.parseVersion "1.2.3"
)
Test.~?= Just True,
( Salve.satisfiesConstraint
<$> Salve.parseConstraint "~1.2.3"
<*> Salve.parseVersion "1.2.4"
)
Test.~?= Just True,
( Salve.satisfiesConstraint
<$> Salve.parseConstraint "~1.2.3"
<*> Salve.parseVersion "1.3.0"
)
Test.~?= Just False,
( Salve.satisfiesConstraint
<$> Salve.parseConstraint "^1.2.3"
<*> Salve.parseVersion "1.2.2"
)
Test.~?= Just False,
( Salve.satisfiesConstraint
<$> Salve.parseConstraint "^1.2.3"
<*> Salve.parseVersion "1.2.3"
)
Test.~?= Just True,
( Salve.satisfiesConstraint
<$> Salve.parseConstraint "^1.2.3"
<*> Salve.parseVersion "1.2.4"
)
Test.~?= Just True,
( Salve.satisfiesConstraint
<$> Salve.parseConstraint "^1.2.3"
<*> Salve.parseVersion "1.3.0"
)
Test.~?= Just True,
( Salve.satisfiesConstraint
<$> Salve.parseConstraint "^1.2.3"
<*> Salve.parseVersion "2.0.0"
)
Test.~?= Just False,
( Salve.satisfiesConstraint
<$> Salve.parseConstraint "^0.2.3"
<*> Salve.parseVersion "0.2.2"
)
Test.~?= Just False,
( Salve.satisfiesConstraint
<$> Salve.parseConstraint "^0.2.3"
<*> Salve.parseVersion "0.2.3"
)
Test.~?= Just True,
( Salve.satisfiesConstraint
<$> Salve.parseConstraint "^0.2.3"
<*> Salve.parseVersion "0.2.4"
)
Test.~?= Just True,
( Salve.satisfiesConstraint
<$> Salve.parseConstraint "^0.2.3"
<*> Salve.parseVersion "0.3.0"
)
Test.~?= Just False,
( Salve.satisfiesConstraint
<$> Salve.parseConstraint "^0.0.3"
<*> Salve.parseVersion "0.0.2"
)
Test.~?= Just False,
( Salve.satisfiesConstraint
<$> Salve.parseConstraint "^0.0.3"
<*> Salve.parseVersion "0.0.3"
)
Test.~?= Just True,
( Salve.satisfiesConstraint
<$> Salve.parseConstraint "^0.0.3"
<*> Salve.parseVersion "0.0.4"
)
Test.~?= Just False,
( Salve.satisfiesConstraint
<$> Salve.parseConstraint "1.2.x"
<*> Salve.parseVersion "1.1.0"
)
Test.~?= Just False,
( Salve.satisfiesConstraint
<$> Salve.parseConstraint "1.2.x"
<*> Salve.parseVersion "1.2.3"
)
Test.~?= Just True,
( Salve.satisfiesConstraint
<$> Salve.parseConstraint "1.2.x"
<*> Salve.parseVersion "1.3.0"
)
Test.~?= Just False,
( Salve.satisfiesConstraint
<$> Salve.parseConstraint "1.x.x"
<*> Salve.parseVersion "0.1.0"
)
Test.~?= Just False,
( Salve.satisfiesConstraint
<$> Salve.parseConstraint "1.x.x"
<*> Salve.parseVersion "1.0.0"
)
Test.~?= Just True,
( Salve.satisfiesConstraint
<$> Salve.parseConstraint "1.x.x"
<*> Salve.parseVersion "1.2.3"
)
Test.~?= Just True,
( Salve.satisfiesConstraint
<$> Salve.parseConstraint "1.x.x"
<*> Salve.parseVersion "2.0.0"
)
Test.~?= Just False,
( Salve.satisfiesConstraint
<$> Salve.parseConstraint "x.x.x"
<*> Salve.parseVersion "0.0.0"
)
Test.~?= Just True,
( Salve.satisfiesConstraint
<$> Salve.parseConstraint "x.x.x"
<*> Salve.parseVersion "1.2.3"
)
Test.~?= Just True,
( Salve.satisfiesConstraint
<$> Salve.parseConstraint "x.x.x"
<*> Salve.parseVersion "2.0.0"
)
Test.~?= Just True
]
let hasErrors = Test.errors counts /= 0
hasFailures = Test.failures counts /= 0
Monad.when (hasErrors || hasFailures) Exit.exitFailure