[TS PBT] Search for property violations with USVM

Aperta
#352 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
35/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
kotlin, typescript

Direzione di ricerca

Start with dependencies #351 and #384, then trace the existing target and machine execution APIs and the JsConcreteValue extraction path. Review the focused examples and relevant tests for holding, false, throwing, precondition, and multi-call relational predicates. Done means scoped candidate artifacts and tests distinguish termination and capability outcomes without confirming candidates.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Part of #345. Depends on #351 and #384.

Goal

Use USVM to search for inputs violating the original TypeScript predicate under the shared declared domain and precondition.

Scope

  • Execute the mapped predicate with #351 inputs and a supported pure precondition following #384.
  • A false predicate result or any escaping predicate exception, including an assertion failure, is a candidate violation. Expected exceptions are caught inside the predicate. A non-boolean result is a property-definition error.
  • Support a relational predicate making multiple ordinary calls within one invocation. This does not require a general stateful-testing framework or persistent state between samples.
  • Use the existing target and machine execution APIs.
  • Extract supported candidate inputs once using JsConcreteValue, preserving ordered inputs and the supported alias/value semantics. #353 consumes this representation rather than implementing a second extraction layer.
  • Keep reached-target information independent from extraction failure and run termination. A reached state with unrepresentable inputs remains visible but is not a confirmed counterexample.
  • Distinguish no violation found within this search, timeout, unsupported execution, property-definition error, engine failure and input-resolution failure.
  • Async or otherwise unsupported predicates remain concrete-only where a backend can run them.

Definition of Done

  • Focused examples cover a holding predicate, false predicate, throwing predicate, precondition rejection/error and a multi-call relational property.
  • Candidate artifacts retain property ID, inputs when available, reached target, termination status and capability limitations.
  • No unsupported/opaque execution or timeout is reported as a proved property.
  • Every candidate remains unconfirmed until #353 replays it in the original runtime.
  • No duplicate capability model, exception framework, value codec or generic target framework is introduced.
  • Deliver the existing scoped implementation with relevant tests.

Concrete replay, shrinking and search hints are outside this issue.

Lingua principale
Kotlin
Stelle
33
Fork
27
Merge medio
4g 3h
PR unite (30g)
15

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di UnitTestBot/usvm

Tutte le issue di UnitTestBot/usvm

Issue simili

Altre issue su Kotlin

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.