git.iko.soy/typeable/servant
on master help sign in
Merge pull request #78 from haskell-servant/wip-fix-test-all-script
13a8813Christian Marie
scripts/test-all.sh+4−4
@@ -26,19 +26,19 @@ readarray -t SOURCES < "$SOURCES_TXT"
26prepare_sandbox () {
26prepare_sandbox () {
27 $CABAL sandbox init
27 $CABAL sandbox init
28 for s in ${SOURCES[@]} ; do
28 for s in ${SOURCES[@]} ; do
29− (cd "$s" && $CABAL sandbox init --sandbox=../ && $CABAL sandbox add-source .)
29+ (cd "$s" && $CABAL sandbox init --sandbox=../.cabal-sandbox/ && $CABAL sandbox add-source .)
30 done
30 done
31+ $CABAL install --enable-tests ${SOURCES[@]}
31}
32}
32
33
33test_each () {
34test_each () {
34 for s in ${SOURCES[@]} ; do
35 for s in ${SOURCES[@]} ; do
35 echo "Testing $s..."
36 echo "Testing $s..."
36− cd "$s"
37+ pushd "$s"
37− $CABAL install --only-dependencies --enable-tests
38 $CABAL configure --enable-tests --ghc-options="$GHC_FLAGS"
38 $CABAL configure --enable-tests --ghc-options="$GHC_FLAGS"
39 $CABAL build
39 $CABAL build
40 $CABAL test
40 $CABAL test
41− cd ..
41+ popd
42 done
42 done
43}
43}
44
44
servant-server/servant-server.cabal+2
@@ -113,6 +113,8 @@ test-suite doctests
113 , servant
113 , servant
114 , doctest
114 , doctest
115 , filemanip
115 , filemanip
116+ , directory
117+ , filepath
116 type: exitcode-stdio-1.0
118 type: exitcode-stdio-1.0
117 main-is: test/Doctests.hs
119 main-is: test/Doctests.hs
118 buildable: True
120 buildable: True
servant-server/test/Doctests.hs+12−1
@@ -1,14 +1,18 @@
1module Main where
1module Main where
2
2
3+import Data.List (isPrefixOf)
4+import System.Directory
5+import System.FilePath
3import System.FilePath.Find
6import System.FilePath.Find
4import Test.DocTest
7import Test.DocTest
5
8
6main :: IO ()
9main :: IO ()
7main = do
10main = do
8 files <- find always (extension ==? ".hs") "src"
11 files <- find always (extension ==? ".hs") "src"
12+ cabalMacrosFile <- getCabalMacrosFile
9 doctest $ [ "-isrc"
13 doctest $ [ "-isrc"
10 , "-optP-include"
14 , "-optP-include"
11− , "-optPdist/build/autogen/cabal_macros.h"
15+ , "-optP" ++ cabalMacrosFile
12 , "-XOverloadedStrings"
16 , "-XOverloadedStrings"
13 , "-XFlexibleInstances"
17 , "-XFlexibleInstances"
14 , "-XMultiParamTypeClasses"
18 , "-XMultiParamTypeClasses"
@@ -16,3 +20,10 @@ main = do
16 , "-XTypeOperators"
20 , "-XTypeOperators"
17 ] ++ files
21 ] ++ files
18
22
23+getCabalMacrosFile :: IO FilePath
24+getCabalMacrosFile = do
25+ contents <- getDirectoryContents "dist"
26+ let rest = "build" </> "autogen" </> "cabal_macros.h"
27+ return $ case filter ("dist-sandbox-" `isPrefixOf`) contents of
28+ [x] -> "dist" </> x </> rest
29+ [] -> "dist" </> rest
servant/servant.cabal+2
@@ -107,6 +107,8 @@ test-suite doctests
107 , servant
107 , servant
108 , doctest
108 , doctest
109 , filemanip
109 , filemanip
110+ , directory
111+ , filepath
110 type: exitcode-stdio-1.0
112 type: exitcode-stdio-1.0
111 main-is: test/Doctests.hs
113 main-is: test/Doctests.hs
112 buildable: True
114 buildable: True
servant/test/Doctests.hs+12−1
@@ -1,16 +1,27 @@
1module Main where
1module Main where
2
2
3+import Data.List (isPrefixOf)
4+import System.Directory
5+import System.FilePath
3import System.FilePath.Find
6import System.FilePath.Find
4import Test.DocTest
7import Test.DocTest
5
8
6main :: IO ()
9main :: IO ()
7main = do
10main = do
8 files <- find always (extension ==? ".hs") "src"
11 files <- find always (extension ==? ".hs") "src"
12+ cabalMacrosFile <- getCabalMacrosFile
9 doctest $ [ "-isrc"
13 doctest $ [ "-isrc"
10 , "-optP-include"
14 , "-optP-include"
11− , "-optPdist/build/autogen/cabal_macros.h"
15+ , "-optP" ++ cabalMacrosFile
12 , "-XOverloadedStrings"
16 , "-XOverloadedStrings"
13 , "-XFlexibleInstances"
17 , "-XFlexibleInstances"
14 , "-XMultiParamTypeClasses"
18 , "-XMultiParamTypeClasses"
15 ] ++ files
19 ] ++ files
16
20
21+getCabalMacrosFile :: IO FilePath
22+getCabalMacrosFile = do
23+ contents <- getDirectoryContents "dist"
24+ let rest = "build" </> "autogen" </> "cabal_macros.h"
25+ return $ case filter ("dist-sandbox-" `isPrefixOf`) contents of
26+ [x] -> "dist" </> x </> rest
27+ [] -> "dist" </> rest