PropRatt: Property-based testing framework for testing asynchronous FRP programs.

[ bsd3, library, program, testing ] [ Propose Tags ] [ Report a vulnerability ]

PropRatt is a property-based testing framework for testing Async Rattus programs. The key component of PropRatt is its specification language, which extends basic linear temporal logic with a means to express properties of several concurrent signals. This allows users to express temporal properties that relate data coming from different signals at different points in time.

More details about the specification language can be found in the accompanying paper.

Example specifications written in PropRatt:


[Skip to Readme]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.1.0.0, 0.2.0.0
Change log CHANGELOG.md
Dependencies AsyncRattus (>=0.2 && <0.3), base (>=4.7 && <5), containers (>=0.6.5 && <0.8), PropRatt, QuickCheck (>2.10 && <3) [details]
License BSD-3-Clause
Copyright 2025 Christian Emil Nielsen, Mathias Faber Kristiansen, Patrick Bahr
Author Christian Emil Nielsen, Mathias Faber Kristiansen, Patrick Bahr
Maintainer paba@itu.dk
Category testing
Source repo head: git clone https://github.com/pa-ba/PropRatt
Uploaded by PatrickBahr at 2025-11-21T10:41:07Z
Distributions
Executables timer-example, main-example
Downloads 8 total (3 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2025-11-21 [all 1 reports]

Readme for PropRatt-0.2.0.0

[back to package description]

PropRatt

PropRatt is a Haskell framework for testing AsyncRattus using property-based testing.

Overview

  • The main example file contains example specifications that test signal combinators of the Async Rattus library.
  • The timer example file contains the timer example from the paper.
  • The implementation of the specification language can be found in the PropRatt.LTL module.

Running examples

Using stack:

  • stack run main-example
  • stack run timer-example

Using cabal:

  • cabal run main-example
  • cabal run timer-example