Newer
Older
import Control.Monad (when)
import StackTest
main :: IO ()
main = do
stackCheckStdout ["ls", "dependencies", "tree"] $ \stdOut -> do
let expected = unlines [ "Packages"
, "├─┬ files 0.1.0.0"
, "│ ├─┬ base 4.10.1.0"
, "│ │ ├─┬ ghc-prim 0.5.1.1"
, "│ │ │ └── rts 1.0"
, "│ │ ├─┬ integer-gmp 1.0.1.0"
, "│ │ │ └─┬ ghc-prim 0.5.1.1"
, "│ │ │ └── rts 1.0"
, "│ │ └── rts 1.0"
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
, "│ ├─┬ filelock 0.1.1.2"
, "│ │ ├─┬ base 4.10.1.0"
, "│ │ │ ├─┬ ghc-prim 0.5.1.1"
, "│ │ │ │ └── rts 1.0"
, "│ │ │ ├─┬ integer-gmp 1.0.1.0"
, "│ │ │ │ └─┬ ghc-prim 0.5.1.1"
, "│ │ │ │ └── rts 1.0"
, "│ │ │ └── rts 1.0"
, "│ │ └─┬ unix 2.7.2.2"
, "│ │ ├─┬ base 4.10.1.0"
, "│ │ │ ├─┬ ghc-prim 0.5.1.1"
, "│ │ │ │ └── rts 1.0"
, "│ │ │ ├─┬ integer-gmp 1.0.1.0"
, "│ │ │ │ └─┬ ghc-prim 0.5.1.1"
, "│ │ │ │ └── rts 1.0"
, "│ │ │ └── rts 1.0"
, "│ │ ├─┬ bytestring 0.10.8.2"
, "│ │ │ ├─┬ base 4.10.1.0"
, "│ │ │ │ ├─┬ ghc-prim 0.5.1.1"
, "│ │ │ │ │ └── rts 1.0"
, "│ │ │ │ ├─┬ integer-gmp 1.0.1.0"
, "│ │ │ │ │ └─┬ ghc-prim 0.5.1.1"
, "│ │ │ │ │ └── rts 1.0"
, "│ │ │ │ └── rts 1.0"
, "│ │ │ ├─┬ deepseq 1.4.3.0"
, "│ │ │ │ ├─┬ array 0.5.2.0"
, "│ │ │ │ │ └─┬ base 4.10.1.0"
, "│ │ │ │ │ ├─┬ ghc-prim 0.5.1.1"
, "│ │ │ │ │ │ └── rts 1.0"
, "│ │ │ │ │ ├─┬ integer-gmp 1.0.1.0"
, "│ │ │ │ │ │ └─┬ ghc-prim 0.5.1.1"
, "│ │ │ │ │ │ └── rts 1.0"
, "│ │ │ │ │ └── rts 1.0"
, "│ │ │ │ └─┬ base 4.10.1.0"
, "│ │ │ │ ├─┬ ghc-prim 0.5.1.1"
, "│ │ │ │ │ └── rts 1.0"
, "│ │ │ │ ├─┬ integer-gmp 1.0.1.0"
, "│ │ │ │ │ └─┬ ghc-prim 0.5.1.1"
, "│ │ │ │ │ └── rts 1.0"
, "│ │ │ │ └── rts 1.0"
, "│ │ │ ├─┬ ghc-prim 0.5.1.1"
, "│ │ │ │ └── rts 1.0"
, "│ │ │ └─┬ integer-gmp 1.0.1.0"
, "│ │ │ └─┬ ghc-prim 0.5.1.1"
, "│ │ │ └── rts 1.0"
, "│ │ └─┬ time 1.8.0.2"
, "│ │ ├─┬ base 4.10.1.0"
, "│ │ │ ├─┬ ghc-prim 0.5.1.1"
, "│ │ │ │ └── rts 1.0"
, "│ │ │ ├─┬ integer-gmp 1.0.1.0"
, "│ │ │ │ └─┬ ghc-prim 0.5.1.1"
, "│ │ │ │ └── rts 1.0"
, "│ │ │ └── rts 1.0"
, "│ │ └─┬ deepseq 1.4.3.0"
, "│ │ ├─┬ array 0.5.2.0"
, "│ │ │ └─┬ base 4.10.1.0"
, "│ │ │ ├─┬ ghc-prim 0.5.1.1"
, "│ │ │ │ └── rts 1.0"
, "│ │ │ ├─┬ integer-gmp 1.0.1.0"
, "│ │ │ │ └─┬ ghc-prim 0.5.1.1"
, "│ │ │ │ └── rts 1.0"
, "│ │ │ └── rts 1.0"
, "│ │ └─┬ base 4.10.1.0"
, "│ │ ├─┬ ghc-prim 0.5.1.1"
, "│ │ │ └── rts 1.0"
, "│ │ ├─┬ integer-gmp 1.0.1.0"
, "│ │ │ └─┬ ghc-prim 0.5.1.1"
, "│ │ │ └── rts 1.0"
, "│ │ └── rts 1.0"
, "│ ├─┬ mtl 2.2.2"
, "│ │ ├─┬ base 4.10.1.0"
, "│ │ │ ├─┬ ghc-prim 0.5.1.1"
, "│ │ │ │ └── rts 1.0"
, "│ │ │ ├─┬ integer-gmp 1.0.1.0"
, "│ │ │ │ └─┬ ghc-prim 0.5.1.1"
, "│ │ │ │ └── rts 1.0"
, "│ │ │ └── rts 1.0"
, "│ │ └─┬ transformers 0.5.2.0"
, "│ │ └─┬ base 4.10.1.0"
, "│ │ ├─┬ ghc-prim 0.5.1.1"
, "│ │ │ └── rts 1.0"
, "│ │ ├─┬ integer-gmp 1.0.1.0"
, "│ │ │ └─┬ ghc-prim 0.5.1.1"
, "│ │ │ └── rts 1.0"
, "│ │ └── rts 1.0"
, "│ └─┬ subproject 0.1.0.0"
, "│ └─┬ base 4.10.1.0"
, "│ ├─┬ ghc-prim 0.5.1.1"
, "│ │ └── rts 1.0"
, "│ ├─┬ integer-gmp 1.0.1.0"
, "│ │ └─┬ ghc-prim 0.5.1.1"
, "│ │ └── rts 1.0"
, "│ └── rts 1.0"
, "└─┬ subproject 0.1.0.0"
, " └─┬ base 4.10.1.0"
, " ├─┬ ghc-prim 0.5.1.1"
, " ├─┬ integer-gmp 1.0.1.0"
, " │ └─┬ ghc-prim 0.5.1.1"
, " │ └── rts 1.0"
, " └── rts 1.0"
]
when (stdOut /= expected) $
error $ unlines [ "Expected:", expected, "Actual:", stdOut ]
stackCheckStdout ["ls", "dependencies", "tree", "--depth=1"] $ \stdOut -> do
let expected = unlines [ "Packages"
, "├─┬ files 0.1.0.0"
, "│ ├── base 4.10.1.0"
, "│ ├── filelock 0.1.1.2"
, "│ ├── mtl 2.2.2"
, "│ └── subproject 0.1.0.0"
, "└─┬ subproject 0.1.0.0"
, " └── base 4.10.1.0"
]
when (stdOut /= expected) $
error $ unlines [ "Expected:", expected, "Actual:", stdOut ]
stackCheckStdout ["ls", "dependencies", "tree", "subproject"] $ \stdOut -> do
let expected = unlines [ "Packages"
, "└─┬ subproject 0.1.0.0"
, " └─┬ base 4.10.1.0"
, " ├─┬ ghc-prim 0.5.1.1"
, " │ └── rts 1.0"
, " ├─┬ integer-gmp 1.0.1.0"
, " │ └─┬ ghc-prim 0.5.1.1"
, " │ └── rts 1.0"
, " └── rts 1.0"
]
when (stdOut /= expected) $
error $ unlines [ "Expected:", expected, "Actual:", stdOut ]
stackCheckStdout ["ls", "dependencies", "json"] $ \stdOut -> do
dir <- testDir
let expected = "[{\"dependencies\":[\"base\",\"bytestring\",\"time\"],\"name\":\"unix\",\"version\":\"2.7.2.2\",\"license\":\"BSD3\"},{\"dependencies\":[\"base\"],\"name\":\"transformers\",\"version\":\"0.5.2.0\",\"license\":\"BSD3\"},{\"dependencies\":[\"base\",\"deepseq\"],\"name\":\"time\",\"version\":\"1.8.0.2\",\"license\":\"BSD3\"},{\"location\":{\"url\":\"file://" ++ dir ++ "/files/subproject/\",\"type\":\"project package\"},\"dependencies\":[\"base\"],\"name\":\"subproject\",\"version\":\"0.1.0.0\",\"license\":\"AllRightsReserved\"},{\"dependencies\":[],\"name\":\"rts\",\"version\":\"1.0\",\"license\":\"BSD3\"},{\"location\":{\"url\":\"https://hackage.haskell.org/package/mtl-2.2.2\",\"type\":\"hackage\"},\"dependencies\":[\"base\",\"transformers\"],\"name\":\"mtl\",\"version\":\"2.2.2\",\"license\":\"BSD3\"},{\"dependencies\":[\"ghc-prim\"],\"name\":\"integer-gmp\",\"version\":\"1.0.1.0\",\"license\":\"BSD3\"},{\"dependencies\":[\"rts\"],\"name\":\"ghc-prim\",\"version\":\"0.5.1.1\",\"license\":\"BSD3\"},{\"location\":{\"url\":\"file://" ++ dir ++ "/files/\",\"type\":\"project package\"},\"dependencies\":[\"base\",\"filelock\",\"mtl\",\"subproject\"],\"name\":\"files\",\"version\":\"0.1.0.0\",\"license\":\"AllRightsReserved\"},{\"location\":{\"subdir\":\"\",\"url\":\"git@github.com:snoyberg/filelock\",\"type\":\"git\",\"commit\":\"4f080496d8bf153fbe26e64d1f52cf73c7db25f6\"},\"dependencies\":[\"base\",\"unix\"],\"name\":\"filelock\",\"version\":\"0.1.1.2\",\"license\":\"PublicDomain\"},{\"dependencies\":[\"array\",\"base\"],\"name\":\"deepseq\",\"version\":\"1.4.3.0\",\"license\":\"BSD3\"},{\"dependencies\":[\"base\",\"deepseq\",\"ghc-prim\",\"integer-gmp\"],\"name\":\"bytestring\",\"version\":\"0.10.8.2\",\"license\":\"BSD3\"},{\"dependencies\":[\"ghc-prim\",\"integer-gmp\",\"rts\"],\"name\":\"base\",\"version\":\"4.10.1.0\",\"license\":\"BSD3\"},{\"dependencies\":[\"base\"],\"name\":\"array\",\"version\":\"0.5.2.0\",\"license\":\"BSD3\"}]\n"
when (stdOut /= expected) $
error $ unlines [ "Expected:", expected, "Actual:", stdOut ]