File: VersionPolicy.hs

package info (click to toggle)
haskell-debian 3.64-3
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 364 kB
  • sloc: haskell: 3,226; ansic: 8; makefile: 3
file content (68 lines) | stat: -rw-r--r-- 3,707 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
module Test.VersionPolicy where

import Test.HUnit

import Debian.Version
import Debian.VersionPolicy

-- * Tag parsing

versionPolicyTests =
    map (\ (vendor, release, versionString) ->
             let version = (parseDebianVersion versionString) in
             TestCase (assertEqual versionString (rebuildTag vendor version) version)) versionStrings ++
    [ TestCase (assertEqual
                "setTag"
                (parseDebianVersion "1.2-3seereason4~feisty7")
                (either (error "setTag failed!") id
                            (setTag id "seereason" (Just "feisty") Nothing 
                             -- version currently uploaded to the build release
                             (Just (parseDebianVersion "1.2-3seereason4~feisty4"))
                             -- All the versions in the repository
                             [parseDebianVersion "1.2-3seereason4~feisty5",
                              parseDebianVersion "1.2-3seereason4~feisty6"] 
                             -- The version retrieved from the changelog
		             (parseDebianVersion "1.2-3seereason4"))))
    , TestCase (assertEqual
                "setTag2"
                (Right (parseDebianVersion "3000.0.2.1-2+6seereason1~feisty1"))
                (setTag id "seereason" (Just "feisty") Nothing
                        (Just (parseDebianVersion "3000.0.2.1-1+6seereason1~feisty3"))
                        [parseDebianVersion "3000.0.2.1-1+6seereason3",
                         parseDebianVersion "3000.0.2.1-1+6seereason1~feisty3",
                         parseDebianVersion "3000.0.2.1-1+6seereason1~feisty2",
                         parseDebianVersion "3000.0.2.1-1+6seereason1~feisty1",
                         parseDebianVersion "3000.0.2.1-1+6seereason0~gutsy4",
                         parseDebianVersion "3000.0.2.1-1+6seereason0~gutsy3",
                         parseDebianVersion "3000.0.2.1-1+6seereason0~gutsy2",
                         parseDebianVersion "3000.0.2-2+6"]
                        (parseDebianVersion "3000.0.2.1-2+6")))                 
    , TestCase (assertEqual
                "setTag"
                (parseDebianVersion "0.4.0.1")
                (fst (parseTag "seereason" (parseDebianVersion "0.4.0.1-0seereason1"))))
    , TestCase (assertEqual
                "appendTag (parseTag \"seereason\" (parseDebianVersion \"0.4.0.1-0seereason1\")) -> \"0.4.0.1-0seereason1\""
                (parseDebianVersion "0.4.0.1-0seereason1")
                (uncurry (appendTag id) (parseTag "seereason" (parseDebianVersion "0.4.0.1-0seereason1"))))
    , TestCase (assertEqual
                "setTag \"seereason\" (Just \"gutsy\") \"0.4.0.1-0seereason1\" -> \"0.4.0.1-0seereason1~gutsy1\""
                (parseDebianVersion "0.4.0.1-0seereason1~gutsy1")
                (either (error "setTag failed!") id
                            (setTag id "seereason" (Just "gutsy") Nothing 
                             -- version currently uploaded to the build release
                             Nothing
                             -- All the versions in the repository
                             [] 
                             -- The version retrieved from the changelog
		             (parseDebianVersion "0.4.0.1-0seereason1")))) ]

versionStrings = [ ("seereason", Just "feisty", "1.2-3seereason4~feisty5")
                 , ("seereason", Just "feisty", "1.2-3")
                 , ("seereason", Nothing, "1.2-3seereason4")
                 , ("seereason", Nothing, "1.2-0seereason4") ]

rebuildTag vendor version = 
    case parseTag vendor version of
      (version, Just tag) -> appendTag id version (Just tag)
      (version, Nothing) -> version