diff --git a/README.md b/README.md index 51bd542b..d9f25ed2 100644 --- a/README.md +++ b/README.md @@ -104,7 +104,7 @@ Installing a mega repo helps cabal align all the dependencies correctly. cd hamlet # build and test the mega repo -cabal install --enable-tests +cabal configure -ftest --enable-tests cabal build cabal test ~~~ @@ -121,7 +121,7 @@ If you first install the mega repo, then it should be easier to work on an indiv cd shakespeare-text # build and test the individual package -cabal configure --enable-tests +cabal configure -ftest --enable-tests cabal build cabal test ~~~ diff --git a/test/en.msg b/test/en.msg index f6159dee..e4db7367 120000 --- a/test/en.msg +++ b/test/en.msg @@ -1 +1 @@ -yesod-core/en.msg \ No newline at end of file +../yesod-core/test/en.msg \ No newline at end of file diff --git a/test/fs b/test/fs new file mode 120000 index 00000000..034a0f64 --- /dev/null +++ b/test/fs @@ -0,0 +1 @@ +../yesod-static/test/fs \ No newline at end of file diff --git a/test/main.hs b/test/main.hs index b04ec7db..6eecda86 100644 --- a/test/main.hs +++ b/test/main.hs @@ -1,5 +1,9 @@ import Test.Hspec import qualified YesodCoreTest +import qualified YesodStaticTest main :: IO () -main = hspecX $ descriptions $ YesodCoreTest.specs +main = hspecX $ descriptions [ + concat YesodCoreTest.specs + , concat YesodStaticTest.specs + ] diff --git a/test/yesod-core b/test/yesod-core deleted file mode 120000 index aaa0236b..00000000 --- a/test/yesod-core +++ /dev/null @@ -1 +0,0 @@ -../yesod-core/test \ No newline at end of file diff --git a/yesod-core/test/YesodCoreTest.hs b/yesod-core/test/YesodCoreTest.hs index 5f70039f..ded94770 100644 --- a/yesod-core/test/YesodCoreTest.hs +++ b/yesod-core/test/YesodCoreTest.hs @@ -12,7 +12,7 @@ import YesodCoreTest.ErrorHandling import Test.Hspec specs :: [Specs] -specs = -- concat +specs = [ cleanPathTest , exceptionsTest , widgetTest diff --git a/yesod-core/yesod-core.cabal b/yesod-core/yesod-core.cabal index ca4cb911..440e21ba 100644 --- a/yesod-core/yesod-core.cabal +++ b/yesod-core/yesod-core.cabal @@ -90,8 +90,6 @@ library Yesod.Internal.RouteParsing Paths_yesod_core ghc-options: -Wall - if flag(test) - Buildable: False test-suite tests type: exitcode-stdio-1.0 diff --git a/yesod-mega.cabal b/yesod-mega.cabal index 175c643e..e7ea3ca4 100644 --- a/yesod-mega.cabal +++ b/yesod-mega.cabal @@ -20,6 +20,10 @@ flag threaded default: True description: Build with support for multithreaded execution +flag test + description: Build for use with running tests + default: False + library hs-source-dirs: yesod, yesod-auth, yesod-core, yesod-default, yesod-examples, yesod-form, yesod-json, yesod-newsfeed, yesod-persistent, yesod-sitemap, yesod-static @@ -115,6 +119,9 @@ library if !os(windows) build-depends: unix + if flag(test) + cpp-options: -DTEST + build-depends: -- yesod Cabal >= 1.8 && < 1.13 @@ -158,7 +165,7 @@ library , warp >= 0.4 && < 0.5 , wai >= 0.4 && < 0.5 , wai-extra >= 0.4.1 && < 0.5 - , time >= 1.1.4 && < 1.3 + , time >= 1.1.4 , bytestring >= 0.9.1.4 && < 0.12 , text >= 0.9 && < 0.12 , template-haskell @@ -193,6 +200,7 @@ test-suite tests hs-source-dirs: test yesod-core/test + yesod-static/test if flag(ghc7) type: exitcode-stdio-1.0 diff --git a/yesod-static/Yesod/Static.hs b/yesod-static/Yesod/Static.hs index 77c3a438..7186b60e 100644 --- a/yesod-static/Yesod/Static.hs +++ b/yesod-static/Yesod/Static.hs @@ -33,6 +33,9 @@ module Yesod.Static , publicFiles -- * Hashing , base64md5 +#ifdef TEST + , getFileListPieces +#endif ) where import Prelude hiding (FilePath) diff --git a/yesod-static/test/YesodStaticTest.hs b/yesod-static/test/YesodStaticTest.hs new file mode 100644 index 00000000..ec31dc57 --- /dev/null +++ b/yesod-static/test/YesodStaticTest.hs @@ -0,0 +1,16 @@ +module YesodStaticTest (specs) where + +import Test.Hspec +import Test.HUnit ( (@?=) ) +import Test.Hspec.HUnit ( ) + +import Yesod.Static (getFileListPieces) + +specs :: [Specs] +specs = [ + describe "get file list" [ + it "pieces" $ do + x <- getFileListPieces "test/fs" + x @?= [["foo"], ["bar", "baz"]] + ] + ] diff --git a/yesod-static/tests/data/.ignored b/yesod-static/test/fs/.ignored similarity index 100% rename from yesod-static/tests/data/.ignored rename to yesod-static/test/fs/.ignored diff --git a/yesod-static/tests/data/bar/baz b/yesod-static/test/fs/bar/baz similarity index 100% rename from yesod-static/tests/data/bar/baz rename to yesod-static/test/fs/bar/baz diff --git a/yesod-static/tests/data/foo b/yesod-static/test/fs/foo similarity index 100% rename from yesod-static/tests/data/foo rename to yesod-static/test/fs/foo diff --git a/yesod-static/tests/data/tmp/ignored b/yesod-static/test/fs/tmp/ignored similarity index 100% rename from yesod-static/tests/data/tmp/ignored rename to yesod-static/test/fs/tmp/ignored diff --git a/yesod-static/tests/unicode/LICENSE b/yesod-static/test/unicode/LICENSE similarity index 100% rename from yesod-static/tests/unicode/LICENSE rename to yesod-static/test/unicode/LICENSE diff --git a/yesod-static/tests/unicode/README b/yesod-static/test/unicode/README similarity index 100% rename from yesod-static/tests/unicode/README rename to yesod-static/test/unicode/README diff --git a/yesod-static/tests/unicode/Setup.lhs b/yesod-static/test/unicode/Setup.lhs similarity index 100% rename from yesod-static/tests/unicode/Setup.lhs rename to yesod-static/test/unicode/Setup.lhs diff --git a/yesod-static/tests/unicode/TODO b/yesod-static/test/unicode/TODO similarity index 100% rename from yesod-static/tests/unicode/TODO rename to yesod-static/test/unicode/TODO diff --git a/yesod-static/tests/unicode/app.hs b/yesod-static/test/unicode/app.hs similarity index 100% rename from yesod-static/tests/unicode/app.hs rename to yesod-static/test/unicode/app.hs diff --git a/yesod-static/tests/unicode/embedded-sample.hs b/yesod-static/test/unicode/embedded-sample.hs similarity index 100% rename from yesod-static/tests/unicode/embedded-sample.hs rename to yesod-static/test/unicode/embedded-sample.hs diff --git a/yesod-static/tests/unicode/folder.png b/yesod-static/test/unicode/folder.png similarity index 100% rename from yesod-static/tests/unicode/folder.png rename to yesod-static/test/unicode/folder.png diff --git a/yesod-static/tests/unicode/folder.svg b/yesod-static/test/unicode/folder.svg similarity index 100% rename from yesod-static/tests/unicode/folder.svg rename to yesod-static/test/unicode/folder.svg diff --git a/yesod-static/tests/unicode/haskell.png b/yesod-static/test/unicode/haskell.png similarity index 100% rename from yesod-static/tests/unicode/haskell.png rename to yesod-static/test/unicode/haskell.png diff --git a/yesod-static/tests/unicode/sample.hs b/yesod-static/test/unicode/sample.hs similarity index 100% rename from yesod-static/tests/unicode/sample.hs rename to yesod-static/test/unicode/sample.hs diff --git a/yesod-static/tests/unicode/test.hs b/yesod-static/test/unicode/test.hs similarity index 100% rename from yesod-static/tests/unicode/test.hs rename to yesod-static/test/unicode/test.hs diff --git a/yesod-static/tests/unicode/tests/a/b b/yesod-static/test/unicode/tests/a/b similarity index 100% rename from yesod-static/tests/unicode/tests/a/b rename to yesod-static/test/unicode/tests/a/b diff --git a/yesod-static/tests/unicode/tests/runtests.hs b/yesod-static/test/unicode/tests/runtests.hs similarity index 100% rename from yesod-static/tests/unicode/tests/runtests.hs rename to yesod-static/test/unicode/tests/runtests.hs diff --git a/yesod-static/tests/unicode/unicode.hs b/yesod-static/test/unicode/unicode.hs similarity index 100% rename from yesod-static/tests/unicode/unicode.hs rename to yesod-static/test/unicode/unicode.hs diff --git a/yesod-static/tests/unicode/wai-app-static.cabal b/yesod-static/test/unicode/wai-app-static.cabal similarity index 100% rename from yesod-static/tests/unicode/wai-app-static.cabal rename to yesod-static/test/unicode/wai-app-static.cabal diff --git a/yesod-static/tests/unicode/warp.hs b/yesod-static/test/unicode/warp.hs similarity index 100% rename from yesod-static/tests/unicode/warp.hs rename to yesod-static/test/unicode/warp.hs diff --git a/yesod-static/tests/unicode/קרררר.html b/yesod-static/test/unicode/קרררר.html similarity index 100% rename from yesod-static/tests/unicode/קרררר.html rename to yesod-static/test/unicode/קרררר.html diff --git a/yesod-static/tests/unicode/שלום b/yesod-static/test/unicode/שלום similarity index 100% rename from yesod-static/tests/unicode/שלום rename to yesod-static/test/unicode/שלום diff --git a/yesod-static/tests/unicode/ששש/DUMMY.txt b/yesod-static/test/unicode/ששש/DUMMY.txt similarity index 100% rename from yesod-static/tests/unicode/ששש/DUMMY.txt rename to yesod-static/test/unicode/ששש/DUMMY.txt diff --git a/yesod-static/tests.hs b/yesod-static/tests.hs new file mode 100644 index 00000000..1176f6d9 --- /dev/null +++ b/yesod-static/tests.hs @@ -0,0 +1,7 @@ +{-# LANGUAGE OverloadedStrings #-} + +import Test.Hspec +import YesodStaticTest (specs) + +main :: IO () +main = hspecX $ descriptions specs diff --git a/yesod-static/tests/runtests.hs b/yesod-static/tests/runtests.hs deleted file mode 100644 index 20ce829a..00000000 --- a/yesod-static/tests/runtests.hs +++ /dev/null @@ -1,17 +0,0 @@ -{-# LANGUAGE OverloadedStrings #-} -import Yesod.Static () - -import Test.Hspec -import Test.Hspec.HUnit () --- import Test.Hspec.QuickCheck (prop) - -main :: IO () -main = return () -- hspecX $ return [] -{- FIXME specs - -specs :: IO [Spec] -specs = runSpecM $ do - context "get file list" $ do - ti "pieces" $ do - x <- getFileListPieces "tests/data" - x @?= [["foo"], ["bar", "baz"]]-} diff --git a/yesod-static/yesod-static.cabal b/yesod-static/yesod-static.cabal index 8c0bfe7d..832c7171 100644 --- a/yesod-static/yesod-static.cabal +++ b/yesod-static/yesod-static.cabal @@ -15,10 +15,13 @@ extra-source-files: tests/runtests.hs flag test - description: Build the executable to run unit tests + description: Build for use with running tests default: False library + if flag(test) + cpp-options: -DTEST + build-depends: base >= 4 && < 5 , containers >= 0.2 && < 0.5 , old-time >= 1.0 @@ -40,9 +43,9 @@ library exposed-modules: Yesod.Static ghc-options: -Wall -test-suite runtests - hs-source-dirs: tests - main-is: runtests.hs +test-suite tests + hs-source-dirs: test + main-is: ../tests.hs type: exitcode-stdio-1.0 cpp-options: -DTEST build-depends: yesod-static @@ -50,7 +53,6 @@ test-suite runtests , hspec >= 0.8 && < 0.10 , HUnit ghc-options: -Wall - main-is: runtests.hs source-repository head type: git