theft

property-based testing for C: generate input to find obscure bugs, then reduce to minimal failing input

  • 所有者: silentbicycle/theft
  • 平台:
  • 許可證: ISC License
  • 分類:
  • 主題:
  • 喜歡:
    0
      比較:

Github星跟蹤圖

theft: property-based testing for C

theft is a C library for property-based testing. Where example-based
testing checks test results for specific input, theft tests assert
general properties ("for any possible input, [some condition] should
hold"), generate input, and search for counter-examples that make the
test fail. If theft finds any failures, it also knows how to generate
and test simpler variants of the input, and then report the simplest
counter-example found.

theft is distributed under the ISC license.

Installation

theft does not depend on anything beyond C99 and a Unix-like
environment. Its internal tests use greatest, but there is not any
coupling between them. It contains implementations of the
Mersenne Twister PRNG and the FNV-1a hashing algorithm -
see their files for copyright info.

To build, using GNU make:

$ make

Note: You may need to call it as gmake, especially if building on BSD.

To build and run the tests:

$ make test

This will produce example output from several falsifiable properties,
and confirm that failures have been found.

To install libtheft and its headers:

$ make install    # using sudo, if necessary

theft can also be vendored inside of projects -- in that case, just make
sure the headers in ${VENDOR}/theft/inc/ are added to the -I include
path, and ${VENDOR}/theft/build/libtheft.a is linked.

Usage

For usage documentation, see doc/usage.md.

Properties

For some examples of properties to test, see
doc/properties.md.

Shrinking and Auto-shrinking

For more info about shrinking and auto-shrinking, see
doc/shrinking.md.

Forking

theft can fork before running properties, to shrink failures that make
the code under test crash or exceed an optional timeout. For more info,
see doc/forking.md.

主要指標

概覽
名稱與所有者silentbicycle/theft
主編程語言C
編程語言Makefile (語言數: 3)
平台
許可證ISC License
所有者活动
創建於2014-08-03 18:10:25
推送於2020-12-17 09:52:11
最后一次提交2019-02-11 12:52:20
發布數8
最新版本名稱v0.4.5 (發布於 2019-02-11 13:03:02)
第一版名稱v0.2.0 (發布於 2014-08-06 08:11:39)
用户参与
星數622
關注者數22
派生數33
提交數253
已啟用問題?
問題數41
打開的問題數26
拉請求數8
打開的拉請求數5
關閉的拉請求數8
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?