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
|
From 6c52e1b902b869c25e2fe39cff6364143a04da61 Mon Sep 17 00:00:00 2001
From: Niklas Larsson <niklas@mm.st>
Date: Tue, 11 Dec 2018 19:56:22 +0100
Subject: [PATCH] Only check for Node when required
---
test/TestRun.hs | 34 ++++++++++++++++++++--------------
1 file changed, 20 insertions(+), 14 deletions(-)
diff --git a/test/TestRun.hs b/test/TestRun.hs
index c7db9fdcd..4809911f3 100644
--- a/test/TestRun.hs
+++ b/test/TestRun.hs
@@ -11,6 +11,7 @@ import Data.Proxy
import Data.Typeable
import Options.Applicative
import System.Directory
+import System.Environment
import System.Exit
import System.FilePath ((</>))
import System.Info
@@ -103,20 +104,25 @@ runTest path flags = do
normalise (x : xs) = x : normalise xs
normalise [] = []
+checkNode :: IO ()
+checkNode = do
+ nodePath <- findExecutable "node"
+ nodejsPath <- findExecutable "nodejs"
+ let node = nodePath <|> nodejsPath
+ case node of
+ Nothing -> do
+ putStrLn "For running the test suite against Node, node must be installed."
+ exitFailure
+ Just _ -> return ()
+
main :: IO ()
main = do
- nodePath <- findExecutable "node"
- nodejsPath <- findExecutable "nodejs"
- let node = nodePath <|> nodejsPath
- case node of
- Nothing -> do
- putStrLn "For running the test suite against Node, node must be installed."
- exitFailure
- Just _ -> do
- defaultMainWithIngredients ingredients $
+ args <- getArgs
+ when ("--node" `elem` args) checkNode
+ defaultMainWithIngredients ingredients $
askOption $ \(NodeOpt node) ->
- let (codegen, flags) = if node then (JS, ["--codegen", "node"])
- else (C , [])
- in
- mkGoldenTests (testFamiliesForCodegen codegen)
- (flags ++ idrisFlags)
+ let (codegen, flags) = if node then (JS, ["--codegen", "node"])
+ else (C , [])
+ in
+ mkGoldenTests (testFamiliesForCodegen codegen) (flags ++ idrisFlags)
+
|