|
1 | 1 | import Test.Cabal.Prelude
|
2 | 2 |
|
| 3 | +singleOpts = ["--repl-options=-fwrite-interface"] |
| 4 | +multiOpts = "--repl-options=-fdefer-typed-holes" : singleOpts |
| 5 | +altProject = ("--project-file=alt.project" :) |
| 6 | + |
3 | 7 | main = do
|
4 | 8 | cabalTest' "single-repl-options" $ do
|
5 | 9 | cabal' "clean" []
|
6 |
| - res <- cabalWithStdin "v2-repl" ["--repl-options=-fwrite-interface"] ":set" |
| 10 | + res <- cabalWithStdin "v2-repl" singleOpts ":set" |
7 | 11 | assertOutputContains "Ok, two modules loaded." res
|
8 |
| - assertOutputContains " -fwrite-interface" res |
| 12 | + |
| 13 | + cabalTest' "alt-single-repl-options" $ do |
| 14 | + cabal' "clean" [] |
| 15 | + -- Can we 'cabal repl' without a target when the project has a single package? |
| 16 | + void $ cabalWithStdin "v2-repl" (altProject singleOpts) ":set" |
| 17 | + |
9 | 18 | cabalTest' "multiple-repl-options" $ do
|
10 | 19 | cabal' "clean" []
|
11 |
| - res <- cabalWithStdin "v2-repl" ["--repl-options=-fwrite-interface", "--repl-options=-fdefer-typed-holes"] ":set" |
| 20 | + res <- cabalWithStdin "v2-repl" multiOpts ":set" |
12 | 21 | assertOutputContains "Ok, two modules loaded." res
|
13 | 22 | assertOutputContains " -fwrite-interface" res
|
14 | 23 | assertOutputContains " -fdefer-typed-holes" res
|
| 24 | + |
| 25 | + cabalTest' "alt-multiple-repl-options" $ do |
| 26 | + cabal' "clean" [] |
| 27 | + -- Can we 'cabal repl' without a target when the project has a single package? |
| 28 | + void $ cabalWithStdin "v2-repl" (altProject multiOpts) ":set" |
| 29 | + |
15 | 30 | cabalTest' "single-repl-options-multiple-flags" $ do
|
16 | 31 | cabal' "clean" []
|
17 | 32 | res <- cabalWithStdin "v2-repl" ["--repl-options=-fdefer-typed-holes -fwrite-interface"] ":set"
|
18 | 33 | assertOutputContains "Ok, two modules loaded." res
|
19 | 34 | assertOutputContains " -fwrite-interface" res
|
20 | 35 | assertOutputContains " -fdefer-typed-holes" res
|
| 36 | + |
21 | 37 | cabalTest' "single-repl-options-multiple-flags-negative" $ do
|
22 | 38 | cabal' "clean" []
|
23 | 39 | res <- fails $ cabalWithStdin "v2-repl" ["--repl-options=-fwrite-interface -fdiagnostics-show-baret"] ":set"
|
24 | 40 | assertOutputDoesNotContain "Ok, two modules loaded." res
|
25 | 41 | assertOutputContains "unrecognised flag: -fdiagnostics-show-baret" res
|
26 | 42 | assertOutputContains "did you mean one of:" res
|
| 43 | + |
27 | 44 | cabalTest' "multiple-repl-options-multiple-flags" $ do
|
28 | 45 | cabal' "clean" []
|
29 | 46 | res <- cabalWithStdin "v2-repl" [
|
|
0 commit comments