https://github.com/keera-studios/haskell-titan
Testing Infrastructure for Temporal AbstractioNs
https://github.com/keera-studios/haskell-titan
debugging frp functional-programming functional-reactive-programming haskell quickcheck record-and-replay testing visual-debugging
Last synced: 3 months ago
JSON representation
Testing Infrastructure for Temporal AbstractioNs
- Host: GitHub
- URL: https://github.com/keera-studios/haskell-titan
- Owner: keera-studios
- License: gpl-3.0
- Created: 2017-09-04T04:16:15.000Z (almost 8 years ago)
- Default Branch: develop
- Last Pushed: 2020-08-24T16:42:04.000Z (almost 5 years ago)
- Last Synced: 2025-03-23T20:37:18.102Z (3 months ago)
- Topics: debugging, frp, functional-programming, functional-reactive-programming, haskell, quickcheck, record-and-replay, testing, visual-debugging
- Language: Haskell
- Homepage: http://facebook.com/keerastudios
- Size: 578 KB
- Stars: 23
- Watchers: 5
- Forks: 0
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Haskell Titan - Testing Infrastructure for Temporal AbstractioNs
Haskell Titan is a testing and debugging system for reactive, time-varying and
interactive software.It is built on the principles of Functional Reactive Programming, although it's
ideas can be applied to other time-based abstractions.# Structure of Haskell Titan
Haskell Titan is composed of two parts: testing facilities and debugging
facilities.The testing facilities allow you to: 1) describe and test temporal unit
tests, and 2) test FRP programs using QuickCheck (both using real traces or
unit tests)The debugging facilities allow you to: 1) record and replay FRP programs in a
referentially transparent manner and 2) debug programs as you run them.Part of the testing facilities have been introduced in Yampa's repository
directly, and you can find them at:https://github.com/ivanperez-keera/Yampa
In this repo you will find:
- An extension of Yampa to run programs recording their input and debugging
them.- An interactive debugging GUI to connect to a running Yampa program and
control it remotely.## Getting started
### Debugging
It's easier to get started with an example:
```
$ git clone https://github.com/keera-studios/haskell-titan
$ cd haskell-titan
$ git clone https://github.com/ivanperez-keera/Yampa
$ cabal sandbox init
$ cabal install Yampa/ -fexpose-core
$ cabal install -fexamples titan-yampa-debugger/
$ cabal install titan-gui/
$ ./.cabal-sandbox/bin/titan-gui &
$ ./.cabal-sandbox/bin/titan-yampa-debugger-example-bouncing-ball
```You'll need GTK with glade installed. On Ubuntu you can:
```
$ apt-get install libglade2-dev
```## Related Papers
- [Testing and debugging functional reactive programming](https://dl.acm.org/citation.cfm?id=3110246)
# Collaborations
Please, send pull requests and file bugs.
If you are considering to do something similar for a different FRP
implementation, please consider adding a new backend for this project so that
we can join efforts. That way our efforts will be more likely to help you, and
yours will also help us. There's always some extra effort from trying to
collaborate with others, but it's totally worth it :)# Copyright
This software is the Copyright of Keera Studios Ltd. It is released under GPL-3 license.
If you find this license too restrictive for the environment where you need to
use Haskell Titan or to create an extension, please contact us at
[email protected] and provide details about your case. We may be able to
grant an exception.