Initial hedgehog setup

This commit is contained in:
Owen Harvey 2020-01-23 11:00:24 +10:00
parent e999aa48f9
commit 3c69c886bc
4 changed files with 36 additions and 8 deletions

4
cabal.project Normal file
View File

@ -0,0 +1,4 @@
packages: .
package zlib
flags: +pkg-config

View File

@ -49,7 +49,7 @@ Library
-Wall
-Wcompat
-Wmonomorphism-restriction
-Wmissing-local-signatures
-Wmissing-signatures
-Wmissing-export-lists
-Wmissing-import-lists
-Wmissing-home-modules
@ -137,7 +137,7 @@ Executable extopenscad
-Wall
-Wcompat
-Wmonomorphism-restriction
-Wmissing-local-signatures
-Wmissing-signatures
-Wmissing-export-lists
-Wmissing-import-lists
-Wmissing-home-modules
@ -161,7 +161,7 @@ Executable docgen
-Wall
-Wcompat
-Wmonomorphism-restriction
-Wmissing-local-signatures
-Wmissing-signatures
-Wmissing-export-lists
-Wmissing-import-lists
-Wmissing-home-modules
@ -196,7 +196,7 @@ Executable implicitsnap
-Wall
-Wcompat
-Wmonomorphism-restriction
-Wmissing-local-signatures
-Wmissing-signatures
-Wmissing-export-lists
-Wmissing-import-lists
-Wmissing-home-modules
@ -223,7 +223,7 @@ Executable Benchmark
-Wall
-Wcompat
-Wmonomorphism-restriction
-Wmissing-local-signatures
-Wmissing-signatures
-Wmissing-export-lists
-Wmissing-import-lists
-Wmissing-home-modules
@ -241,7 +241,10 @@ Test-suite test-implicit
base,
hspec,
implicit,
parsec
parsec,
HUnit,
hedgehog,
hw-hspec-hedgehog
Main-is: Main.hs
Hs-source-dirs: tests
Ghc-options:
@ -252,7 +255,7 @@ Test-suite test-implicit
-Wall
-Wcompat
-Wmonomorphism-restriction
-Wmissing-local-signatures
-Wmissing-signatures
-Wmissing-export-lists
-Wmissing-import-lists
-Wmissing-home-modules
@ -269,6 +272,7 @@ Test-suite test-implicit
ExecSpec.Util
MessageSpec.Message
MessageSpec.Util
PropertySpec
Benchmark parser-bench
Type: exitcode-stdio-1.0
@ -289,7 +293,7 @@ Benchmark parser-bench
-Wall
-Wcompat
-Wmonomorphism-restriction
-Wmissing-local-signatures
-Wmissing-signatures
-Wmissing-export-lists
-Wmissing-import-lists
-Wmissing-home-modules

View File

@ -20,6 +20,8 @@ import ExecSpec.Expr(exprExec)
-- the execution test for warnings.
import MessageSpec.Message(programExec)
import PropertySpec (propSpec)
main :: IO ()
main = hspec $ do
-- run tests against the expression parsing engine.
@ -30,3 +32,6 @@ main = hspec $ do
describe "expression execution" exprExec
-- run tests against the evaluation engine, checking for messages.
describe "program execution" programExec
-- Generate data to be evaluated, and ensure the properties hold.
describe "property tests" propSpec

15
tests/PropertySpec.hs Normal file
View File

@ -0,0 +1,15 @@
{-# LANGUAGE OverloadedStrings #-}
module PropertySpec
( propSpec
) where
import Prelude (($), Bool (True), (.))
import Test.Hspec (it, Spec)
import HaskellWorks.Hspec.Hedgehog (requireProperty)
import Hedgehog ((===))
propSpec :: Spec
propSpec =
it "trivial" . requireProperty $ do
True === True