Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Automated testing for Haskell programs
Haskell
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
examples
lib/base
sessions
src
test
tmp
.gitignore
.travis.yml
LICENSE
Main.hs
README.md
dart-haskell.cabal
test.sh

README.md

Description

Automated testing for Haskell programs. We take a program, simulate it against likely runs and report inputs that make it crash.

The idea is motivated by Godefroid, Patrice and Klarlund, Nils and Sen, Koushik, DART: Directed Automated Random Testing}, PLDI2005, 2005

Roadmap

  • Compile, interpret and test expressions.
  • Find paths that were not run using an SMT solver -- TODO
  • Simulate further -- TODO

It reports

  • How many functions were run. How many functions seem normal.
  • Which functions terminated because of an error and what kind of parameters make them crash.

Install

  1. Download Z3 and let its binary be in the binaries scope, e.g. on Linux, add it to your $PATH

  2. Install DART-Haskell

    git clone https://github.com/kmels/dart-haskell cd dart-haskell cabal install

Usage examples

> dart-haskell -f examples/interpreter/GHC.Num.hs -e numberTen
> 10

> dart-haskell -f examples/interpreter/data-constructors.hs -e tree1
> Branch Branch Leaf 1 Leaf 2 Leaf 3
Something went wrong with that request. Please try again.