Skip to content

Commit 125c706

Browse files
committed
proof: complete L3 strict review — catalog, hazard, MC/DC, governance
Drive the proof audit to zero errors / zero warnings under the L3 strict posture (fail_level: warn, scope: full). Catalog: 14 jsonparser-specific obligation class overlay entries (missing_path, truncated_*, sentinel_value_boundary, type_mismatch, error_propagation, ...) under proof/catalog/. Hazard review (hazard-sweep + hazard-analysis roles): enumerated concrete worst_case + severity for every obligation class across all 7 STK-REQs and 53 SYS-REQs. 9 hunt-campaign vectors filed under proof/vectors/, each closed-null citing the Fuzz*Native corpus + regression tests. Coverage (coverage role): full requirement-side MC/DC (369/369 rows witnessed, 0 uncovered), code-level MC/DC evidence pipeline, 45 property-based harnesses + honest proptest:skip on test infra, acceptance-criteria witnesses (15/15), obligation-evidence triples (94/94). New files: mcdc_spec_witnesses_test.go, obligation_evidence_test.go, property_test.go. Governance (govern + formal-proof roles): re-approved 13 stale SYS-REQs, confirmed 341 suspect trace links, aligned 111 verification states, independence attestation on parser.vars.yaml, impact reviews re-recorded for parser.go. Spec: verification_method schema migration on 7 STK-REQ ACs, obligation decomposition closed (140/140), assurance_level L3 met. Final audit: 0 errors, 0 warnings, 11 info.
1 parent 753cda0 commit 125c706

163 files changed

Lines changed: 9328 additions & 1479 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

benchmark/benchmark_delete_test.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88

99
// Verifies: STK-REQ-005
1010
// MCDC STK-REQ-005: N/A
11+
// reqproof:proptest:skip performance benchmark; measures wall-clock time and allocations, output is non-deterministic and not comparable to an independent reference
1112
func BenchmarkDeleteSmall(b *testing.B) {
1213
b.ReportAllocs()
1314
b.ResetTimer()
@@ -19,6 +20,7 @@ func BenchmarkDeleteSmall(b *testing.B) {
1920

2021
// Verifies: STK-REQ-005
2122
// MCDC STK-REQ-005: N/A
23+
// reqproof:proptest:skip performance benchmark; measures wall-clock time and allocations, output is non-deterministic and not comparable to an independent reference
2224
func BenchmarkDeleteNested(b *testing.B) {
2325
b.ReportAllocs()
2426
b.ResetTimer()
@@ -30,6 +32,7 @@ func BenchmarkDeleteNested(b *testing.B) {
3032

3133
// Verifies: STK-REQ-005
3234
// MCDC STK-REQ-005: N/A
35+
// reqproof:proptest:skip performance benchmark; measures wall-clock time and allocations, output is non-deterministic and not comparable to an independent reference
3336
func BenchmarkDeleteLarge(b *testing.B) {
3437
b.ReportAllocs()
3538
b.ResetTimer()

benchmark/benchmark_large_payload_test.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import (
2727
// MCDC STK-REQ-003: N/A
2828
// Verifies: STK-REQ-004
2929
// MCDC STK-REQ-004: N/A
30+
// reqproof:proptest:skip performance benchmark; measures wall-clock time and allocations, output is non-deterministic and not comparable to an independent reference
3031
func BenchmarkJsonParserLarge(b *testing.B) {
3132
for i := 0; i < b.N; i++ {
3233
jsonparser.ArrayEach(largeFixture, func(value []byte, dataType jsonparser.ValueType, offset int, err error) {
@@ -51,6 +52,7 @@ func BenchmarkJsonParserLarge(b *testing.B) {
5152
// MCDC STK-REQ-003: N/A
5253
// Verifies: STK-REQ-004
5354
// MCDC STK-REQ-004: N/A
55+
// reqproof:proptest:skip performance benchmark; measures wall-clock time and allocations, output is non-deterministic and not comparable to an independent reference
5456
func BenchmarkEncodingJsonStructLarge(b *testing.B) {
5557
for i := 0; i < b.N; i++ {
5658
var data LargePayload
@@ -72,6 +74,7 @@ func BenchmarkEncodingJsonStructLarge(b *testing.B) {
7274
// MCDC STK-REQ-003: N/A
7375
// Verifies: STK-REQ-004
7476
// MCDC STK-REQ-004: N/A
77+
// reqproof:proptest:skip performance benchmark; measures wall-clock time and allocations, output is non-deterministic and not comparable to an independent reference
7578
func BenchmarkEncodingJsonInterfaceLarge(b *testing.B) {
7679
for i := 0; i < b.N; i++ {
7780
var data interface{}
@@ -100,6 +103,7 @@ func BenchmarkEncodingJsonInterfaceLarge(b *testing.B) {
100103
// MCDC STK-REQ-003: N/A
101104
// Verifies: STK-REQ-004
102105
// MCDC STK-REQ-004: N/A
106+
// reqproof:proptest:skip performance benchmark; measures wall-clock time and allocations, output is non-deterministic and not comparable to an independent reference
103107
func BenchmarkFFJsonLarge(b *testing.B) {
104108
for i := 0; i < b.N; i++ {
105109
var data LargePayload
@@ -124,6 +128,7 @@ func BenchmarkFFJsonLarge(b *testing.B) {
124128
// MCDC STK-REQ-003: N/A
125129
// Verifies: STK-REQ-004
126130
// MCDC STK-REQ-004: N/A
131+
// reqproof:proptest:skip performance benchmark; measures wall-clock time and allocations, output is non-deterministic and not comparable to an independent reference
127132
func BenchmarkEasyJsonLarge(b *testing.B) {
128133
for i := 0; i < b.N; i++ {
129134
lexer := &jlexer.Lexer{Data: largeFixture}
@@ -149,6 +154,7 @@ func BenchmarkEasyJsonLarge(b *testing.B) {
149154
// MCDC STK-REQ-003: N/A
150155
// Verifies: STK-REQ-004
151156
// MCDC STK-REQ-004: N/A
157+
// reqproof:proptest:skip performance benchmark; measures wall-clock time and allocations, output is non-deterministic and not comparable to an independent reference
152158
func BenchmarkDjsonLarge(b *testing.B) {
153159
for i := 0; i < b.N; i++ {
154160
m, _ := djson.DecodeObject(largeFixture)

benchmark/benchmark_medium_payload_test.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ import (
3535
// MCDC STK-REQ-005: N/A
3636
// Verifies: STK-REQ-007
3737
// MCDC STK-REQ-007: N/A
38+
// reqproof:proptest:skip performance benchmark; measures wall-clock time and allocations, output is non-deterministic and not comparable to an independent reference
3839
func BenchmarkJsonParserMedium(b *testing.B) {
3940
for i := 0; i < b.N; i++ {
4041
jsonparser.Get(mediumFixture, "person", "name", "fullName")
@@ -58,6 +59,7 @@ func BenchmarkJsonParserMedium(b *testing.B) {
5859
// MCDC STK-REQ-005: N/A
5960
// Verifies: STK-REQ-007
6061
// MCDC STK-REQ-007: N/A
62+
// reqproof:proptest:skip performance benchmark; measures wall-clock time and allocations, output is non-deterministic and not comparable to an independent reference
6163
func BenchmarkJsonParserDeleteMedium(b *testing.B) {
6264
fixture := make([]byte, 0, len(mediumFixture))
6365
b.ResetTimer()
@@ -81,6 +83,7 @@ func BenchmarkJsonParserDeleteMedium(b *testing.B) {
8183
// MCDC STK-REQ-005: N/A
8284
// Verifies: STK-REQ-007
8385
// MCDC STK-REQ-007: N/A
86+
// reqproof:proptest:skip performance benchmark; measures wall-clock time and allocations, output is non-deterministic and not comparable to an independent reference
8487
func BenchmarkJsonParserEachKeyManualMedium(b *testing.B) {
8588
paths := [][]string{
8689
[]string{"person", "name", "fullName"},
@@ -117,6 +120,7 @@ func BenchmarkJsonParserEachKeyManualMedium(b *testing.B) {
117120
// MCDC STK-REQ-005: N/A
118121
// Verifies: STK-REQ-007
119122
// MCDC STK-REQ-007: N/A
123+
// reqproof:proptest:skip performance benchmark; measures wall-clock time and allocations, output is non-deterministic and not comparable to an independent reference
120124
func BenchmarkJsonParserEachKeyStructMedium(b *testing.B) {
121125
paths := [][]string{
122126
[]string{"person", "name", "fullName"},
@@ -165,6 +169,7 @@ func BenchmarkJsonParserEachKeyStructMedium(b *testing.B) {
165169
// MCDC STK-REQ-005: N/A
166170
// Verifies: STK-REQ-007
167171
// MCDC STK-REQ-007: N/A
172+
// reqproof:proptest:skip performance benchmark; measures wall-clock time and allocations, output is non-deterministic and not comparable to an independent reference
168173
func BenchmarkJsonParserObjectEachStructMedium(b *testing.B) {
169174
nameKey, githubKey, gravatarKey := []byte("name"), []byte("github"), []byte("gravatar")
170175
errStop := errors.New("stop")
@@ -224,6 +229,7 @@ func BenchmarkJsonParserObjectEachStructMedium(b *testing.B) {
224229
// MCDC STK-REQ-005: N/A
225230
// Verifies: STK-REQ-007
226231
// MCDC STK-REQ-007: N/A
232+
// reqproof:proptest:skip performance benchmark; measures wall-clock time and allocations, output is non-deterministic and not comparable to an independent reference
227233
func BenchmarkEncodingJsonStructMedium(b *testing.B) {
228234
for i := 0; i < b.N; i++ {
229235
var data MediumPayload
@@ -247,6 +253,7 @@ func BenchmarkEncodingJsonStructMedium(b *testing.B) {
247253
// MCDC STK-REQ-005: N/A
248254
// Verifies: STK-REQ-007
249255
// MCDC STK-REQ-007: N/A
256+
// reqproof:proptest:skip performance benchmark; measures wall-clock time and allocations, output is non-deterministic and not comparable to an independent reference
250257
func BenchmarkEncodingJsonInterfaceMedium(b *testing.B) {
251258
for i := 0; i < b.N; i++ {
252259
var data interface{}
@@ -280,6 +287,7 @@ func BenchmarkEncodingJsonInterfaceMedium(b *testing.B) {
280287
// MCDC STK-REQ-005: N/A
281288
// Verifies: STK-REQ-007
282289
// MCDC STK-REQ-007: N/A
290+
// reqproof:proptest:skip performance benchmark; measures wall-clock time and allocations, output is non-deterministic and not comparable to an independent reference
283291
func BenchmarkGabsMedium(b *testing.B) {
284292
for i := 0; i < b.N; i++ {
285293
json, _ := gabs.ParseJSON(mediumFixture)
@@ -311,6 +319,7 @@ func BenchmarkGabsMedium(b *testing.B) {
311319
// MCDC STK-REQ-005: N/A
312320
// Verifies: STK-REQ-007
313321
// MCDC STK-REQ-007: N/A
322+
// reqproof:proptest:skip performance benchmark; measures wall-clock time and allocations, output is non-deterministic and not comparable to an independent reference
314323
func BenchmarkGoSimpleJsonMedium(b *testing.B) {
315324
for i := 0; i < b.N; i++ {
316325
json, _ := simplejson.NewJson(mediumFixture)
@@ -339,6 +348,7 @@ func BenchmarkGoSimpleJsonMedium(b *testing.B) {
339348
// MCDC STK-REQ-005: N/A
340349
// Verifies: STK-REQ-007
341350
// MCDC STK-REQ-007: N/A
351+
// reqproof:proptest:skip performance benchmark; measures wall-clock time and allocations, output is non-deterministic and not comparable to an independent reference
342352
func BenchmarkFFJsonMedium(b *testing.B) {
343353
for i := 0; i < b.N; i++ {
344354
var data MediumPayload
@@ -365,6 +375,7 @@ func BenchmarkFFJsonMedium(b *testing.B) {
365375
// MCDC STK-REQ-005: N/A
366376
// Verifies: STK-REQ-007
367377
// MCDC STK-REQ-007: N/A
378+
// reqproof:proptest:skip performance benchmark; measures wall-clock time and allocations, output is non-deterministic and not comparable to an independent reference
368379
func BenchmarkJasonMedium(b *testing.B) {
369380
for i := 0; i < b.N; i++ {
370381
json, _ := jason.NewObjectFromBytes(mediumFixture)
@@ -395,6 +406,7 @@ func BenchmarkJasonMedium(b *testing.B) {
395406
// MCDC STK-REQ-005: N/A
396407
// Verifies: STK-REQ-007
397408
// MCDC STK-REQ-007: N/A
409+
// reqproof:proptest:skip performance benchmark; measures wall-clock time and allocations, output is non-deterministic and not comparable to an independent reference
398410
func BenchmarkUjsonMedium(b *testing.B) {
399411
for i := 0; i < b.N; i++ {
400412
json, _ := ujson.NewFromBytes(mediumFixture)
@@ -427,6 +439,7 @@ func BenchmarkUjsonMedium(b *testing.B) {
427439
// MCDC STK-REQ-005: N/A
428440
// Verifies: STK-REQ-007
429441
// MCDC STK-REQ-007: N/A
442+
// reqproof:proptest:skip performance benchmark; measures wall-clock time and allocations, output is non-deterministic and not comparable to an independent reference
430443
func BenchmarkDjsonMedium(b *testing.B) {
431444
for i := 0; i < b.N; i++ {
432445
m, _ := djson.DecodeObject(mediumFixture)
@@ -457,6 +470,7 @@ func BenchmarkDjsonMedium(b *testing.B) {
457470
// MCDC STK-REQ-005: N/A
458471
// Verifies: STK-REQ-007
459472
// MCDC STK-REQ-007: N/A
473+
// reqproof:proptest:skip performance benchmark; measures wall-clock time and allocations, output is non-deterministic and not comparable to an independent reference
460474
func BenchmarkUgirjiMedium(b *testing.B) {
461475
for i := 0; i < b.N; i++ {
462476
decoder := codec.NewDecoderBytes(mediumFixture, new(codec.JsonHandle))
@@ -485,6 +499,7 @@ func BenchmarkUgirjiMedium(b *testing.B) {
485499
// MCDC STK-REQ-005: N/A
486500
// Verifies: STK-REQ-007
487501
// MCDC STK-REQ-007: N/A
502+
// reqproof:proptest:skip performance benchmark; measures wall-clock time and allocations, output is non-deterministic and not comparable to an independent reference
488503
func BenchmarkEasyJsonMedium(b *testing.B) {
489504
for i := 0; i < b.N; i++ {
490505
lexer := &jlexer.Lexer{Data: mediumFixture}

benchmark/benchmark_set_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88

99
// Verifies: STK-REQ-005
1010
// MCDC STK-REQ-005: N/A
11+
// reqproof:proptest:skip performance benchmark; measures wall-clock time and allocations, output is non-deterministic and not comparable to an independent reference
1112
func BenchmarkSetLarge(b *testing.B) {
1213
b.ReportAllocs()
1314

benchmark/benchmark_small_payload_test.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import (
2424

2525
// Just for emulating field access, so it will not throw "evaluated but not used"
2626
// Benchmark helper for STK-REQ-001, STK-REQ-003, STK-REQ-004, STK-REQ-005, and STK-REQ-007.
27+
// reqproof:proptest:skip no-op benchmark helper; performs no work, returns immediately, no behavioral variance to property-test
2728
func nothing(_ ...interface{}) {}
2829

2930
/*
@@ -39,6 +40,7 @@ func nothing(_ ...interface{}) {}
3940
// MCDC STK-REQ-005: N/A
4041
// Verifies: STK-REQ-007
4142
// MCDC STK-REQ-007: N/A
43+
// reqproof:proptest:skip performance benchmark; measures wall-clock time and allocations, output is non-deterministic and not comparable to an independent reference
4244
func BenchmarkJsonParserSmall(b *testing.B) {
4345
for i := 0; i < b.N; i++ {
4446
jsonparser.Get(smallFixture, "uuid")
@@ -60,6 +62,7 @@ func BenchmarkJsonParserSmall(b *testing.B) {
6062
// MCDC STK-REQ-005: N/A
6163
// Verifies: STK-REQ-007
6264
// MCDC STK-REQ-007: N/A
65+
// reqproof:proptest:skip performance benchmark; measures wall-clock time and allocations, output is non-deterministic and not comparable to an independent reference
6366
func BenchmarkJsonParserEachKeyManualSmall(b *testing.B) {
6467
paths := [][]string{
6568
[]string{"uuid"},
@@ -94,6 +97,7 @@ func BenchmarkJsonParserEachKeyManualSmall(b *testing.B) {
9497
// MCDC STK-REQ-005: N/A
9598
// Verifies: STK-REQ-007
9699
// MCDC STK-REQ-007: N/A
100+
// reqproof:proptest:skip performance benchmark; measures wall-clock time and allocations, output is non-deterministic and not comparable to an independent reference
97101
func BenchmarkJsonParserEachKeyStructSmall(b *testing.B) {
98102
paths := [][]string{
99103
[]string{"uuid"},
@@ -134,6 +138,7 @@ func BenchmarkJsonParserEachKeyStructSmall(b *testing.B) {
134138
// MCDC STK-REQ-005: N/A
135139
// Verifies: STK-REQ-007
136140
// MCDC STK-REQ-007: N/A
141+
// reqproof:proptest:skip performance benchmark; measures wall-clock time and allocations, output is non-deterministic and not comparable to an independent reference
137142
func BenchmarkJsonParserObjectEachStructSmall(b *testing.B) {
138143
uuidKey, tzKey, uaKey, stKey := []byte("uuid"), []byte("tz"), []byte("ua"), []byte("st")
139144
errStop := errors.New("stop")
@@ -182,6 +187,7 @@ func BenchmarkJsonParserObjectEachStructSmall(b *testing.B) {
182187
// MCDC STK-REQ-005: N/A
183188
// Verifies: STK-REQ-007
184189
// MCDC STK-REQ-007: N/A
190+
// reqproof:proptest:skip performance benchmark; measures wall-clock time and allocations, output is non-deterministic and not comparable to an independent reference
185191
func BenchmarkJsonParserSetSmall(b *testing.B) {
186192
for i := 0; i < b.N; i++ {
187193
jsonparser.Set(smallFixture, []byte(`"c90927dd-1588-4fe7-a14f-8a8950cfcbd8"`), "uuid")
@@ -203,6 +209,7 @@ func BenchmarkJsonParserSetSmall(b *testing.B) {
203209
// MCDC STK-REQ-005: N/A
204210
// Verifies: STK-REQ-007
205211
// MCDC STK-REQ-007: N/A
212+
// reqproof:proptest:skip performance benchmark; measures wall-clock time and allocations, output is non-deterministic and not comparable to an independent reference
206213
func BenchmarkJsonParserDelSmall(b *testing.B) {
207214
fixture := make([]byte, 0, len(smallFixture))
208215
b.ResetTimer()
@@ -230,6 +237,7 @@ func BenchmarkJsonParserDelSmall(b *testing.B) {
230237
// MCDC STK-REQ-005: N/A
231238
// Verifies: STK-REQ-007
232239
// MCDC STK-REQ-007: N/A
240+
// reqproof:proptest:skip performance benchmark; measures wall-clock time and allocations, output is non-deterministic and not comparable to an independent reference
233241
func BenchmarkEncodingJsonStructSmall(b *testing.B) {
234242
for i := 0; i < b.N; i++ {
235243
var data SmallPayload
@@ -249,6 +257,7 @@ func BenchmarkEncodingJsonStructSmall(b *testing.B) {
249257
// MCDC STK-REQ-005: N/A
250258
// Verifies: STK-REQ-007
251259
// MCDC STK-REQ-007: N/A
260+
// reqproof:proptest:skip performance benchmark; measures wall-clock time and allocations, output is non-deterministic and not comparable to an independent reference
252261
func BenchmarkEncodingJsonInterfaceSmall(b *testing.B) {
253262
for i := 0; i < b.N; i++ {
254263
var data interface{}
@@ -272,6 +281,7 @@ func BenchmarkEncodingJsonInterfaceSmall(b *testing.B) {
272281
// MCDC STK-REQ-005: N/A
273282
// Verifies: STK-REQ-007
274283
// MCDC STK-REQ-007: N/A
284+
// reqproof:proptest:skip performance benchmark; measures wall-clock time and allocations, output is non-deterministic and not comparable to an independent reference
275285
func BenchmarkGabsSmall(b *testing.B) {
276286
for i := 0; i < b.N; i++ {
277287
json, _ := gabs.ParseJSON(smallFixture)
@@ -298,6 +308,7 @@ func BenchmarkGabsSmall(b *testing.B) {
298308
// MCDC STK-REQ-005: N/A
299309
// Verifies: STK-REQ-007
300310
// MCDC STK-REQ-007: N/A
311+
// reqproof:proptest:skip performance benchmark; measures wall-clock time and allocations, output is non-deterministic and not comparable to an independent reference
301312
func BenchmarkGoSimplejsonSmall(b *testing.B) {
302313
for i := 0; i < b.N; i++ {
303314
json, _ := simplejson.NewJson(smallFixture)
@@ -321,6 +332,7 @@ func BenchmarkGoSimplejsonSmall(b *testing.B) {
321332
// MCDC STK-REQ-005: N/A
322333
// Verifies: STK-REQ-007
323334
// MCDC STK-REQ-007: N/A
335+
// reqproof:proptest:skip performance benchmark; measures wall-clock time and allocations, output is non-deterministic and not comparable to an independent reference
324336
func BenchmarkGoSimplejsonSetSmall(b *testing.B) {
325337
for i := 0; i < b.N; i++ {
326338
json, _ := simplejson.NewJson(smallFixture)
@@ -347,6 +359,7 @@ func BenchmarkGoSimplejsonSetSmall(b *testing.B) {
347359
// MCDC STK-REQ-005: N/A
348360
// Verifies: STK-REQ-007
349361
// MCDC STK-REQ-007: N/A
362+
// reqproof:proptest:skip performance benchmark; measures wall-clock time and allocations, output is non-deterministic and not comparable to an independent reference
350363
func BenchmarkFFJsonSmall(b *testing.B) {
351364
for i := 0; i < b.N; i++ {
352365
var data SmallPayload
@@ -369,6 +382,7 @@ func BenchmarkFFJsonSmall(b *testing.B) {
369382
// MCDC STK-REQ-005: N/A
370383
// Verifies: STK-REQ-007
371384
// MCDC STK-REQ-007: N/A
385+
// reqproof:proptest:skip performance benchmark; measures wall-clock time and allocations, output is non-deterministic and not comparable to an independent reference
372386
func BenchmarkJasonSmall(b *testing.B) {
373387
for i := 0; i < b.N; i++ {
374388
json, _ := jason.NewObjectFromBytes(smallFixture)
@@ -395,6 +409,7 @@ func BenchmarkJasonSmall(b *testing.B) {
395409
// MCDC STK-REQ-005: N/A
396410
// Verifies: STK-REQ-007
397411
// MCDC STK-REQ-007: N/A
412+
// reqproof:proptest:skip performance benchmark; measures wall-clock time and allocations, output is non-deterministic and not comparable to an independent reference
398413
func BenchmarkUjsonSmall(b *testing.B) {
399414
for i := 0; i < b.N; i++ {
400415
json, _ := ujson.NewFromBytes(smallFixture)
@@ -421,6 +436,7 @@ func BenchmarkUjsonSmall(b *testing.B) {
421436
// MCDC STK-REQ-005: N/A
422437
// Verifies: STK-REQ-007
423438
// MCDC STK-REQ-007: N/A
439+
// reqproof:proptest:skip performance benchmark; measures wall-clock time and allocations, output is non-deterministic and not comparable to an independent reference
424440
func BenchmarkDjsonSmall(b *testing.B) {
425441
for i := 0; i < b.N; i++ {
426442
m, _ := djson.DecodeObject(smallFixture)
@@ -441,6 +457,7 @@ func BenchmarkDjsonSmall(b *testing.B) {
441457
// MCDC STK-REQ-005: N/A
442458
// Verifies: STK-REQ-007
443459
// MCDC STK-REQ-007: N/A
460+
// reqproof:proptest:skip performance benchmark; measures wall-clock time and allocations, output is non-deterministic and not comparable to an independent reference
444461
func BenchmarkUgirjiSmall(b *testing.B) {
445462
for i := 0; i < b.N; i++ {
446463
decoder := codec.NewDecoderBytes(smallFixture, new(codec.JsonHandle))
@@ -464,6 +481,7 @@ func BenchmarkUgirjiSmall(b *testing.B) {
464481
// MCDC STK-REQ-005: N/A
465482
// Verifies: STK-REQ-007
466483
// MCDC STK-REQ-007: N/A
484+
// reqproof:proptest:skip performance benchmark; measures wall-clock time and allocations, output is non-deterministic and not comparable to an independent reference
467485
func BenchmarkEasyJsonSmall(b *testing.B) {
468486
for i := 0; i < b.N; i++ {
469487
lexer := &jlexer.Lexer{Data: smallFixture}

bytes_test.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ var parseIntTests = []ParseIntTest{
102102

103103
// Verifies: SYS-REQ-015 [boundary]
104104
// MCDC SYS-REQ-015: N/A
105+
// reqproof:proptest:skip test-case harness function; is itself a unit/integration test, not a pure function amenable to property-based testing
105106
func TestBytesParseInt(t *testing.T) {
106107
for _, test := range parseIntTests {
107108
out, ok, overflow := parseInt([]byte(test.in))
@@ -118,6 +119,7 @@ func TestBytesParseInt(t *testing.T) {
118119

119120
// Verifies: SYS-REQ-015 [example]
120121
// MCDC SYS-REQ-015: N/A
122+
// reqproof:proptest:skip performance benchmark; measures wall-clock time and allocations, output is non-deterministic and not comparable to an independent reference
121123
func BenchmarkParseInt(b *testing.B) {
122124
bytes := []byte("123")
123125
for i := 0; i < b.N; i++ {
@@ -128,6 +130,7 @@ func BenchmarkParseInt(b *testing.B) {
128130
// Alternative implementation using unsafe and delegating to strconv.ParseInt
129131
// Verifies: SYS-REQ-015 [example]
130132
// MCDC SYS-REQ-015: N/A
133+
// reqproof:proptest:skip performance benchmark; measures wall-clock time and allocations, output is non-deterministic and not comparable to an independent reference
131134
func BenchmarkParseIntUnsafeSlower(b *testing.B) {
132135
bytes := []byte("123")
133136
for i := 0; i < b.N; i++ {
@@ -138,6 +141,7 @@ func BenchmarkParseIntUnsafeSlower(b *testing.B) {
138141
// Old implementation that did not check for overflows.
139142
// Verifies: SYS-REQ-015 [example]
140143
// MCDC SYS-REQ-015: N/A
144+
// reqproof:proptest:skip performance benchmark; measures wall-clock time and allocations, output is non-deterministic and not comparable to an independent reference
141145
func BenchmarkParseIntOverflows(b *testing.B) {
142146
bytes := []byte("123")
143147
for i := 0; i < b.N; i++ {
@@ -146,6 +150,7 @@ func BenchmarkParseIntOverflows(b *testing.B) {
146150
}
147151

148152
// Test helper for SYS-REQ-015.
153+
// reqproof:proptest:skip test-helper checking overflow classification on a fixed sample set; assertion utility with no independently observable pure contract
149154
func parseIntOverflows(bytes []byte) (v int64, ok bool) {
150155
if len(bytes) == 0 {
151156
return 0, false

0 commit comments

Comments
 (0)