-
Notifications
You must be signed in to change notification settings - Fork 0
/
target.cabal
157 lines (149 loc) · 6.14 KB
/
target.cabal
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
name: target
version: 0.2.0.1
synopsis: Generate test-suites from refinement types.
description: Target is a library for testing Haskell functions based on
properties encoded as refinement types.
.
The programmer specifies the expected behavior of a
function with a refinement type, and Target then checks
that the function satisfies the specification by
enumerating valid inputs up to some size, calling the
function, and validating the output. Target excels when the
space of valid inputs is a sparse subset of all possible
inputs, e.g. when dealing with dataypes with complex
invariants like red-black trees.
.
"Test.Target" is the main entry point and should contain
everything you need to use Target with types from the
"Prelude". "Test.Target.Targetable" will also be useful if
you want to test functions that use other types.
.
For information on how to /specify/ interesting properties
with refinement types, we have a series of
<http://goto.ucsd.edu/~rjhala/liquid/haskell/blog/blog/categories/basic/ blog posts>
as well as an
<http://ucsd-progsys.github.io/liquidhaskell-tutorial/ evolving tutorial>.
Target uses the same specification language as LiquidHaskell,
so the examples should carry over.
.
Finally, Target requires either <https://z3.codeplex.com/ Z3>
(@>=4.3@) or <http://cvc4.cs.nyu.edu/web/ CVC4> (@>=1.4@) to
be present in your @PATH@.
license: MIT
license-file: LICENSE
author: Eric Seidel
maintainer: [email protected]
category: Testing
build-type: Simple
cabal-version: >=1.10
source-repository head
type: git
location: git://github.com/gridaphobe/target.git
library
default-language: Haskell2010
hs-source-dirs: src
ghc-options: -Wall -fno-warn-name-shadowing -fno-warn-orphans -fno-warn-unused-imports -fno-warn-dodgy-imports -fno-warn-deprecated-flags -fno-warn-deprecations
exposed-modules: Test.Target,
Test.Target.Eval,
Test.Target.Expr,
Test.Target.Monad,
Test.Target.Serialize,
Test.Target.Targetable,
Test.Target.Targetable.Function,
Test.Target.Testable,
Test.Target.Types,
Test.Target.Util
build-depends: base >=4.6 && <5
, containers >= 0.5.0.0
, directory >= 1.2.0.1
, exceptions >= 0.6
, filepath >= 1.3.0.1
, ghc >= 7.8.3
, ghc-paths
, hashable >= 1.2.4.0
, liquid-fixpoint >= 0.4
, liquidhaskell >= 0.5
, mtl >= 2.1.2
, pretty
, process
, syb >= 0.4.2
, tagged >= 0.7
, template-haskell >= 2.8
, text >= 1.0
, text-format
, th-lift
, transformers >= 0.3
, unordered-containers >= 0.2.3.0
, vector
-- only for the `monomorphic` TH splice
, QuickCheck >= 2.7
benchmark bench
type: exitcode-stdio-1.0
default-language: Haskell2010
hs-source-dirs: bench
ghc-options: -O2
main-is: Main.hs
build-depends: base,
aeson,
bytestring,
cassava,
SafeSemaphore,
vector,
xml-conduit,
data-timeout >= 0.3,
-- for XMonad
-- X11,
containers,
random,
tagged,
ghc,
unordered-containers,
mtl,
-- for Data.Map
deepseq,
--
--criterion,
--hastache,
--statistics,
time,
target,
template-haskell,
liquidhaskell,
liquid-fixpoint,
QuickCheck >= 2.6,
smallcheck >= 1.1
test-suite test
type: exitcode-stdio-1.0
default-language: Haskell2010
hs-source-dirs: test
ghc-options: -O2
main-is: Main.hs
other-modules: Expr, HOFs, List, Map, MapTest, RBTree, RBTreeTest
--c-sources: cbits/fpstring.c
--include-dirs: include
--includes: fpstring.h
build-depends: base,
target,
ghc,
tasty >= 0.8,
tasty-ant-xml,
tasty-hunit >= 0.8,
-- for Data.Map
containers,
deepseq,
-- for ByteString
array,
tagged,
mtl,
ghc-prim,
liquid-fixpoint,
liquidhaskell,
template-haskell,
unordered-containers
executable target
default-language: Haskell2010
hs-source-dirs: bin
main-is: Target.hs
build-depends: base,
hint,
target