Skip to content

Commit 8f11790

Browse files
starknet_os_flow_tests: add revert reason verification to fuzz tests
1 parent 3a8a01b commit 8f11790

5 files changed

Lines changed: 88 additions & 56 deletions

File tree

crates/blockifier_test_utils/resources/feature_contracts/cairo0/compiled/fuzz_revert_compiled.json

Lines changed: 42 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
],
3939
"EXTERNAL": [
4040
{
41-
"offset": 570,
41+
"offset": 578,
4242
"selector": "0x8e64dfac867f301a439703710296f437e9f91d1bba17cfea5ad7f137a5acd"
4343
},
4444
{
@@ -56,16 +56,16 @@
5656
"__main__",
5757
"__main__.test_revert_fuzz"
5858
],
59-
"end_pc": 412,
59+
"end_pc": 420,
6060
"flow_tracking_data": {
6161
"ap_tracking": {
6262
"group": 24,
63-
"offset": 62
63+
"offset": 88
6464
},
6565
"reference_ids": {}
6666
},
6767
"name": "error_message",
68-
"start_pc": 408,
68+
"start_pc": 416,
6969
"value": "panic_scenario"
7070
},
7171
{
@@ -74,7 +74,7 @@
7474
"__main__",
7575
"__main__.test_revert_fuzz"
7676
],
77-
"end_pc": 518,
77+
"end_pc": 526,
7878
"flow_tracking_data": {
7979
"ap_tracking": {
8080
"group": 24,
@@ -83,7 +83,7 @@
8383
"reference_ids": {}
8484
},
8585
"name": "error_message",
86-
"start_pc": 514,
86+
"start_pc": 522,
8787
"value": "new_hash_cairo0"
8888
},
8989
{
@@ -92,7 +92,7 @@
9292
"__main__",
9393
"__main__.test_revert_fuzz"
9494
],
95-
"end_pc": 558,
95+
"end_pc": 566,
9696
"flow_tracking_data": {
9797
"ap_tracking": {
9898
"group": 24,
@@ -101,7 +101,7 @@
101101
"reference_ids": {}
102102
},
103103
"name": "error_message",
104-
"start_pc": 554,
104+
"start_pc": 562,
105105
"value": "should_fail_undeployed"
106106
},
107107
{
@@ -110,7 +110,7 @@
110110
"__main__",
111111
"__main__.test_revert_fuzz"
112112
],
113-
"end_pc": 566,
113+
"end_pc": 574,
114114
"flow_tracking_data": {
115115
"ap_tracking": {
116116
"group": 24,
@@ -121,7 +121,7 @@
121121
}
122122
},
123123
"name": "error_message",
124-
"start_pc": 562,
124+
"start_pc": 570,
125125
"value": "Unknown scenario: {scenario}."
126126
}
127127
],
@@ -538,16 +538,24 @@
538538
"0x4826800180018000",
539539
"0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffffb",
540540
"0x20680017fff7fff",
541-
"0xc",
541+
"0x14",
542+
"0x48127ff67fff8000",
543+
"0x48127ff67fff8000",
544+
"0x48127ff67fff8000",
545+
"0x480a80007fff8000",
546+
"0x1104800180018000",
547+
"0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffff30",
548+
"0x400680017fff7fff",
549+
"0x70616e69635f7363656e6172696f",
542550
"0x480680017fff8000",
543551
"0x1",
544552
"0x400680017fff7fff",
545553
"0x0",
546-
"0x48127ff57fff8000",
547-
"0x48127ff57fff8000",
548-
"0x48127ff57fff8000",
554+
"0x48127ffb7fff8000",
555+
"0x48127ffb7fff8000",
556+
"0x48127ffb7fff8000",
549557
"0x1104800180018000",
550-
"0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffff3f",
558+
"0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffff37",
551559
"0x208b7fff7fff7ffe",
552560
"0x4826800180018000",
553561
"0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffffa",
@@ -557,16 +565,16 @@
557565
"0x48127ff57fff8000",
558566
"0x48127ff57fff8000",
559567
"0x1104800180018000",
560-
"0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffeca",
568+
"0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffec2",
561569
"0x48127ffc7fff8000",
562570
"0x48127ffc7fff8000",
563571
"0x48127ffc7fff8000",
564572
"0x482480017ffc8000",
565573
"0x1",
566574
"0x1104800180018000",
567-
"0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffed0",
575+
"0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffec8",
568576
"0x1104800180018000",
569-
"0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffff2c",
577+
"0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffff24",
570578
"0x208b7fff7fff7ffe",
571579
"0x4826800180018000",
572580
"0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffff9",
@@ -577,9 +585,9 @@
577585
"0x48127ff47fff8000",
578586
"0x480a80007fff8000",
579587
"0x1104800180018000",
580-
"0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffff0f",
588+
"0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffff07",
581589
"0x1104800180018000",
582-
"0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffe43",
590+
"0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffe3b",
583591
"0x482480017fff8000",
584592
"0x800000000000011000000000000000000000000000000000000000000000000",
585593
"0x40137fff7fff8003",
@@ -590,18 +598,18 @@
590598
"0x1",
591599
"0x480a80037fff8000",
592600
"0x1104800180018000",
593-
"0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffe7d",
601+
"0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffe75",
594602
"0x48127fef7fff8000",
595603
"0x48127fef7fff8000",
596604
"0x1104800180018000",
597-
"0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffff10",
605+
"0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffff08",
598606
"0x208b7fff7fff7ffe",
599607
"0x4826800180018000",
600608
"0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffff8",
601609
"0x20680017fff7fff",
602610
"0x14",
603611
"0x1104800180018000",
604-
"0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffe2d",
612+
"0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffe25",
605613
"0x48127fee7fff8000",
606614
"0x480680017fff8000",
607615
"0xde6107000c0",
@@ -613,7 +621,7 @@
613621
"0x480680017fff8000",
614622
"0x1",
615623
"0x1104800180018000",
616-
"0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffe3e",
624+
"0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffe36",
617625
"0x48127ffe7fff8000",
618626
"0x48127fe37fff8000",
619627
"0x48127fe37fff8000",
@@ -623,7 +631,7 @@
623631
"0x20680017fff7fff",
624632
"0x12",
625633
"0x1104800180018000",
626-
"0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffe17",
634+
"0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffe0f",
627635
"0x48127fed7fff8000",
628636
"0x480680017fff8000",
629637
"0x11bca11000c0",
@@ -633,7 +641,7 @@
633641
"0x0",
634642
"0x48127ffb7fff8000",
635643
"0x1104800180018000",
636-
"0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffe1e",
644+
"0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffe16",
637645
"0x48127ffd7fff8000",
638646
"0x48127fe27fff8000",
639647
"0x48127fe27fff8000",
@@ -662,29 +670,29 @@
662670
"0x48127fee7fff8000",
663671
"0x480a80007fff8000",
664672
"0x1104800180018000",
665-
"0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffeba",
673+
"0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffeb2",
666674
"0x48127ffc7fff8000",
667675
"0x48127ffc7fff8000",
668676
"0x48127ffc7fff8000",
669677
"0x480a80007fff8000",
670678
"0x1104800180018000",
671-
"0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffeb4",
679+
"0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffeac",
672680
"0x48127ffc7fff8000",
673681
"0x48127ffc7fff8000",
674682
"0x48127ffc7fff8000",
675683
"0x480a80007fff8000",
676684
"0x1104800180018000",
677-
"0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffeae",
685+
"0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffea6",
678686
"0x1104800180018000",
679-
"0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffde2",
687+
"0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffdda",
680688
"0x48127ff77fff8000",
681689
"0x48127fc57fff8000",
682690
"0x48127fde7fff8000",
683691
"0x480680017fff8000",
684692
"0x0",
685693
"0x48127ffb7fff8000",
686694
"0x1104800180018000",
687-
"0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffddf",
695+
"0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffdd7",
688696
"0x480680017fff8000",
689697
"0x1",
690698
"0x400680017fff7fff",
@@ -706,7 +714,7 @@
706714
"0x480280017ffb8000",
707715
"0x480280027ffb8000",
708716
"0x1104800180018000",
709-
"0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffea0",
717+
"0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffe98",
710718
"0x40780017fff7fff",
711719
"0x1",
712720
"0x48127ffc7fff8000",
@@ -899,7 +907,7 @@
899907
}
900908
}
901909
],
902-
"576": [
910+
"584": [
903911
{
904912
"accessible_scopes": [
905913
"__main__",
@@ -1589,7 +1597,7 @@
15891597
"decorators": [
15901598
"external"
15911599
],
1592-
"pc": 570,
1600+
"pc": 578,
15931601
"type": "function"
15941602
},
15951603
"__wrappers__.test_revert_fuzz.Args": {

crates/blockifier_test_utils/resources/feature_contracts/cairo0/fuzz_revert.cairo

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,10 @@ func test_revert_fuzz{syscall_ptr: felt*, pedersen_ptr: HashBuiltin*, range_chec
148148

149149
if (scenario == SCENARIO_PANIC) {
150150
// Cairo0 panics cannot be caught, so no need to handle orchestrator index.
151+
// Panic message is part of the scenario data; error_message requires a string, so assert
152+
// the revert reason is the expected one.
153+
let revert_reason = pop_front(orchestrator);
154+
assert revert_reason = 'panic_scenario';
151155
with_attr error_message("panic_scenario") {
152156
assert 0 = 1;
153157
}

crates/blockifier_test_utils/resources/feature_contracts/cairo1/fuzz_revert.cairo

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,9 @@ mod FuzzRevertContract {
138138
}
139139

140140
if scenario == SCENARIO_PANIC {
141-
panic_with_felt252(orchestrator.get_index());
141+
// Panic message is part of the scenario data.
142+
let message = orchestrator.pop_front();
143+
panic(array![orchestrator.get_index(), message]);
142144
}
143145

144146
if scenario == SCENARIO_INCREMENT_COUNTER {

crates/blockifier_test_utils/resources/feature_contracts/cairo1/fuzz_revert_2.cairo

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,9 @@ mod FuzzRevertContract {
140140
}
141141

142142
if scenario == SCENARIO_PANIC {
143-
panic_with_felt252(orchestrator.get_index());
143+
// Panic message is part of the scenario data.
144+
let message = orchestrator.pop_front();
145+
panic(array![orchestrator.get_index(), message]);
144146
}
145147

146148
if scenario == SCENARIO_INCREMENT_COUNTER {

0 commit comments

Comments
 (0)