@@ -4,6 +4,7 @@ use assert_fs::fixture::{FileWriteStr, PathChild};
4
4
use indoc:: indoc;
5
5
use shared:: test_utils:: output_assert:: { AsOutput , assert_stdout_contains} ;
6
6
use std:: fs;
7
+ use test_utils:: use_snforge_std_compatibility;
7
8
use toml_edit:: { DocumentMut , value} ;
8
9
9
10
#[ test]
@@ -178,38 +179,79 @@ fn test_backtrace_panic() {
178
179
. assert ( )
179
180
. failure ( ) ;
180
181
181
- if cfg ! ( feature = "supports-panic-backtrace" ) {
182
+ if use_snforge_std_compatibility ( ) {
183
+ assert_stdout_contains (
184
+ output,
185
+ indoc ! {
186
+ "[FAIL] backtrace_panic::Test::test_contract_panics
187
+
188
+ Failure data:
189
+ 0x417373657274206661696c6564 ('Assert failed')
190
+
191
+ error occurred in contract 'InnerContract'
192
+ stack backtrace:
193
+ 0: backtrace_panic::InnerContract::__wrapper__InnerContract__inner
194
+ at [..]lib.cairo:34:9
195
+
196
+ error occurred in contract 'OuterContract'
197
+ stack backtrace:
198
+ 0: backtrace_panic::OuterContract::__wrapper__OuterContract__outer
199
+ at [..]lib.cairo:15:9
200
+
201
+ [FAIL] backtrace_panic::Test::test_fork_contract_panics
202
+
203
+ Failure data:
204
+ 0x417373657274206661696c6564 ('Assert failed')
205
+
206
+ error occurred in forked contract with class hash: 0x554cb276fb5eb0788344f5431b9a166e2f445d8a91c7aef79d8c77e7eede956
207
+
208
+ error occurred in contract 'OuterContract'
209
+ stack backtrace:
210
+ 0: backtrace_panic::OuterContract::__wrapper__OuterContract__outer
211
+ at [..]lib.cairo:15:9"
212
+ } ,
213
+ ) ;
214
+ } else {
182
215
assert_stdout_contains (
183
216
output,
184
217
indoc ! {
185
218
"Failure data:
186
219
0x417373657274206661696c6564 ('Assert failed')
187
220
error occurred in contract 'InnerContract'
188
221
stack backtrace:
189
- 0: (inlined) core::array::ArrayImpl::append
190
- at [..]array .cairo:135:9
191
- 1: core::array_inline_macro
192
- at [..]lib.cairo:364:11
222
+ 0: core::panic_with_const_felt252
223
+ at [..]lib .cairo:364:5
224
+ 1: core::panic_with_const_felt252
225
+ at [..]lib.cairo:364:5
193
226
2: (inlined) core::Felt252PartialEq::eq
194
227
at [..]lib.cairo:231:9
195
228
3: (inlined) backtrace_panic::InnerContract::inner_call
196
- at [..]traits.cairo:442 :10
229
+ at [..]traits.cairo:441 :10
197
230
4: (inlined) backtrace_panic::InnerContract::InnerContract::inner
198
231
at [..]lib.cairo:40:16
199
232
5: backtrace_panic::InnerContract::__wrapper__InnerContract__inner
200
233
at [..]lib.cairo:35:13
201
234
202
235
error occurred in contract 'OuterContract'
203
236
stack backtrace:
204
- 0: (inlined) backtrace_panic::IInnerContractDispatcherImpl::inner
205
- at [..]lib.cairo:22:1
206
- 1: (inlined) backtrace_panic::OuterContract::OuterContract::outer
207
- at [..]lib.cairo:17:13
208
- 2: backtrace_panic::OuterContract::__wrapper__OuterContract__outer
237
+ 0: backtrace_panic::OuterContract::__wrapper__OuterContract__outer
209
238
at [..]lib.cairo:15:9"
210
239
} ,
211
240
) ;
212
- } else {
241
+ }
242
+ }
243
+
244
+ #[ test]
245
+ fn test_backtrace_panic_without_inlines ( ) {
246
+ let temp = setup_package ( "backtrace_panic" ) ;
247
+ without_inlines ( & temp) ;
248
+
249
+ let output = test_runner ( & temp)
250
+ . env ( "SNFORGE_BACKTRACE" , "1" )
251
+ . assert ( )
252
+ . failure ( ) ;
253
+
254
+ if use_snforge_std_compatibility ( ) {
213
255
assert_stdout_contains (
214
256
output,
215
257
indoc ! {
@@ -241,20 +283,7 @@ fn test_backtrace_panic() {
241
283
at [..]lib.cairo:15:9"
242
284
} ,
243
285
) ;
244
- }
245
- }
246
-
247
- #[ test]
248
- fn test_backtrace_panic_without_inlines ( ) {
249
- let temp = setup_package ( "backtrace_panic" ) ;
250
- without_inlines ( & temp) ;
251
-
252
- let output = test_runner ( & temp)
253
- . env ( "SNFORGE_BACKTRACE" , "1" )
254
- . assert ( )
255
- . failure ( ) ;
256
-
257
- if cfg ! ( feature = "supports-panic-backtrace" ) {
286
+ } else {
258
287
assert_stdout_contains (
259
288
output,
260
289
indoc ! {
@@ -306,43 +335,10 @@ fn test_backtrace_panic_without_inlines() {
306
335
at [..]lib.cairo:15:9"
307
336
} ,
308
337
) ;
309
- } else {
310
- assert_stdout_contains (
311
- output,
312
- indoc ! {
313
- "[FAIL] backtrace_panic::Test::test_contract_panics
314
-
315
- Failure data:
316
- 0x417373657274206661696c6564 ('Assert failed')
317
-
318
- error occurred in contract 'InnerContract'
319
- stack backtrace:
320
- 0: backtrace_panic::InnerContract::__wrapper__InnerContract__inner
321
- at [..]lib.cairo:34:9
322
-
323
- error occurred in contract 'OuterContract'
324
- stack backtrace:
325
- 0: backtrace_panic::OuterContract::__wrapper__OuterContract__outer
326
- at [..]lib.cairo:15:9
327
-
328
- [FAIL] backtrace_panic::Test::test_fork_contract_panics
329
-
330
- Failure data:
331
- 0x417373657274206661696c6564 ('Assert failed')
332
-
333
- error occurred in forked contract with class hash: 0x554cb276fb5eb0788344f5431b9a166e2f445d8a91c7aef79d8c77e7eede956
334
-
335
- error occurred in contract 'OuterContract'
336
- stack backtrace:
337
- 0: backtrace_panic::OuterContract::__wrapper__OuterContract__outer
338
- at [..]lib.cairo:15:9"
339
- } ,
340
- ) ;
341
338
}
342
339
}
343
340
344
341
#[ test]
345
- #[ cfg_attr( not( feature = "supports-panic-backtrace" ) , ignore) ]
346
342
fn test_handled_error_not_display ( ) {
347
343
let temp = setup_package ( "dispatchers" ) ;
348
344
@@ -364,10 +360,10 @@ fn test_handled_error_not_display() {
364
360
indoc ! { "
365
361
error occurred in contract 'ErrorHandler'
366
362
stack backtrace:
367
- 0: (inlined) core::array::ArrayImpl::append
368
- at [..]array .cairo:135:9
369
- 1: core::array_inline_macro
370
- at [..]lib.cairo:364:11
363
+ 0: core::panic_with_const_felt252
364
+ at [..]lib .cairo:364:5
365
+ 1: core::panic_with_const_felt252
366
+ at [..]lib.cairo:364:5
371
367
2: dispatchers::error_handler::ErrorHandler::ErrorHandler::catch_panic_and_fail
372
368
at [..]error_handler.cairo:50:21
373
369
3: dispatchers::error_handler::ErrorHandler::__wrapper__ErrorHandler__catch_panic_and_fail
0 commit comments