Skip to content

Releases: smythi93/Tests4Py

Tests4Py 1.0.0

Choose a tag to compare

@smythi93 smythi93 released this 23 Jul 20:12
3e2328f

First stable release. Every reproducible bug in the benchmark is now fully supported β€” each ships an oracle, a unit-test generator, a system-test generator, a harness, a valid grammar, and a curated diversity set of 10 passing + 10 failing tests. Every failing test is fault-distinguishing: it fails on the buggy build and passes on the fixed build.

Coverage

  • 328 / 328 reproducible bugs fully supported across 20 projects (ansible, black, calculator, cookiecutter, expression, fastapi, httpie, keras, luigi, markup, matplotlib, middle, pysnooper, sanic, scrapy, spacy, thefuck, tornado, tqdm, youtubedl).
  • 328 reproducible = 338 registered bugs βˆ’ 10 non-evaluatable (test_status_buggy == PASSING).
  • Includes 18 bugs that stock Tests4Py could not distinguish because the fixed build failed its own canonical test (test_status_fixed == FAILING): 14 unlocked by the merge-commit checkout fix and 4 via bespoke oracles.
  • The 25 keras bugs whose fault requires TensorFlow (unavailable on Apple Silicon) were built and validated on x86_64 Linux.

Added

  • Optional Docker backend (t4p docker {env,project,instance,run,mode}): a three-layer image model (environment β†’ project β†’ instance) so the toolchain, interpreter, and dependency layers are built once and reused via Docker's layer cache. Toggle with mode = pyenv | docker (default pyenv). Fully additive; the pyenv backend is untouched.
  • Per-subject acceptance suite (tests/test_subjects.py, subjects marker): grammar validity, diversity behaviour, and generation per bug. Excluded from CI; run locally with pytest -m subjects.
  • Oracles, generators, harnesses, grammars, and 10+10 diversity resources for every supported bug.

Fixed

  • Merge-commit checkout. When a fix commit is a merge, git show --name-only lists only the merge's combined-diff files, so the source fix was never overlaid onto the fixed build β€” leaving it byte-identical to buggy. Checkout now detects a merge fix commit and locates the changed files via git diff <buggy>..<fixed>. Non-merge commits are unaffected.

Changed

  • Version bumped to 1.0.0.

See CHANGELOG.md for details.

0.0.7

Choose a tag to compare

@smythi93 smythi93 released this 26 Jun 14:13
a828185
Merge pull request #72 from smythi93/68-problems-with-expression-subj…

0.0.5

Choose a tag to compare

@smythi93 smythi93 released this 06 Sep 08:09
updated to version 0.0.5

0.0.4

Choose a tag to compare

@smythi93 smythi93 released this 21 Aug 13:56
updated version to 0.0.4

0.0.2

Choose a tag to compare

@smythi93 smythi93 released this 11 Jul 10:17
removed tests.json

0.0.1b

Choose a tag to compare

@smythi93 smythi93 released this 19 May 07:20
updated workflow name