[TS PBT] Confirm and shrink witnesses from two-phase property search
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 35/100
- Type d'issue
- Fonctionnalité
- Clarté
- Plutôt claire
- Activité
- Active
- Stack technique
- kotlin, typescript
Piste de recherche
Start with the candidate inputs from #352, JsConcreteValue, and the shared invocation contract from #384; trace them through the existing backend execution and reproduction path. Add focused tests using the existing adapters and codecs for replay classifications, explicit examples, and shrinking. Done means real TypeScript-runtime fixtures preserve values and aliases, minimized witnesses still violate the property, and unsupported or timed-out shrinking is reported without publishing unconfirmed counterexamples.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Part of #345. Direct-counterexample delivery depends on #352/#384. The core contract includes hypothesis replay through #398 and is required by #405. Generator-choice and command-sequence reduction are later integrations owned by #400/#402; their acceptance gates do not block core completion.
Goal
Confirm every symbolic candidate in original TypeScript and reuse backend shrinking while preserving exactly what the witness demonstrates.
Scope
- Consume #352's extracted JsConcreteValue inputs; reuse the current backend invocation, codecs and process supervision.
- Validate declared domain/generator support as applicable, execute the original precondition and original predicate using #384.
- Keep outcomes distinct: confirmed original-property violation, confirmed hypothesis refutation with original property holding, no refutation/property holds, domain/precondition rejection, unrepresentable input, unsupported replay, nondeterminism, and property/engine/replay error.
- A hypothesis replay checks the same program point, context, guard and relation that generated the symbolic target. A different invocation/site does not confirm it. A full original oracle is still required even for an intermediate-prefix target.
- Preserve target/assertion/hypothesis identity and original input alongside replay status. An exception in a precondition is an error; predicate exceptions follow #384. Hypothesis refutation alone is not counted as a program defect.
- Preserve special values, argument order and supported aliases/isolation without coercion. Generator-source/context revisions are pinned.
- Feed eligible external witnesses to backend shrinking; inspect canShrinkWithoutContext or retained native context as appropriate. Explicit-example execution and a zero shrink count are not proof of minimality.
- Use a target-specific reduction predicate: same original assertion failure, or same guarded hypothesis refutation. Recheck domain/admission and original predicate on the final result. Preserve the original confirmed witness if shrinking is unavailable, fails or times out.
- For #400, preserve dependent generator construction/choice validity. For #402, reduce commands/arguments while retaining valid guards and the same failure. Add small adapters to backend facilities rather than a general custom shrinker.
- Return both confirmed failing inputs and useful non-failing behavioral witnesses to #355 with provenance and a reproducible replay artifact. A replay token is not portable across arbitrary generator/backend revisions.
- Replay/reduction share #354's monotonic deadline. Reserve validation budget and retain unconfirmed candidates when it expires.
Definition of Done
- Real-runtime fixtures cover confirmed/spurious/rejected/unrepresentable inputs, exceptions, hypothesis-only refutation and unsupported shrinking.
- At least one external supported witness actually shrinks and still reproduces the same target-specific failure.
- Source/context mismatch, mutation isolation and core target-preserving reduction have explicit behavior tests. Generator-choice dependency and command-sequence reduction tests are delivered with #400/#402.
- Artifacts retain original candidate, concrete classification, minimized result if any, reduction metric/attempts, backend revision and reproduction data.
- No candidate is reported as a final fault before original-oracle replay; no hypothesis-only witness is counted as an original-property violation.
- Langage dominant
- Kotlin
- Étoiles
- 33
- Forks
- 27
- Merge moyen
- 3 j 21 h
- PR mergées (30 j)
- 88
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de UnitTestBot/usvm
-
Difficulté 4/5 3-5 jours Accessibilité débutants 15/100
UnitTestBot/usvm#577 ·
Les mainteneurs répondent en général sous 1 jour
-
[TS] Integrate computed class members without mixing symbol and string keysPeut-être pris @CaelmBleidd l’a pris aujourd’hui. Ouverte
Difficulté 4/5 3-5 jours Accessibilité débutants 15/100
UnitTestBot/usvm#575 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 4/5 3-5 jours Accessibilité débutants 38/100
UnitTestBot/usvm#555 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 5/100
UnitTestBot/usvm#498 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 8/100
UnitTestBot/usvm#497 ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de UnitTestBot/usvm
Issues similaires
-
[Submission] WeChat KidsOuvertesubmit-adaption submit-adaption-pre
Difficulté 1/5 Moins d'une heure Accessibilité débutants 82/100
BetterAndroid/android-notification-icon-project#750 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
openbase/planetsudo.engine#107 ·
Les mainteneurs répondent en général sous 1 jour
-
native-cpu: -Wreturn-type in skainet_row_threads.c:150 (worker fn has no return)Peut-être pris @Doomguy-BFG9000 l’a pris aujourd’hui. Ouvertegood first issue size:xs skill:native
Difficulté 1/5 Moins d'une heure Accessibilité débutants 78/100
SKaiNET-developers/SKaiNET#1358 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
enhancement
Difficulté 2/5 1-3 heures Accessibilité débutants 63/100
IBRAHIMDANS/i18nSupportPlus#577 · 3 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
PostHog/posthog-kmp#100 ·
Les mainteneurs répondent en général sous 2 jours