diff --git a/.travis.yml b/.travis.yml index d4b5135a..3c5d0fa5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -67,10 +67,8 @@ install: - rm -fv cabal.project.local - "echo 'packages: .' > cabal.project" - rm -f cabal.project.freeze - - cabal install hspec-discover - - cabal install cabal-doctest - - cabal new-build -w ${HC} ${TEST} ${BENCH} --dep -j2 all - - cabal new-build -w ${HC} --disable-tests --disable-benchmarks --dep -j2 all + - cabal v2-build -w ${HC} ${TEST} ${BENCH} --dep -j2 all + - cabal v2-build -w ${HC} --disable-tests --disable-benchmarks --dep -j2 all # Here starts the actual work to be performed for the package under test; # any command which exits with a non-zero exit code causes the build to fail. @@ -88,13 +86,13 @@ script: - "echo 'packages: .' > cabal.project" # this builds all libraries and executables (without tests/benchmarks) - rm -f cabal.project.freeze - - cabal new-build -w ${HC} --disable-tests --disable-benchmarks all + - cabal v2-build -w ${HC} --disable-tests --disable-benchmarks all # this builds all libraries and executables (including tests/benchmarks) # - rm -rf ./dist-newstyle # build & run tests - - cabal new-build -w ${HC} ${TEST} ${BENCH} all - - - if [ "x$TEST" = "x--enable-tests" ]; then cabal new-test -w ${HC} ${TEST} all; fi + - ../../enable_doctest.sh + - cabal v2-build -w ${HC} ${TEST} ${BENCH} all + - if [ "x$TEST" = "x--enable-tests" ]; then cabal v2-test -w ${HC} ${TEST} all; fi # EOF diff --git a/appveyor.yml b/appveyor.yml index b93eab66..d6f71fc0 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -33,17 +33,15 @@ install: - "cabal --version" - "ghc --version" - "cabal %CABOPTS% update -vverbose+nowrap" - - "cabal %CABOPTS% install hspec-discover" - - "cabal %CABOPTS% install cabal-doctest" build: off deploy: off test_script: - IF EXIST configure.ac bash -c "autoreconf -i" - - "cabal %CABOPTS% new-build -j1 -vnormal+nowrap --dry all" + - "cabal %CABOPTS% v2-build -j1 -vnormal+nowrap --dry all" - ps: Push-AppveyorArtifact dist-newstyle\cache\plan.json - - "cabal %CABOPTS% new-build -j1 -vnormal+nowrap all" - - IF "%DOCTEST%"=="YES" (set TESTSUITE=all) ELSE (set TESTSUITE=network:test:spec) - - "cabal %CABOPTS% new-test -j1 -vnormal+nowrap %TESTSUITE%" + - "cabal %CABOPTS% v2-build -j1 -vnormal+nowrap all" + - IF "%DOCTEST%"=="YES" bash enable_doctest.sh + - "cabal %CABOPTS% v2-test -j1 -vnormal+nowrap all" - ps: ls network*.log -recurse | %{ Push-AppveyorArtifact $_} diff --git a/Setup.hs b/enable_doctest.sh old mode 100644 new mode 100755 similarity index 68% rename from Setup.hs rename to enable_doctest.sh index 5682db19..14c10186 --- a/Setup.hs +++ b/enable_doctest.sh @@ -1,3 +1,12 @@ +#!/bin/sh + +sed -i~ '/^library/i\ +custom-setup { setup-depends: base, Cabal >= 2, cabal-doctest >=1.0.6 && <1.1 } +' network.cabal +sed -i~ 's/^build-type:.*$/build-type: Custom/' network.cabal +sed -i~ 's/buildable: False/buildable: True/' network.cabal + +cat > Setup.hs < library > build-depends: network-uri-flag category: Network -build-type: Custom -cabal-version: >=1.10 +build-type: Configure extra-tmp-files: config.log config.status autom4te.cache network.buildinfo include/HsNetworkConfig.h @@ -50,9 +50,6 @@ tested-with: GHC == 7.8.4 , GHC == 8.4.4 , GHC == 8.6.2 -custom-setup - setup-depends: base, Cabal, cabal-doctest >=1.0.6 && <1.1 - library default-language: Haskell2010 exposed-modules: @@ -122,15 +119,20 @@ test-suite spec SimpleSpec type: exitcode-stdio-1.0 ghc-options: -Wall -threaded + -- NB: make sure to versions of hspec and hspec-discover + -- that work together; easiest way is to constraint + -- both packages to a small enough version range. + build-tools: hspec-discover == 2.6.* build-depends: base >= 4.7 && < 5, bytestring, directory, HUnit, network, - hspec + hspec == 2.6.* test-suite doctests + buildable: False default-language: Haskell2010 hs-source-dirs: tests main-is: doctests.hs