[TS PBT] Search for property violations with USVM
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
- Ambito
- compilers, testing-qa
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
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di UnitTestBot/usvm
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 45/100
UnitTestBot/usvm#388 ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
UnitTestBot/usvm#384 ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
UnitTestBot/usvm#382 ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
UnitTestBot/usvm#379 ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
UnitTestBot/usvm#373 ·
Tutte le issue di UnitTestBot/usvm
Issue simili
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
Anthonyy232/Paperize#614 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
bitcoindevkit/bdk-ffi#1125 ·
-
Issue: Bug
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 91/100
OpenAPITools/openapi-generator#24978 ·
-
helsemelding-json-schema json-schema-core
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100