-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbug-map.json
More file actions
57 lines (57 loc) · 2.67 KB
/
Copy pathbug-map.json
File metadata and controls
57 lines (57 loc) · 2.67 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
{
"description": "Maps each seeded bug to the real source range its toggle guards and the outcome operator mutants there are expected to get, so score fidelity can be checked automatically against the mutant set. Five bugs guard functions with operator mutant analogs (expected killed at the named tier). The tenfold timer bug is a semantic change (multiply a duration by ten) with no operator mutant analog in the unmutated code, so it has no adjacency row; its miss is the replay blind spot, demonstrated behaviourally by the seeded bug suite.",
"bugs": [
{
"id": "TM_BUG_FEE_MISROUTE",
"description": "posts the captured fee to the capture leg instead of the fee leg, so the gross total still balances while per leg reconciliation breaks",
"file": "src/domain/settlement.ts",
"whole": true,
"tier": "property",
"expectedOutcome": "killed"
},
{
"id": "TM_BUG_DOUBLE_CAPTURE",
"description": "folds the attempt number into the capture idempotency key, so a retried capture looks new and applies a second time",
"file": "src/domain/idempotency.ts",
"whole": true,
"tier": "property",
"expectedOutcome": "killed"
},
{
"id": "TM_BUG_APPROVAL_SKIP",
"description": "shifts the approval check to strictly greater than the threshold, so an amount exactly on the threshold slips past the approval gate",
"file": "src/domain/approval.ts",
"whole": true,
"tier": "property",
"expectedOutcome": "killed"
},
{
"id": "TM_BUG_SILENT_CAPTURE",
"description": "marks an exhausted capture failure as captured instead of routing it to compensation, hiding the failure so the intent looks captured",
"file": "src/domain/lifecycle.ts",
"start": 94,
"end": 105,
"tier": "property",
"expectedOutcome": "killed"
},
{
"id": "TM_BUG_COMP_ORDER",
"description": "swaps the refund and the ledger correction during compensation, so only the command order changes while the ledger and terminal state stay identical",
"file": "src/workflows/paymentIntent.ts",
"start": 191,
"end": 198,
"tier": "replay",
"expectedOutcome": "killed"
},
{
"id": "TM_BUG_TIMER_TENFOLD",
"description": "multiplies the approval timeout by ten, leaving the command sequence and terminal state unchanged",
"file": "src/workflows/paymentIntent.ts",
"start": 145,
"end": 157,
"tier": "replay",
"semanticOnly": true,
"note": "multiplies the approval timeout by ten; no operator mutant analog, replay is blind to timer durations. The miss is demonstrated behaviourally, not by adjacency."
}
]
}