extrapolate 0.4.1 → 0.4.2
raw patch · 12 files changed
+114/−74 lines, 12 filesdep ~expressdep ~leancheckdep ~speculatePVP ok
version bump matches the API change (PVP)
Dependency ranges changed: express, leancheck, speculate
API changes (from Hackage documentation)
Files
- .gitignore +1/−0
- .travis.yml +25/−13
- README.md +4/−0
- extrapolate.cabal +14/−8
- mk/depend.mk +0/−3
- mk/ghcdeps +1/−1
- mk/haddock-i +1/−1
- mk/haskell.mk +3/−3
- mk/install-on +30/−0
- stack-lts-11.yaml +0/−13
- stack.yaml +4/−8
- test/sdist +31/−24
.gitignore view
@@ -3,6 +3,7 @@ **/cabal.sandbox.config **/idx/ **/dist/+dist-newstyle **/log/ etc .stack-work
.travis.yml view
@@ -1,6 +1,6 @@ # .travis.yml file for Extrapolate #-# Copyright: (c) 2017-2018 Rudy Matela+# Copyright: (c) 2017-2020 Rudy Matela # License: 3-Clause BSD (see the file LICENSE) # Maintainer: Rudy Matela <rudy@matela.com.br> @@ -22,6 +22,9 @@ - export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:$PATH - ghc --version - cabal --version+- haddock --version+- du -hd3 ~/.cabal ~/.ghc || true+- du -hd4 ~/.stack || true - rm -f ~/.cabal/config && cabal update # Download and unpack the stack executable # "Once Travis whitelists the stack.dev files," simply include stack in the@@ -31,35 +34,42 @@ - travis_retry curl -L https://www.stackage.org/stack/linux-x86_64 | tar xz --wildcards --strip-components=1 -C ~/.local/bin '*/stack' - stack config set system-ghc --global true - stack --version-- cabal install leancheck speculate+- cabal install leancheck express speculate || cabal install leancheck express speculate --lib script: - make && make test-- make haddock HADDOCKFLAGS=-#- travis_wait 30 cabal test-- stack $STACKR --no-terminal --skip-ghc-check test --ghc-options=-O0+- make haddock+- make test-sdist+- cabal test --ghc-option=-O0+- stack --resolver $STACKVER --no-terminal --skip-ghc-check test --ghc-options=-O0 matrix: allow_failures: - ghc: 'head' include: - ghc: 'head'- env: GHCVER=head CABALVER=head+ env: GHCVER=head CABALVER=head STACKVER=nightly-2020-03-28 addons: {apt: {packages: [ghc-head, cabal-install-head], sources: hvr-ghc}}+ - ghc: '8.10'+ env: GHCVER=8.10.1 CABALVER=3.2 STACKVER=nightly-2020-03-28+ addons: {apt: {packages: [ghc-8.10.1, cabal-install-3.2], sources: hvr-ghc}}+ - ghc: '8.8'+ env: GHCVER=8.8.3 CABALVER=3.0 STACKVER=lts-15.6+ addons: {apt: {packages: [ghc-8.8.3, cabal-install-3.0], sources: hvr-ghc}} - ghc: '8.6'- env: GHCVER=8.6.3 CABALVER=2.4- addons: {apt: {packages: [ghc-8.6.3, cabal-install-2.4], sources: hvr-ghc}}+ env: GHCVER=8.6.5 CABALVER=2.4 STACKVER=lts-14.27+ addons: {apt: {packages: [ghc-8.6.5, cabal-install-2.4], sources: hvr-ghc}} - ghc: '8.4'- env: GHCVER=8.4.4 CABALVER=2.2+ env: GHCVER=8.4.4 CABALVER=2.2 STACKVER=lts-12.26 addons: {apt: {packages: [ghc-8.4.4, cabal-install-2.2], sources: hvr-ghc}} - ghc: '8.2'- env: GHCVER=8.2.2 CABALVER=2.0+ env: GHCVER=8.2.2 CABALVER=2.0 STACKVER=lts-11.22 addons: {apt: {packages: [ghc-8.2.2, cabal-install-2.0], sources: hvr-ghc}} - ghc: '8.0'- env: GHCVER=8.0.2 CABALVER=1.24+ env: GHCVER=8.0.2 CABALVER=1.24 STACKVER=lts-9.21 addons: {apt: {packages: [ghc-8.0.2, cabal-install-1.24], sources: hvr-ghc}} - ghc: '7.10'- env: GHCVER=7.10.3 CABALVER=1.22 STACK_YAML=stack-lts-11.yaml+ env: GHCVER=7.10.3 CABALVER=1.22 STACKVER=lts-6.35 addons: {apt: {packages: [ghc-7.10.3, cabal-install-1.22], sources: hvr-ghc}} # we only support stack with GHC >= 7.10 - ghc: '7.8'@@ -69,10 +79,12 @@ - export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:$PATH - ghc --version - cabal --version+ - haddock --version - rm -f ~/.cabal/config && cabal update - cabal install Cabal==1.18.*- - cabal install leancheck speculate+ - cabal install leancheck express speculate script: - make && make test - make haddock HADDOCKFLAGS=+ - make test-sdist - cabal test
README.md view
@@ -22,6 +22,10 @@ To test if it installed correctly, follow through the next section. +Starting from Cabal v3, you need to pass `--lib` to `cabal install`:++ $ cabal install extrapolate --lib+ Using Extrapolate -----------------
extrapolate.cabal view
@@ -1,5 +1,5 @@ name: extrapolate-version: 0.4.1+version: 0.4.2 synopsis: generalize counter-examples of test properties description: Extrapolate is a tool able to provide generalized counter-examples of test@@ -63,13 +63,19 @@ , mk/ghcdeps , mk/haddock-i , mk/haskell.mk+ , mk/install-on , stack.yaml- , stack-lts-11.yaml , test/model/bench/*.out , test/model/eg/*.out , test/sdist-tested-with: GHC==8.6, GHC==8.4, GHC==8.2, GHC==8.0- , GHC==7.10, GHC==7.8+tested-with: GHC==8.10+ , GHC==8.8+ , GHC==8.6+ , GHC==8.4+ , GHC==8.2+ , GHC==8.0+ , GHC==7.10+ , GHC==7.8 source-repository head type: git@@ -78,7 +84,7 @@ source-repository this type: git location: https://github.com/rudymatela/extrapolate- tag: v0.4.1+ tag: v0.4.2 library exposed-modules: Test.Extrapolate@@ -95,10 +101,10 @@ , Test.Extrapolate.Utils other-extensions: TemplateHaskell, CPP build-depends: base >= 4 && < 5- , leancheck >= 0.9.1+ , leancheck >= 0.9.3 , template-haskell- , speculate >= 0.4.1- , express >= 0.1.0+ , speculate >= 0.4.2+ , express >= 0.1.3 hs-source-dirs: src default-language: Haskell2010
mk/depend.mk view
@@ -305,11 +305,8 @@ mk/Toplibs.hs src/Test/Extrapolate/ConditionalGeneralization.o: \ src/Test/Extrapolate/Utils.hs \- src/Test/Extrapolate/TypeBinding.hs \- src/Test/Extrapolate/Testable.hs \ src/Test/Extrapolate/Speculation.hs \ src/Test/Extrapolate/Generalization.hs \- src/Test/Extrapolate/Generalizable.hs \ src/Test/Extrapolate/Expr.hs \ src/Test/Extrapolate/ConditionalGeneralization.hs src/Test/Extrapolate/Core.o: \
mk/ghcdeps view
@@ -2,7 +2,7 @@ # # ghcdeps: generate Haskell make dependencies for compiling with GHC. #-# Copyright (c) 2015-2019 Rudy Matela.+# Copyright (c) 2015-2020 Rudy Matela. # Distributed under the 3-Clause BSD licence. # # From a list of files provided on standard input,
mk/haddock-i view
@@ -2,7 +2,7 @@ # # haddock-i: list haddock's -i parameters. #-# Copyright (c) 2015-2019 Rudy Matela.+# Copyright (c) 2015-2020 Rudy Matela. # Distributed under the 3-Clause BSD licence. # # $ haddock-i <package1> <package2> ... <packageN>
mk/haskell.mk view
@@ -1,6 +1,6 @@ # Implicit rules for compiling Haskell code. #-# Copyright (c) 2015-2019 Rudy Matela.+# Copyright (c) 2015-2020 Rudy Matela. # Distributed under the 3-Clause BSD licence. # # You can optionally configure the "Configuration variables" below in your main@@ -39,7 +39,7 @@ # ALL_HSS: all Haskell files # You can override ALL/LIB_HSS in your main Makefile LIST_LIB_HSS ?= find src -name "*.hs"-LIST_ALL_HSS ?= find \( -path "./dist" -o -path "./.stack-work" \) -prune \+LIST_ALL_HSS ?= find \( -path "./dist*" -o -path "./.stack-work" -o -path "./Setup.hs" \) -prune \ -o -name "*.*hs" -print LIB_HSS ?= $(shell $(LIST_LIB_HSS)) ALL_HSS ?= $(shell $(LIST_ALL_HSS))@@ -97,7 +97,7 @@ haddock: doc/index.html clean-haddock:- rm -f doc/*.{html,css,js,png,gif,json} doc/src/*.{html,css,js} README.html+ rm -f doc/*.{html,css,js,png,gif,json} doc/src/* README.html upload-haddock: @echo "use \`cabal upload -d' instead"
+ mk/install-on view
@@ -0,0 +1,30 @@+#!/bin/bash+#+# mk/install-on: install or updates the mk folder on a Haskell project+#+# usage: ./mk/install-on path/to/project+#+# This assumes a few things:+#+# * tests are stored in a "test/" folder+# * sources are stored in a "src/" folder+set -e++errxit() {+ echo "$@" > /dev/stderr+ exit 1+}++src=`dirname $0`/..+dst="$1"++[ -n "$dst" ] || errxit "destination folder not provided"++mkdir -p $dst/mk+mkdir -p $dst/test++cp $src/mk/ghcdeps $dst/mk/ghcdeps+cp $src/mk/haddock-i $dst/mk/haddock-i+cp $src/mk/haskell.mk $dst/mk/haskell.mk+cp $src/mk/install-on $dst/mk/install-on+cp $src/test/sdist $dst/test/sdist
− stack-lts-11.yaml
@@ -1,13 +0,0 @@-resolver: lts-11.22--packages:-- .--extra-deps:-- leancheck-0.9.1-- speculate-0.4.1-- express-0.1.1--flags: {}--extra-package-dbs: []
stack.yaml view
@@ -1,13 +1,9 @@-resolver: lts-13.30+resolver: lts-15.6 # or ghc-8.8.3 packages: - . extra-deps:-- leancheck-0.9.1-- speculate-0.4.1-- express-0.1.1--flags: {}--extra-package-dbs: []+- leancheck-0.9.3+- speculate-0.4.2+- express-0.1.3
test/sdist view
@@ -1,33 +1,40 @@ #!/bin/bash #-# test-sdist: tests the package generated by "cabal sdist".+# test/sdist: tests the package generated by "cabal sdist". #-# Copyright (c) 2015-2018 Rudy Matela.+# Copyright (c) 2015-2020 Rudy Matela. # Distributed under the 3-Clause BSD licence.++set -xe+ export LC_ALL=C # consistent sort+ pkgver=` cat *.cabal | grep "^version:" | sed -e "s/version: *//"` pkgname=`cat *.cabal | grep "^name:" | sed -e "s/name: *//"`-pkg=$pkgname-$pkgver-set -x-cabal sdist &&-cd dist &&-tar -tf $pkg.tar.gz | sort --ignore-case > ls-cabal-i &&-tar -tf $pkg.tar.gz | sort --ignore-case --unique > ls-cabal-iu &&-diff -rud ls-cabal-i ls-cabal-iu &&-rm -f ls-cabal ls-cabal-ignore-case &&-if [ -d ../.git ]+pkgbase=$pkgname-$pkgver++cabal sdist++# Try to find the package generated by cabal.+pkg=`find dist* -name $pkgbase.tar.gz`+[ -f "$pkg" ]+# If the script fails here, either:+# * no package was generated+# * there are packages in both dist and dist-newstyle folders.++tmp=`mktemp -d /tmp/test-sdist-XXXXXXXXXX`++# Test if our file is compatible with case-insensitive filesystems.+tar -tf $pkg | sort --ignore-case > $tmp/ls-cabal-i+tar -tf $pkg | sort --ignore-case --unique > $tmp/ls-cabal-iu+diff -rud $tmp/ls-cabal-i $tmp/ls-cabal-iu++if [ -d .git ] then- # on git repo, test if files are the same- git -C .. ls-files | sort > ls-git &&- tar -tf $pkg.tar.gz | grep -v "/$" | sed -e "s,$pkg/,," | sort > ls-cabal &&- diff -rud ls-git ls-cabal &&- rm -f ls-git ls-cabal-else- # outside of git repo, test build- rm -rf $pkg/ &&- tar -xzf $pkg.tar.gz &&- cd $pkg/ &&- cabal configure --enable-tests --enable-benchmarks &&- cabal build &&- cabal test+ # Test if files included by cabal are the same as files tracked in git.+ git ls-files | sort > $tmp/ls-git+ tar -tf $pkg | grep -v "/$" | sed -e "s,$pkgbase/,," | sort > $tmp/ls-cabal+ diff -rud $tmp/ls-git $tmp/ls-cabal fi++rm -r $tmp