Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add meta state testing tools #944

Merged
merged 35 commits into from Jun 20, 2022
Merged

Conversation

dustyNdumb
Copy link
Contributor

@dustyNdumb dustyNdumb commented May 16, 2022

Resolves #862.

  • Add ability to run custom meta funcs from wasm

Release Notes: New API in gtest::Program has been provided to have the ability to execute the program's meta functions. This allows covering meta functions by tests. The new API allows executing meta functions with incoming payload or without it. The payload can be provided as a byte array or as a struct that implements Encode and Decode traits. Refer to Program::meta_state* functions for more details. You can find usage examples in our Supply Chain dApp.

ds #862
initial commit
# Conflicts:
#	core-processor/src/executor.rs
#	core-processor/src/processor.rs
#	gtest/src/manager.rs
#	pallets/gear/src/lib.rs
#	pallets/gear/src/mock.rs
master merge fixes
@dustyNdumb dustyNdumb marked this pull request as draft May 16, 2022 09:22
style fix
add simplified wasm executor to gtest
shared some code with other projects to avoid copy code
added happy case test
# Conflicts:
#	core-processor/src/executor.rs
#	core-processor/src/processor.rs
#	core/src/env.rs
#	gtest/src/manager.rs
#	runtime/src/lib.rs
master merge fixes
spec++
dead code warning fixes
add gr_error func to wasm_executor
minor simplification
gtest/src/empty_ext.rs Outdated Show resolved Hide resolved
gtest/src/wasm_executor.rs Outdated Show resolved Hide resolved
gtest/src/wasm_executor.rs Outdated Show resolved Hide resolved
@github-actions
Copy link
Contributor

github-actions bot commented Jun 8, 2022

cbb7789
Pallet tests (values are in nanosegconds)

Total execution time

name current median average lower/upper quartile min max
Total time 113 255 000 000; +4276.16% ❗ 2 588 000 000 5 103 129 999 (2 474 500 000; 4 179 500 000) 2 385 000 000 136 929 000 000

name = pallet-gas

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 405 000 000; +1372.73% ‼️ 27 500 000 34 970 000 (20 000 000; 35 000 000) 6 000 000 233 000 000
tests::all_keys_are_cleared 375 000 000; +913.51% ❗ 37 000 000 55 610 000 (30 000 000; 51 000 000) 15 000 000 398 000 000
tests::gas_free_after_consumed 106 000 000; +207.25% ❗ 34 500 000 46 940 000 (23 000 000; 49 000 000) 9 000 000 228 000 000
tests::limit_vs_origin 327 000 000; +834.29% ‼️ 35 000 000 53 340 000 (28 000 000; 51 500 000) 9 000 000 320 000 000
tests::long_chain 47 000 000; +51.61% ✔️ 31 000 000 52 430 000 (24 000 000; 48 000 000) 10 000 000 405 000 000
tests::simple_value_tree 116 000 000; +231.43% ❗ 35 000 000 47 360 000 (23 500 000; 46 500 000) 10 000 000 264 000 000
tests::split_with_no_value 359 000 000; +925.71% ‼️ 35 000 000 50 630 000 (25 500 000; 53 500 000) 10 000 000 263 000 000
tests::sub_nodes_tree 192 000 000; +464.71% ❗ 34 000 000 50 550 000 (24 000 000; 49 000 000) 9 000 000 279 000 000
tests::sub_nodes_tree_with_spends 368 000 000; +922.22% ‼️ 36 000 000 50 360 000 (26 000 000; 55 000 000) 12 000 000 276 000 000
tests::subtree_gas_limit_remains_intact 242 000 000; +554.05% ❗ 37 000 000 51 090 000 (27 000 000; 54 000 000) 13 000 000 264 000 000
tests::value_tree_known_errors 108 000 000; +170.00% ❗ 40 000 000 59 720 000 (29 000 000; 60 500 000) 11 000 000 339 000 000

name = pallet-gear

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 172 000 000; +537.04% ❗ 27 000 000 34 140 000 (17 000 000; 39 000 000) 7 000 000 220 000 000
schedule::test::print_test_schedule 77 000 000; +175.00% ❗ 28 000 000 39 270 000 (18 500 000; 46 000 000) 8 000 000 177 000 000
tests::block_gas_limit_works 100 000 000; +100.00% ❗ 50 000 000 63 800 000 (35 000 000; 75 500 000) 17 000 000 279 000 000
tests::cascading_messages_with_value_do_not_overcharge 1 196 000 000; +368.10% ❗ 255 500 000 326 530 000 (219 000 000; 340 000 000) 160 000 000 1 338 000 000
tests::claim_value_from_mailbox_works 448 000 000; +745.28% ‼️ 53 000 000 65 480 000 (36 000 000; 77 500 000) 22 000 000 231 000 000
tests::defer_program_initialization 215 000 000; +91.11% ❗ 112 500 000 128 620 000 (83 000 000; 151 000 000) 50 000 000 444 000 000
tests::distributor_distribute 135 000 000; +31.71% ❗ 102 500 000 127 360 000 (76 000 000; 133 500 000) 42 000 000 470 000 000
tests::distributor_initialize 168 000 000; +112.66% ❗ 79 000 000 97 800 000 (64 000 000; 107 500 000) 32 000 000 511 000 000
tests::events_logging_works 185 000 000; +203.28% ❗ 61 000 000 77 460 000 (43 500 000; 91 500 000) 26 000 000 260 000 000
tests::exit_handle 351 000 000; +470.73% ‼️ 61 500 000 69 900 000 (44 500 000; 79 000 000) 33 000 000 197 000 000
tests::exit_init 342 000 000; +344.16% ‼️ 77 000 000 92 350 000 (57 000 000; 110 500 000) 25 000 000 256 000 000
tests::gas_spent_precalculated 681 000 000; +1074.14% ‼️ 58 000 000 70 780 000 (43 000 000; 82 000 000) 22 000 000 231 000 000
tests::gas_spent_vs_balance 472 000 000; +257.58% ‼️ 132 000 000 156 790 000 (109 000 000; 176 000 000) 53 000 000 420 000 000
tests::init_message_logging_works 176 000 000; +179.37% ❗ 63 000 000 81 130 000 (49 000 000; 92 500 000) 22 000 000 335 000 000
tests::init_wait_reply_exit_cleaned_storage 578 000 000; +373.77% ‼️ 122 000 000 152 570 000 (104 000 000; 160 500 000) 64 000 000 491 000 000
tests::lazy_pages 93 000 000; +30.07% ❗ 71 500 000 82 550 000 (50 000 000; 89 500 000) 29 000 000 324 000 000
tests::mailbox_works 187 000 000; +179.10% ❗ 67 000 000 76 880 000 (47 000 000; 89 000 000) 18 000 000 301 000 000
tests::memory_access_cases 184 000 000; +170.59% ❗ 68 000 000 80 520 000 (48 500 000; 93 500 000) 15 000 000 315 000 000
tests::messages_processing_works 120 000 000; +69.01% ❗ 71 000 000 77 750 000 (50 500 000; 94 500 000) 19 000 000 344 000 000
tests::messages_to_paused_program_skipped 412 000 000; +405.52% ‼️ 81 500 000 98 370 000 (63 500 000; 113 500 000) 29 000 000 305 000 000
tests::messages_to_uninitialized_program_wait 476 000 000; +456.73% ‼️ 85 500 000 98 860 000 (66 000 000; 111 500 000) 29 000 000 389 000 000
tests::no_redundant_gas_value_after_exiting 122 000 000; +93.65% ❗ 63 000 000 80 510 000 (49 500 000; 100 500 000) 26 000 000 336 000 000
tests::paused_program_keeps_id 870 000 000; +830.48% ‼️ 93 500 000 109 420 000 (71 000 000; 121 500 000) 37 000 000 397 000 000
tests::program_lifecycle_works 83 000 000; +21.17% ✔️ 68 500 000 82 340 000 (47 000 000; 99 000 000) 15 000 000 365 000 000
tests::program_messages_to_paused_program_skipped 210 000 000; +64.71% ❗ 127 500 000 150 470 000 (100 000 000; 160 000 000) 59 000 000 552 000 000
tests::replies_to_paused_program_skipped 313 000 000; +245.86% ❗ 90 500 000 100 190 000 (62 500 000; 113 000 000) 34 000 000 340 000 000
tests::restrict_start_section 160 000 000; +180.70% ❗ 57 000 000 75 090 000 (42 000 000; 88 500 000) 18 000 000 268 000 000
tests::resume_program_works 336 000 000; +164.57% ❗ 127 000 000 149 270 000 (101 500 000; 152 000 000) 66 000 000 719 000 000
tests::send_message_expected_failure 156 000 000; +145.67% ❗ 63 500 000 80 280 000 (48 000 000; 84 000 000) 15 000 000 364 000 000
tests::send_message_works 799 000 000; +1110.61% ‼️ 66 000 000 83 490 000 (48 000 000; 95 000 000) 21 000 000 364 000 000
tests::send_reply_failure_to_claim_from_mailbox 132 000 000; +112.90% ❗ 62 000 000 73 130 000 (45 000 000; 96 000 000) 24 000 000 276 000 000
tests::send_reply_value_claiming_works 275 000 000; +304.41% ❗ 68 000 000 83 240 000 (53 000 000; 90 000 000) 22 000 000 328 000 000
tests::send_reply_works 222 000 000; +228.89% ❗ 67 500 000 80 020 000 (51 000 000; 101 000 000) 18 000 000 285 000 000
tests::spent_gas_to_reward_block_author_works 200 000 000; +241.88% ❗ 58 500 000 72 770 000 (47 000 000; 80 500 000) 18 000 000 310 000 000
tests::submit_program_expected_failure 253 000 000; +325.21% ❗ 59 500 000 69 540 000 (46 000 000; 83 500 000) 23 000 000 299 000 000
tests::submit_program_fails_on_duplicate_id 205 000 000; +256.52% ❗ 57 500 000 71 670 000 (44 500 000; 82 500 000) 20 000 000 389 000 000
tests::test_code_is_not_reset_within_program_submission 92 000 000; +50.82% ✔️ 61 000 000 78 420 000 (42 500 000; 96 000 000) 26 000 000 280 000 000
tests::test_code_is_not_submitted_twice_after_program_submission 213 000 000; +243.55% ❗ 62 000 000 76 510 000 (39 500 000; 94 500 000) 18 000 000 332 000 000
tests::test_code_submission_pass 99 000 000; +65.00% ❗ 60 000 000 72 790 000 (42 500 000; 83 500 000) 16 000 000 248 000 000
tests::test_create_program_duplicate 655 000 000; +319.87% ‼️ 156 000 000 171 960 000 (118 000 000; 208 500 000) 66 000 000 433 000 000
tests::test_create_program_duplicate_in_one_execution 256 000 000; +129.60% ❗ 111 500 000 126 040 000 (87 000 000; 152 000 000) 44 000 000 378 000 000
tests::test_create_program_miscellaneous 705 000 000; +331.19% ‼️ 163 500 000 185 880 000 (130 500 000; 217 000 000) 78 000 000 604 000 000
tests::test_create_program_no_code_hash 1 196 000 000; +341.33% ‼️ 271 000 000 324 920 000 (226 500 000; 351 500 000) 158 000 000 806 000 000
tests::test_create_program_simple 1 006 999 999; +457.89% ‼️ 180 500 000 214 500 000 (136 000 000; 218 000 000) 84 000 000 757 000 000
tests::test_create_program_with_exceeding_value 99 000 000; +18.56% ✔️ 83 500 000 99 700 000 (59 000 000; 105 000 000) 29 000 000 476 000 000
tests::test_create_program_with_value_lt_ed 512 000 000; +385.31% ‼️ 105 500 000 120 570 000 (83 000 000; 129 000 000) 47 000 000 321 000 000
tests::test_message_processing_for_non_existing_destination 76 000 000; +14.29% ✔️ 66 500 000 83 930 000 (49 500 000; 96 500 000) 16 000 000 288 000 000
tests::test_reply_to_terminated_program 312 000 000; +262.79% ❗ 86 000 000 101 710 000 (60 000 000; 118 000 000) 33 000 000 427 000 000
tests::test_same_code_submission_fails 52 000 000; -27.78% ✔️ 72 000 000 84 030 000 (52 000 000; 101 000 000) 16 000 000 224 000 000
tests::test_two_contracts_composition_works 1 631 000 000; +585.29% ‼️ 238 000 000 299 330 000 (201 500 000; 327 000 000) 154 000 000 761 000 000
tests::uninitialized_program_should_accept_replies 325 000 000; +178.97% ❗ 116 500 000 142 360 000 (94 500 000; 162 000 000) 59 000 000 435 000 000
tests::unstoppable_block_execution_works 179 000 000; +143.54% ❗ 73 500 000 92 650 000 (52 500 000; 113 000 000) 26 000 000 368 000 000
tests::unused_gas_released_back_works 280 000 000; +256.69% ‼️ 78 500 000 80 250 000 (57 000 000; 100 000 000) 15 000 000 207 000 000
tests::wake_messages_after_program_inited 470 000 000; +99.15% ❗ 236 000 000 291 000 000 (203 000 000; 308 500 000) 141 000 000 764 000 000

name = pallet-gear-debug

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 99 000 000; +92.23% ❗ 51 500 000 63 470 000 (35 000 000; 72 000 000) 7 000 000 304 000 000
tests::debug_mode_works 146 000 000; +84.81% ❗ 79 000 000 89 470 000 (60 500 000; 103 500 000) 25 000 000 308 000 000

name = pallet-gear-messenger

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 124 000 000; +172.53% ❗ 45 500 000 57 890 000 (31 000 000; 69 000 000) 8 000 000 352 000 000
tests::dequeued_impl_works_manually 132 000 000; +116.39% ❗ 61 000 000 78 790 000 (48 500 000; 92 000 000) 19 000 000 332 000 000
tests::queue_processing_impl_works_manually 124 000 000; +106.67% ❗ 60 000 000 76 790 000 (47 500 000; 84 500 000) 20 000 000 285 000 000
tests::queue_works 143 000 000; +136.36% ❗ 60 500 000 70 590 000 (45 500 000; 83 000 000) 11 000 000 244 000 000
tests::sent_impl_works 118 000 000; +112.61% ❗ 55 500 000 70 020 000 (45 000 000; 82 000 000) 21 000 000 340 000 000

name = pallet-gear-payment

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 99 000 000; +130.23% ❗ 43 000 000 55 940 000 (31 000 000; 64 000 000) 5 000 000 252 000 000
tests::custom_fee_multiplier_updated_per_block 91 000 000; +50.41% ❗ 60 500 000 71 040 000 (44 000 000; 88 500 000) 24 000 000 272 000 000
tests::fee_rounding_error_bounded_by_multiplier 188 000 000; +221.37% ❗ 58 500 000 69 690 000 (45 000 000; 79 000 000) 18 000 000 304 000 000
tests::mq_size_affecting_fee_works 227 000 000; +298.25% ❗ 57 000 000 68 310 000 (41 000 000; 80 500 000) 16 000 000 240 000 000
tests::mq_size_not_affecting_fee_works 196 000 000; +246.90% ❗ 56 500 000 72 810 000 (43 500 000; 91 500 000) 19 000 000 247 000 000
tests::query_info_and_fee_details_work 316 000 000; +444.83% ‼️ 58 000 000 71 730 000 (44 000 000; 82 000 000) 18 000 000 296 000 000

name = pallet-gear-program

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 174 000 000; +291.01% ❗ 44 500 000 51 560 000 (26 000 000; 60 000 000) 6 000 000 196 000 000
tests::pause_program_twice_fails 188 000 000; +232.74% ❗ 56 500 000 74 660 000 (43 000 000; 93 000 000) 22 000 000 240 000 000
tests::pause_program_works 64 000 000; -20.99% ✔️ 81 000 000 92 890 000 (55 000 000; 110 000 000) 26 000 000 316 000 000
tests::pause_terminated_program_fails 399 000 000; +523.44% ‼️ 64 000 000 79 010 000 (45 500 000; 88 000 000) 28 000 000 264 000 000
tests::pause_uninitialized_program_works 441 000 000; +428.14% ❗ 83 500 000 103 010 000 (60 500 000; 118 000 000) 24 000 000 469 000 000
tests::resume_program_twice_fails 360 000 000; +247.83% ❗ 103 500 000 123 070 000 (86 500 000; 132 500 000) 43 000 000 446 000 000
tests::resume_program_wrong_list_fails 210 000 000; +137.29% ❗ 88 500 000 107 670 000 (65 500 000; 118 500 000) 29 000 000 389 000 000
tests::resume_program_wrong_memory_fails 388 000 000; +333.52% ❗ 89 500 000 108 870 000 (65 000 000; 122 000 000) 27 000 000 443 000 000
tests::resume_uninitialized_program_works 158 000 000; +75.56% ❗ 90 000 000 110 190 000 (69 500 000; 128 500 000) 36 000 000 407 000 000

name = pallet-usage

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 140 000 000; +201.08% ❗ 46 500 000 65 310 000 (28 500 000; 78 500 000) 6 000 000 308 000 000
tests::dust_discarded_with_noop 260 000 000; +258.62% ❗ 72 500 000 83 990 000 (52 000 000; 89 000 000) 20 000 000 368 000 000
tests::external_submitter_gets_rewarded 124 000 000; +92.25% ❗ 64 500 000 83 230 000 (47 500 000; 92 500 000) 14 000 000 432 000 000
tests::gas_properly_handled_for_trap_replies 195 000 000; +200.00% ❗ 65 000 000 78 780 000 (48 000 000; 87 000 000) 17 000 000 300 000 000
tests::ocw_double_charge 182 000 000; +173.68% ❗ 66 500 000 82 100 000 (49 000 000; 87 000 000) 19 000 000 432 000 000
tests::ocw_interval_maintained 100 000 000; +62.60% ❗ 61 500 000 79 760 000 (45 000 000; 88 000 000) 17 000 000 368 000 000
tests::ocw_interval_stretches_for_large_wait_list 158 000 000; +144.96% ❗ 64 500 000 78 450 000 (46 500 000; 89 000 000) 12 000 000 356 000 000
tests::ocw_overlapping_prevented 167 000 000; +176.03% ❗ 60 500 000 74 470 000 (43 000 000; 85 500 000) 24 000 000 356 000 000
tests::rent_charge_works 315 000 000; +452.63% ‼️ 57 000 000 69 730 000 (40 000 000; 80 500 000) 10 000 000 276 000 000
tests::trap_reply_message_is_sent 136 000 000; +140.71% ❗ 56 500 000 72 750 000 (40 000 000; 83 000 000) 20 000 000 280 000 000
Runtime tests (values are in nanoseconds)

Total execution time

name current median average lower/upper quartile min max
Total time 404 726 331 452; +152.66% ‼️ 160 187 010 665 160 206 577 263 (159 831 233 174; 160 706 842 678) 158 579 087 530 161 541 146 341

name = Async RwLock

name current median average lower/upper quartile min max
check readers 411 492 883; +813.16% ‼️ 45 062 285 49 555 396 (40 947 622; 51 928 167) 33 239 304 125 834 538
forever lock 1 188 325 713; +1812.53% ‼️ 62 133 746 67 942 892 (56 801 692; 74 047 603) 41 805 778 127 930 611
read while writing 1 926 517 045; +1627.48% ‼️ 111 521 687 117 789 442 (102 579 481; 126 269 341) 76 416 955 190 116 067
rwlock wide 3 447 016 272; +1359.27% ‼️ 236 215 382 230 044 555 (208 949 515; 250 014 963) 165 683 457 284 454 760
write while reading 2 187 892 149; +1557.26% ‼️ 132 018 501 142 353 871 (125 876 193; 163 998 960) 93 677 453 211 211 047

name = Async init

name current median average lower/upper quartile min max
approved pong 28 478 784 761; +68.29% ‼️ 16 922 522 212 16 953 195 576 (16 845 355 134; 17 056 581 572) 16 603 639 950 17 379 048 017

name = Async-await

name current median average lower/upper quartile min max
normal 786 698 338; +952.88% ‼️ 74 719 037 74 103 593 (67 063 150; 80 221 746) 37 285 431 101 876 274
panic 805 569 765; +1153.44% ‼️ 64 268 828 63 573 810 (47 243 139; 77 524 006) 38 212 553 105 671 258

name = Async-duplicates-sync

name current median average lower/upper quartile min max
async-duplicates-sync 1 726 653 070; +1247.80% ‼️ 128 108 568 120 317 405 (109 196 464; 136 393 089) 56 994 013 161 478 876

name = Async-multisig (well known cases)

name current median average lower/upper quartile min max
2 of 3; bob & alice 25 396 976 914; +172.58% ‼️ 9 317 317 837 9 323 011 993 (9 204 660 630; 9 422 283 380) 8 946 024 227 9 693 670 761
2 of 3; bob & eve 24 726 177 969; +164.54% ‼️ 9 346 998 553 9 354 343 430 (9 242 919 028; 9 470 460 253) 8 912 029 272 9 771 257 471
2 of 3; eve & alice 24 033 971 644; +157.49% ‼️ 9 334 081 816 9 339 039 078 (9 226 186 308; 9 448 433 629) 8 905 186 242 9 755 005 646
2 of 3; eve doesn't answer, alice replies with incorrect payload 22 494 677 263; +144.54% ‼️ 9 198 940 681 9 187 463 549 (9 065 169 488; 9 293 971 664) 8 787 081 705 9 691 009 526
2 of 3; no replies 16 720 405 946; +85.67% ‼️ 9 005 546 349 9 009 109 643 (8 865 240 321; 9 159 213 369) 8 560 549 370 9 524 408 823
Single signatory & zero threshold 24 568 998 476; +167.87% ‼️ 9 171 887 787 9 185 025 304 (9 064 900 498; 9 283 124 745) 8 834 527 221 9 710 399 367
Three signatories & redundand threshold 25 321 072 202; +167.86% ‼️ 9 453 270 169 9 461 692 428 (9 342 486 270; 9 590 994 212) 9 117 936 792 9 981 498 571
Three signatories; Bob replies with incorrect signature 20 390 161 133; +122.32% ‼️ 9 171 645 715 9 168 741 727 (9 052 180 268; 9 290 519 283) 8 699 976 397 9 658 474 734
Three signatories; Eve doesn't answer, Alice replies with incorrect payload 23 762 380 892; +158.91% ‼️ 9 177 928 552 9 186 940 300 (9 056 391 129; 9 294 235 511) 8 760 631 357 9 781 002 234

name = Async-sign (well known cases)

name current median average lower/upper quartile min max
bad signature 10 168 114 848; +106.23% ‼️ 4 930 587 311 4 904 340 211 (4 776 912 454; 5 030 809 950) 4 473 821 126 5 252 424 983
correct signature but for another message 9 883 371 013; +96.73% ‼️ 5 023 854 500 5 037 648 270 (4 888 855 313; 5 199 020 707) 4 607 392 019 5 402 213 580
no reply 9 490 710 114; +98.19% ‼️ 4 788 654 551 4 806 866 919 (4 649 333 728; 4 984 176 399) 4 364 216 715 5 234 970 640
signed message 11 398 448 050; +125.63% ‼️ 5 051 856 483 5 045 004 839 (4 919 918 681; 5 190 057 745) 4 559 756 580 5 445 872 062

name = Basic capacitor check

name current median average lower/upper quartile min max
Test charging/discharging 916 865 869; +908.97% ‼️ 90 871 687 88 038 330 (77 885 695; 98 801 404) 45 342 307 122 091 874

name = Decoder

name current median average lower/upper quartile min max
decoder 770 802 451; +1176.41% ‼️ 60 388 385 55 997 835 (38 514 018; 69 188 306) 21 158 596 88 331 067

name = Futures-unordered

name current median average lower/upper quartile min max
futures-unordered 4 666 878 252; +1419.96% ‼️ 307 039 412 300 357 165 (271 928 418; 328 037 787) 206 661 824 391 335 345
join 4 312 497 499; +1723.87% ‼️ 236 447 292 241 914 244 (210 381 739; 261 418 326) 171 565 758 347 231 775
select 4 512 059 936; +1856.28% ‼️ 230 645 101 241 862 604 (211 427 710; 277 487 637) 173 212 095 331 653 997

name = Incomplete-async-payloads

name current median average lower/upper quartile min max
incomplete-async-payloads 3 937 932 789; +1509.42% ‼️ 244 680 551 236 948 586 (201 143 544; 264 869 781) 151 121 518 323 454 012

name = Memory test

name current median average lower/upper quartile min max
Test for memory result 1 249 283 309; +1372.79% ‼️ 84 824 182 86 305 981 (76 129 093; 96 307 219) 45 698 496 126 408 802

name = Messages to failed program are handled properly

name current median average lower/upper quartile min max
handle messages to failed program 1 284 031 280; +1713.12% ‼️ 70 818 807 63 639 599 (35 263 686; 84 606 874) 20 441 340 106 328 505

name = Meta ping (simple check)

name current median average lower/upper quartile min max
meta check 27 414 366 163; +72.92% ‼️ 15 853 541 765 15 892 168 108 (15 748 175 851; 16 045 991 760) 15 566 534 514 16 337 288 609

name = Multiping

name current median average lower/upper quartile min max
multiping 857 390 127; +1182.76% ‼️ 66 839 708 63 254 384 (52 056 944; 74 827 034) 28 788 345 104 965 390

name = Ping-pong

name current median average lower/upper quartile min max
ping-pong 950 979 808; +2773.16% ‼️ 33 098 687 43 524 514 (25 567 646; 64 929 059) 16 126 635 93 276 797
ping-pong wgas 478 145 716; +938.75% ‼️ 46 030 815 52 954 089 (39 996 817; 55 586 939) 24 492 442 121 332 485

name = Program_id test

name current median average lower/upper quartile min max
program_id 561 122 380; +852.01% ‼️ 58 940 636 58 459 947 (53 519 404; 64 933 133) 26 194 457 84 021 676

name = State-rollback

name current median average lower/upper quartile min max
state-rollback 348 445 989; +582.38% ‼️ 51 063 437 62 812 258 (44 800 113; 84 429 187) 30 312 045 121 808 791
state-saving 350 268 451; +664.93% ‼️ 45 790 973 49 741 876 (39 906 245; 52 423 530) 30 062 268 107 210 915

name = Test create_program sys-call

name current median average lower/upper quartile min max
Simple creation of program from program 840 288 025; +1152.02% ‼️ 67 114 608 65 729 486 (60 212 681; 72 440 391) 30 072 264 100 441 102
Try to re-init existing program 1 108 633 941; +1202.19% ‼️ 85 135 797 81 073 684 (61 302 175; 96 592 680) 44 725 343 120 344 416

name = Trap test

name current median average lower/upper quartile min max
Test for trap result 232 422 917; +1006.26% ‼️ 21 009 826 26 864 923 (15 511 514; 39 980 646) 11 273 640 62 595 273

name = Wait test

name current median average lower/upper quartile min max
wait 590 394 228; +881.58% ‼️ 60 147 467 67 142 612 (50 939 431; 80 177 076) 41 340 009 125 115 316

name = basic

name current median average lower/upper quartile min max
test-vec (2 * 65536 * size_of(u8) = 128 KiB = 2 pages) 4 179 341 050; +1425.37% ‼️ 273 988 167 268 649 241 (236 549 322; 302 281 792) 178 156 724 358 935 121

name = collector-1

name current median average lower/upper quartile min max
collector pass 2 messages 933 979 537; +904.83% ‼️ 92 948 734 91 916 511 (82 413 866; 99 699 589) 64 177 794 116 537 893

name = guestbook test

name current median average lower/upper quartile min max
guestbook 17 047 136 041; +92.79% ‼️ 8 842 285 188 8 848 776 417 (8 708 321 878; 8 986 240 299) 8 453 946 382 9 369 260 960

name = gui test

name current median average lower/upper quartile min max
gui 22 435 954 198; +97.45% ‼️ 11 362 855 941 11 374 573 694 (11 270 622 553; 11 459 197 696) 11 080 651 365 11 815 559 292
4595e04
Pallet tests (values are in nanoseconds)

Total execution time

name current median average lower/upper quartile min max
Total time 82 618 000 000; +3238.10% ❗ 2 475 000 000 3 976 609 999 (2 445 500 000; 2 510 000 000) 2 404 000 000 133 201 000 000

name = pallet-gas

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 35 000 000; +45.83% ❗ 24 000 000 27 650 000 (18 000 000; 30 000 000) 5 000 000 231 000 000
tests::all_keys_are_cleared 42 000 000; +16.67% ✔️ 36 000 000 40 610 000 (30 000 000; 42 500 000) 9 000 000 232 000 000
tests::gas_free_after_consumed 48 000 000; +41.18% ❗ 34 000 000 37 680 000 (25 500 000; 41 000 000) 10 000 000 184 000 000
tests::limit_vs_origin 45 000 000; +40.62% ❗ 32 000 000 38 640 000 (24 000 000; 42 500 000) 9 000 000 256 000 000
tests::long_chain 48 000 000; +47.69% ❗ 32 500 000 40 120 000 (23 000 000; 41 000 000) 11 000 000 460 000 000
tests::simple_value_tree 48 000 000; +50.00% ❗ 32 000 000 38 760 000 (24 000 000; 44 000 000) 7 000 000 216 000 000
tests::split_with_no_value 44 000 000; +37.50% ❗ 32 000 000 38 700 000 (22 000 000; 42 500 000) 9 000 000 432 000 000
tests::sub_nodes_tree 154 000 000; +352.94% ❗ 34 000 000 37 650 000 (25 500 000; 44 000 000) 14 000 000 181 000 000
tests::sub_nodes_tree_with_spends 67 000 000; +112.70% ❗ 31 500 000 39 790 000 (26 000 000; 41 000 000) 11 000 000 336 000 000
tests::subtree_gas_limit_remains_intact 166 000 000; +354.79% ❗ 36 500 000 43 460 000 (26 000 000; 46 000 000) 7 000 000 336 000 000
tests::value_tree_known_errors 166 000 000; +395.52% ❗ 33 500 000 39 700 000 (24 500 000; 45 000 000) 10 000 000 324 000 000

name = pallet-gear

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 211 000 000; +761.22% ‼️ 24 500 000 28 900 000 (16 500 000; 33 500 000) 5 000 000 172 000 000
schedule::test::print_test_schedule 69 000 000; +193.62% ❗ 23 500 000 31 970 000 (15 000 000; 32 000 000) 6 000 000 376 000 000
tests::block_gas_limit_works 175 000 000; +297.73% ❗ 44 000 000 55 640 000 (31 500 000; 61 500 000) 17 000 000 356 000 000
tests::call_forbidden_function 131 000 000; +211.90% ❗ 42 000 000 50 720 000 (29 000 000; 61 000 000) 13 000 000 292 000 000
tests::cascading_messages_with_value_do_not_overcharge 588 000 000; +151.28% ❗ 234 000 000 249 750 000 (206 500 000; 268 000 000) 144 000 000 648 000 000
tests::claim_value_from_mailbox_works 198 000 000; +312.50% ❗ 48 000 000 53 620 000 (35 500 000; 59 000 000) 18 000 000 292 000 000
tests::defer_program_initialization 253 000 000; +184.27% ❗ 89 000 000 108 570 000 (76 500 000; 119 000 000) 53 000 000 603 000 000
tests::distributor_distribute 211 000 000; +117.53% ❗ 97 000 000 102 500 000 (73 000 000; 118 500 000) 45 000 000 467 000 000
tests::distributor_initialize 220 000 000; +212.06% ❗ 70 500 000 80 350 000 (56 000 000; 85 500 000) 30 000 000 408 000 000
tests::events_logging_works 77 000 000; +57.14% ❗ 49 000 000 58 200 000 (40 000 000; 66 000 000) 16 000 000 196 000 000
tests::exit_handle 208 000 000; +300.00% ❗ 52 000 000 64 290 000 (40 000 000; 77 500 000) 18 000 000 452 000 000
tests::exit_init 96 000 000; +23.87% ❗ 77 500 000 85 040 000 (61 500 000; 92 500 000) 36 000 000 464 000 000
tests::gas_spent_precalculated 127 000 000; +144.23% ❗ 52 000 000 60 870 000 (41 500 000; 65 500 000) 20 000 000 348 000 000
tests::gas_spent_vs_balance 143 000 000; +29.41% ❗ 110 500 000 123 730 000 (91 500 000; 132 500 000) 60 000 000 520 000 000
tests::init_message_logging_works 141 000 000; +147.37% ❗ 57 000 000 63 780 000 (45 000 000; 71 000 000) 18 000 000 448 000 000
tests::init_wait_reply_exit_cleaned_storage 277 000 000; +136.75% ❗ 117 000 000 125 030 000 (97 000 000; 132 000 000) 70 000 000 675 000 000
tests::lazy_pages 59 000 000; +0.00% ✔️ 59 000 000 64 890 000 (44 000 000; 77 500 000) 23 000 000 260 000 000
tests::mailbox_works 93 000 000; +51.22% ❗ 61 500 000 68 710 000 (47 000 000; 78 000 000) 19 000 000 296 000 000
tests::memory_access_cases 183 000 000; +210.17% ❗ 59 000 000 70 710 000 (48 000 000; 88 000 000) 25 000 000 396 000 000
tests::messages_processing_works 190 000 000; +206.45% ❗ 62 000 000 66 130 000 (43 500 000; 79 000 000) 28 000 000 244 000 000
tests::messages_to_paused_program_skipped 352 000 000; +392.31% ❗ 71 500 000 81 900 000 (57 000 000; 95 000 000) 28 000 000 432 000 000
tests::messages_to_uninitialized_program_wait 151 000 000; +98.68% ❗ 76 000 000 84 210 000 (62 000 000; 93 000 000) 35 000 000 456 000 000
tests::no_redundant_gas_value_after_exiting 267 000 000; +327.20% ❗ 62 500 000 69 580 000 (46 000 000; 80 000 000) 17 000 000 372 000 000
tests::paused_program_keeps_id 125 000 000; +45.35% ❗ 86 000 000 92 130 000 (67 500 000; 106 500 000) 44 000 000 288 000 000
tests::program_lifecycle_works 207 000 000; +245.00% ❗ 60 000 000 68 570 000 (46 000 000; 83 000 000) 22 000 000 280 000 000
tests::program_messages_to_paused_program_skipped 340 000 000; +194.37% ❗ 115 500 000 132 250 000 (93 000 000; 151 500 000) 48 000 000 468 000 000
tests::replies_to_paused_program_skipped 85 000 000; +15.65% ✔️ 73 500 000 81 080 000 (57 500 000; 97 500 000) 29 000 000 232 000 000
tests::restrict_start_section 84 000 000; +54.13% ❗ 54 500 000 61 810 000 (43 500 000; 70 000 000) 17 000 000 296 000 000
tests::resume_program_works 237 000 000; +110.67% ❗ 112 500 000 126 380 000 (94 000 000; 144 000 000) 48 000 000 407 000 000
tests::send_message_expected_failure 170 000 000; +188.14% ❗ 59 000 000 64 910 000 (45 000 000; 73 500 000) 21 000 000 291 000 000
tests::send_message_works 304 000 000; +438.05% ‼️ 56 500 000 64 140 000 (44 000 000; 76 000 000) 24 000 000 300 000 000
tests::send_reply_failure_to_claim_from_mailbox 70 000 000; +32.08% ✔️ 53 000 000 61 610 000 (44 000 000; 73 500 000) 20 000 000 187 000 000
tests::send_reply_value_claiming_works 161 000 000; +198.15% ❗ 54 000 000 62 350 000 (40 000 000; 76 500 000) 15 000 000 252 000 000
tests::send_reply_works 284 000 000; +373.33% ❗ 60 000 000 66 320 000 (43 000 000; 80 000 000) 20 000 000 320 000 000
tests::spent_gas_to_reward_block_author_works 132 000 000; +121.85% ❗ 59 500 000 65 220 000 (41 000 000; 79 000 000) 22 000 000 241 000 000
tests::submit_program_expected_failure 255 000 000; +400.00% ‼️ 51 000 000 59 790 000 (41 500 000; 77 500 000) 12 000 000 244 000 000
tests::submit_program_fails_on_duplicate_id 204 000 000; +264.29% ❗ 56 000 000 61 590 000 (40 500 000; 72 500 000) 15 000 000 208 000 000
tests::test_async_messages 1 953 000 000; +230.46% ‼️ 591 000 000 612 939 999 (552 500 000; 638 000 000) 475 000 000 1 245 000 000
tests::test_code_is_not_reset_within_program_submission 179 000 000; +258.00% ❗ 50 000 000 59 470 000 (36 500 000; 72 000 000) 17 000 000 233 000 000
tests::test_code_is_not_submitted_twice_after_program_submission 145 000 000; +178.85% ❗ 52 000 000 61 950 000 (41 000 000; 70 000 000) 16 000 000 281 000 000
tests::test_code_submission_pass 210 000 000; +262.07% ❗ 58 000 000 64 210 000 (46 500 000; 76 000 000) 16 000 000 249 000 000
tests::test_create_program_duplicate 421 000 000; +209.56% ❗ 136 000 000 144 690 000 (108 500 000; 163 000 000) 60 000 000 456 000 000
tests::test_create_program_duplicate_in_one_execution 354 000 000; +264.95% ❗ 97 000 000 108 080 000 (77 000 000; 123 500 000) 46 000 000 436 000 000
tests::test_create_program_miscellaneous 623 000 000; +326.71% ‼️ 146 000 000 155 980 000 (117 000 000; 174 500 000) 76 000 000 396 000 000
tests::test_create_program_no_code_hash 792 000 000; +204.03% ‼️ 260 500 000 271 430 000 (208 500 000; 305 000 000) 156 000 000 681 000 000
tests::test_create_program_simple 800 000 000; +393.83% ‼️ 162 000 000 165 740 000 (132 500 000; 184 500 000) 81 000 000 334 000 000
tests::test_create_program_with_exceeding_value 139 000 000; +82.89% ❗ 76 000 000 81 220 000 (58 500 000; 97 000 000) 25 000 000 282 000 000
tests::test_create_program_with_value_lt_ed 176 000 000; +86.24% ❗ 94 500 000 106 100 000 (75 500 000; 118 000 000) 39 000 000 400 000 000
tests::test_create_program_without_gas_works 144 000 000; +81.13% ❗ 79 500 000 83 920 000 (55 000 000; 103 500 000) 22 000 000 223 000 000
tests::test_message_processing_for_non_existing_destination 97 000 000; +64.41% ❗ 59 000 000 64 140 000 (43 000 000; 77 500 000) 14 000 000 164 000 000
tests::test_reply_to_terminated_program 125 000 000; +59.24% ❗ 78 500 000 83 740 000 (65 000 000; 95 500 000) 30 000 000 215 000 000
tests::test_same_code_submission_fails 84 000 000; +37.70% ❗ 61 000 000 68 140 000 (48 000 000; 78 500 000) 19 000 000 223 000 000
tests::test_two_contracts_composition_works 607 000 000; +159.40% ❗ 234 000 000 245 930 000 (202 000 000; 277 500 000) 152 000 000 698 000 000
tests::uninitialized_program_should_accept_replies 108 000 000; -2.70% ✔️ 111 000 000 113 210 000 (88 000 000; 134 500 000) 49 000 000 234 000 000
tests::unstoppable_block_execution_works 74 000 000; +13.85% ✔️ 65 000 000 68 990 000 (49 000 000; 84 000 000) 30 000 000 156 000 000
tests::unused_gas_released_back_works 79 000 000; +20.61% ✔️ 65 500 000 70 370 000 (50 000 000; 92 500 000) 15 000 000 176 000 000
tests::wake_messages_after_program_inited 548 000 000; +147.40% ‼️ 221 500 000 234 520 000 (190 000 000; 270 000 000) 138 000 000 465 000 000

name = pallet-gear-debug

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 37 000 000; -9.76% ✔️ 41 000 000 46 490 000 (29 000 000; 63 500 000) 8 000 000 138 000 000
tests::check_changed_pages_in_storage 180 000 000; +164.71% ❗ 68 000 000 73 810 000 (50 500 000; 90 000 000) 24 000 000 210 000 000
tests::debug_mode_works 144 000 000; +116.54% ❗ 66 500 000 68 700 000 (52 000 000; 84 000 000) 21 000 000 168 000 000

name = pallet-gear-messenger

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 24 000 000; -40.74% ✔️ 40 500 000 46 190 000 (28 000 000; 58 500 000) 6 000 000 156 000 000
tests::dequeued_impl_works_manually 67 000 000; +16.52% ✔️ 57 500 000 62 050 000 (40 500 000; 77 500 000) 21 000 000 177 000 000
tests::queue_processing_impl_works_manually 171 000 000; +189.83% ‼️ 59 000 000 60 530 000 (45 000 000; 78 000 000) 12 000 000 128 000 000
tests::queue_works 164 000 000; +200.92% ❗ 54 500 000 58 710 000 (42 000 000; 70 500 000) 15 000 000 204 000 000
tests::sent_impl_works 238 000 000; +353.33% ‼️ 52 500 000 55 500 000 (40 500 000; 70 500 000) 9 000 000 142 000 000

name = pallet-gear-payment

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 136 000 000; +262.67% ❗ 37 500 000 42 400 000 (27 500 000; 52 500 000) 8 000 000 151 000 000
tests::custom_fee_multiplier_updated_per_block 252 000 000; +358.18% ‼️ 55 000 000 58 220 000 (38 000 000; 71 000 000) 19 000 000 155 000 000
tests::fee_rounding_error_bounded_by_multiplier 62 000 000; +15.89% ✔️ 53 500 000 57 840 000 (38 500 000; 71 500 000) 18 000 000 146 000 000
tests::mq_size_affecting_fee_works 160 000 000; +196.30% ❗ 54 000 000 56 560 000 (39 000 000; 69 500 000) 13 000 000 170 000 000
tests::mq_size_not_affecting_fee_works 58 000 000; +5.45% ✔️ 55 000 000 58 810 000 (42 000 000; 72 000 000) 13 000 000 132 000 000
tests::query_info_and_fee_details_work 75 000 000; +47.06% ❗ 51 000 000 54 830 000 (39 500 000; 70 500 000) 15 000 000 126 000 000

name = pallet-gear-program

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 77 000 000; +100.00% ❗ 38 500 000 41 800 000 (27 500 000; 51 000 000) 8 000 000 141 000 000
tests::pause_program_twice_fails 134 000 000; +133.04% ‼️ 57 500 000 58 470 000 (41 000 000; 74 000 000) 10 000 000 124 000 000
tests::pause_program_works 113 000 000; +75.19% ❗ 64 500 000 72 010 000 (50 000 000; 80 500 000) 26 000 000 217 000 000
tests::pause_terminated_program_fails 96 000 000; +79.44% ❗ 53 500 000 56 440 000 (39 000 000; 70 500 000) 11 000 000 139 000 000
tests::pause_uninitialized_program_works 164 000 000; +141.18% ‼️ 68 000 000 72 520 000 (53 000 000; 89 000 000) 19 000 000 158 000 000
tests::resume_program_twice_fails 98 000 000; +12.64% ✔️ 87 000 000 93 170 000 (69 500 000; 110 000 000) 33 000 000 198 000 000
tests::resume_program_wrong_list_fails 198 000 000; +160.53% ‼️ 76 000 000 80 280 000 (62 000 000; 98 000 000) 32 000 000 176 000 000
tests::resume_program_wrong_memory_fails 153 000 000; +83.23% ❗ 83 500 000 84 400 000 (65 000 000; 97 500 000) 29 000 000 167 000 000
tests::resume_uninitialized_program_works 95 000 000; +18.01% ✔️ 80 500 000 86 850 000 (67 500 000; 100 500 000) 34 000 000 188 000 000

name = pallet-usage

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 44 000 000; +8.64% ✔️ 40 500 000 45 500 000 (28 500 000; 55 000 000) 5 000 000 147 000 000
tests::dust_discarded_with_noop 76 000 000; +46.15% ❗ 52 000 000 60 260 000 (41 000 000; 72 500 000) 15 000 000 167 000 000
tests::external_submitter_gets_rewarded 56 000 000; -0.88% ✔️ 56 500 000 58 430 000 (41 000 000; 69 000 000) 8 000 000 170 000 000
tests::gas_properly_handled_for_trap_replies 45 000 000; -12.62% ✔️ 51 500 000 59 140 000 (45 000 000; 69 000 000) 20 000 000 212 000 000
tests::ocw_double_charge 74 000 000; +37.04% ❗ 54 000 000 59 230 000 (43 000 000; 69 500 000) 16 000 000 164 000 000
tests::ocw_interval_maintained 121 000 000; +132.69% ❗ 52 000 000 57 270 000 (40 500 000; 67 500 000) 15 000 000 240 000 000
tests::ocw_interval_stretches_for_large_wait_list 132 000 000; +133.63% ❗ 56 500 000 61 190 000 (44 000 000; 73 500 000) 16 000 000 232 000 000
tests::ocw_overlapping_prevented 86 000 000; +82.98% ❗ 47 000 000 51 040 000 (35 500 000; 63 000 000) 11 000 000 163 000 000
tests::rent_charge_works 110 000 000; +100.00% ❗ 55 000 000 57 990 000 (41 500 000; 69 000 000) 15 000 000 188 000 000
tests::trap_reply_message_is_sent 205 000 000; +322.68% ‼️ 48 500 000 51 560 000 (34 500 000; 65 000 000) 11 000 000 167 000 000
Runtime tests (values are in nanoseconds)

Total execution time

name current median average lower/upper quartile min max
Total time 243 744 638 962; +50.54% ‼️ 161 910 424 706 162 009 452 179 (161 545 795 744; 162 441 746 614) 160 060 214 591 164 166 272 559

name = Async RwLock

name current median average lower/upper quartile min max
check readers 425 412 260; +878.45% ‼️ 43 478 323 50 203 472 (40 231 618; 52 901 472) 32 119 360 132 212 390
forever lock 580 870 076; +820.59% ‼️ 63 097 560 73 038 566 (57 314 439; 81 273 128) 43 517 038 138 924 032
read while writing 926 810 889; +710.56% ‼️ 114 341 870 126 349 770 (104 299 957; 144 618 894) 82 172 294 202 813 686
rwlock wide 1 583 326 264; +553.66% ‼️ 242 225 411 235 412 617 (212 023 856; 254 037 224) 166 985 691 299 455 235
write while reading 1 095 504 991; +662.48% ‼️ 143 676 384 148 558 865 (126 414 156; 170 449 517) 93 327 347 217 857 357

name = Async init

name current median average lower/upper quartile min max
approved pong 17 694 807 775; +4.11% ‼️ 16 996 204 013 17 001 130 970 (16 878 328 066; 17 112 698 226) 16 530 296 321 17 546 740 437

name = Async-await

name current median average lower/upper quartile min max
normal 287 839 741; +274.94% ‼️ 76 769 336 75 119 453 (66 701 412; 83 215 321) 33 587 295 107 441 595
panic 308 342 326; +461.55% ‼️ 54 909 109 63 886 643 (46 268 397; 81 956 064) 32 810 775 112 367 114

name = Async-duplicates-sync

name current median average lower/upper quartile min max
async-duplicates-sync 627 235 688; +366.37% ‼️ 134 493 964 124 331 253 (106 091 416; 142 205 852) 67 518 116 167 433 988

name = Async-multisig (well known cases)

name current median average lower/upper quartile min max
2 of 3; bob & alice 17 258 600 192; +83.47% ‼️ 9 406 959 568 9 407 296 555 (9 284 042 798; 9 545 963 471) 8 931 446 959 9 761 869 767
2 of 3; bob & eve 17 403 011 819; +85.60% ‼️ 9 376 470 210 9 389 847 383 (9 263 447 718; 9 492 187 016) 9 066 369 995 9 927 494 134
2 of 3; eve & alice 16 939 059 289; +81.06% ‼️ 9 355 589 199 9 377 069 634 (9 252 890 375; 9 487 604 436) 9 027 120 575 9 823 224 997
2 of 3; eve doesn't answer, alice replies with incorrect payload 14 363 855 052; +55.91% ‼️ 9 212 704 251 9 223 298 666 (9 096 892 296; 9 344 730 425) 8 807 757 844 9 639 310 619
2 of 3; no replies 9 387 864 526; +3.91% ❗ 9 034 864 443 9 042 139 421 (8 928 768 344; 9 149 357 751) 8 637 451 241 9 576 043 232
Single signatory & zero threshold 11 447 727 797; +23.57% ‼️ 9 263 877 358 9 264 588 476 (9 140 428 775; 9 372 373 135) 8 915 580 717 9 852 789 817
Three signatories & redundand threshold 18 143 514 523; +90.71% ‼️ 9 513 802 282 9 507 763 274 (9 367 144 710; 9 642 668 048) 9 056 699 337 9 918 060 176
Three signatories; Bob replies with incorrect signature 15 316 641 069; +65.02% ‼️ 9 281 813 711 9 266 468 538 (9 144 821 153; 9 358 119 725) 8 847 448 134 9 655 434 237
Three signatories; Eve doesn't answer, Alice replies with incorrect payload 15 176 087 248; +63.94% ‼️ 9 257 211 862 9 242 199 451 (9 140 815 873; 9 351 825 701) 8 848 527 886 9 670 940 302

name = Async-sign (well known cases)

name current median average lower/upper quartile min max
bad signature 5 761 092 575; +16.28% ‼️ 4 954 360 228 4 930 489 941 (4 812 992 819; 5 081 024 861) 4 380 240 639 5 288 291 764
correct signature but for another message 6 319 444 636; +23.12% ‼️ 5 132 629 408 5 091 365 689 (4 968 528 171; 5 227 885 814) 4 613 448 752 5 428 349 228
no reply 5 525 299 185; +12.11% ‼️ 4 928 398 977 4 902 707 450 (4 759 879 253; 5 070 603 691) 4 409 581 785 5 254 093 296
signed message 6 173 931 694; +19.50% ‼️ 5 166 535 242 5 120 827 531 (5 006 276 710; 5 291 362 523) 4 506 104 077 5 471 140 826

name = Basic capacitor check

name current median average lower/upper quartile min max
Test charging/discharging 379 992 764; +337.23% ‼️ 86 908 383 86 175 616 (76 460 909; 98 584 417) 45 768 976 118 859 443

name = Decoder

name current median average lower/upper quartile min max
decoder 195 800 549; +216.53% ‼️ 61 857 656 55 516 163 (32 727 045; 73 451 198) 25 037 294 97 868 602

name = Futures-unordered

name current median average lower/upper quartile min max
futures-unordered 2 308 342 937; +632.31% ‼️ 315 212 600 303 686 726 (266 808 513; 340 339 413) 197 367 987 405 410 079
join 2 258 489 265; +858.70% ‼️ 235 578 155 251 584 225 (219 410 561; 271 662 257) 181 505 787 376 453 460
select 2 237 302 648; +826.33% ‼️ 241 522 681 255 082 783 (215 955 887; 289 192 334) 168 703 453 379 380 958

name = Incomplete-async-payloads

name current median average lower/upper quartile min max
incomplete-async-payloads 1 770 433 288; +618.91% ‼️ 246 266 640 236 507 589 (202 054 077; 265 815 425) 161 050 160 299 053 848

name = Memory test

name current median average lower/upper quartile min max
Test for memory result 262 407 334; +206.29% ‼️ 85 672 908 85 920 472 (75 948 811; 96 240 545) 47 865 644 114 583 598

name = Messages to failed program are handled properly

name current median average lower/upper quartile min max
handle messages to failed program 307 728 316; +381.18% ‼️ 63 952 412 59 548 061 (28 949 991; 83 616 577) 17 796 183 109 959 545

name = Meta ping (simple check)

name current median average lower/upper quartile min max
meta check 16 540 048 070; +3.68% ‼️ 15 953 425 697 15 974 554 496 (15 853 184 574; 16 073 660 761) 15 534 321 215 16 480 580 336

name = Multiping

name current median average lower/upper quartile min max
multiping 276 125 421; +311.54% ‼️ 67 096 347 62 562 686 (42 622 429; 79 320 752) 23 980 833 99 263 912

name = Ping-pong

name current median average lower/upper quartile min max
ping-pong 163 582 528; +402.55% ‼️ 32 550 719 41 484 142 (24 835 569; 61 200 519) 16 473 728 85 877 619
ping-pong wgas 253 109 466; +449.53% ‼️ 46 059 188 51 819 009 (38 895 985; 57 827 175) 28 795 384 102 243 674

name = Program_id test

name current median average lower/upper quartile min max
program_id 205 834 931; +220.54% ‼️ 64 215 631 63 096 076 (55 309 094; 70 321 806) 24 837 034 92 236 276

name = State-rollback

name current median average lower/upper quartile min max
state-rollback 286 630 555; +400.09% ‼️ 57 316 169 65 819 728 (43 591 687; 93 327 516) 31 713 686 124 519 186
state-saving 299 974 112; +546.58% ‼️ 46 394 177 52 859 685 (41 006 021; 55 725 970) 32 236 018 105 283 755

name = Test create_program sys-call

name current median average lower/upper quartile min max
Simple creation of program from program 203 072 131; +197.19% ‼️ 68 330 513 65 495 936 (57 124 016; 76 408 332) 25 716 079 96 721 354
Try to re-init existing program 374 667 741; +335.79% ‼️ 85 973 393 82 241 977 (59 701 808; 101 820 450) 42 549 707 125 945 332

name = Trap test

name current median average lower/upper quartile min max
Test for trap result 111 373 376; +403.36% ‼️ 22 126 151 28 379 325 (16 062 933; 41 223 714) 11 993 198 60 193 406

name = Wait test

name current median average lower/upper quartile min max
wait 402 691 934; +538.10% ‼️ 63 108 413 70 964 726 (52 956 977; 95 570 859) 37 491 218 115 570 730

name = basic

name current median average lower/upper quartile min max
test-vec (2 * 65536 * size_of(u8) = 128 KiB = 2 pages) 794 856 369; +189.91% ‼️ 274 177 358 264 915 149 (233 124 543; 298 061 744) 162 057 191 371 566 690

name = collector-1

name current median average lower/upper quartile min max
collector pass 2 messages 407 959 311; +323.51% ‼️ 96 329 164 94 599 591 (82 991 972; 103 564 539) 72 004 037 133 449 073

name = guestbook test

name current median average lower/upper quartile min max
guestbook 9 525 714 757; +7.10% ‼️ 8 894 372 916 8 898 596 110 (8 747 041 943; 9 031 296 136) 8 534 357 403 9 452 015 756

name = gui test

name current median average lower/upper quartile min max
gui 12 094 553 110; +5.76% ‼️ 11 436 126 676 11 453 762 190 (11 345 505 830; 11 592 987 293) 11 118 993 971 11 956 136 145
bfc96ad
Pallet tests (values are in nanoseconds)

Total execution time

name current median average lower/upper quartile min max
Total time 121 759 000 000; +4809.64% ❗ 2 480 000 000 3 747 300 000 (2 456 000 000; 2 503 500 000) 2 384 000 000 129 334 000 000

name = pallet-gas

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 454 000 000; +1791.67% ‼️ 24 000 000 24 690 000 (18 000 000; 30 000 000) 7 000 000 62 000 000
tests::all_keys_are_cleared 263 000 000; +651.43% ‼️ 35 000 000 36 820 000 (29 000 000; 43 000 000) 12 000 000 70 000 000
tests::gas_free_after_consumed 340 000 000; +914.93% ‼️ 33 500 000 34 060 000 (26 000 000; 41 000 000) 15 000 000 83 000 000
tests::limit_vs_origin 182 000 000; +468.75% ‼️ 32 000 000 33 540 000 (24 000 000; 40 500 000) 8 000 000 69 000 000
tests::long_chain 345 000 000; +1012.90% ‼️ 31 000 000 32 110 000 (25 000 000; 38 000 000) 10 000 000 72 000 000
tests::simple_value_tree 337 000 000; +1062.07% ‼️ 29 000 000 30 990 000 (24 000 000; 38 500 000) 8 000 000 104 000 000
tests::split_with_no_value 267 000 000; +820.69% ‼️ 29 000 000 30 620 000 (24 000 000; 36 000 000) 8 000 000 58 000 000
tests::sub_nodes_tree 195 000 000; +490.91% ‼️ 33 000 000 34 130 000 (25 000 000; 45 000 000) 9 000 000 72 000 000
tests::sub_nodes_tree_with_spends 282 000 000; +781.25% ‼️ 32 000 000 33 250 000 (23 000 000; 43 000 000) 10 000 000 72 000 000
tests::subtree_gas_limit_remains_intact 149 000 000; +365.62% ‼️ 32 000 000 34 180 000 (23 500 000; 42 000 000) 12 000 000 74 000 000
tests::value_tree_known_errors 205 000 000; +583.33% ‼️ 30 000 000 32 000 000 (24 000 000; 39 000 000) 9 000 000 69 000 000

name = pallet-gear

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 148 000 000; +588.37% ‼️ 21 500 000 22 550 000 (14 000 000; 29 000 000) 6 000 000 51 000 000
schedule::test::print_test_schedule 298 000 000; +1254.55% ‼️ 22 000 000 23 510 000 (17 000 000; 27 500 000) 7 000 000 56 000 000
tests::block_gas_limit_works 128 000 000; +212.20% ‼️ 41 000 000 42 090 000 (33 000 000; 50 000 000) 21 000 000 78 000 000
tests::call_forbidden_function 211 000 000; +441.03% ‼️ 39 000 000 39 740 000 (30 500 000; 48 500 000) 18 000 000 78 000 000
tests::cascading_messages_with_value_do_not_overcharge 2 825 000 000; +1130.94% ‼️ 229 500 000 238 440 000 (210 000 000; 263 500 000) 145 000 000 400 000 000
tests::claim_value_from_mailbox_works 201 000 000; +402.50% ‼️ 40 000 000 43 990 000 (30 000 000; 51 000 000) 20 000 000 93 000 000
tests::defer_program_initialization 842 000 000; +754.82% ‼️ 98 500 000 101 550 000 (79 000 000; 121 000 000) 54 000 000 189 000 000
tests::distributor_distribute 600 000 000; +585.71% ‼️ 87 500 000 90 070 000 (68 000 000; 103 000 000) 42 000 000 172 000 000
tests::distributor_initialize 440 000 000; +537.68% ‼️ 69 000 000 71 850 000 (52 500 000; 84 500 000) 31 000 000 149 000 000
tests::events_logging_works 773 000 000; +1415.69% ‼️ 51 000 000 55 090 000 (37 500 000; 68 000 000) 16 000 000 142 000 000
tests::exit_handle 345 000 000; +538.89% ‼️ 54 000 000 55 290 000 (42 000 000; 67 000 000) 17 000 000 107 000 000
tests::exit_init 289 000 000; +318.84% ‼️ 69 000 000 71 510 000 (55 000 000; 83 500 000) 31 000 000 134 000 000
tests::gas_spent_precalculated 360 000 000; +579.25% ‼️ 53 000 000 56 790 000 (41 500 000; 71 000 000) 20 000 000 117 000 000
tests::gas_spent_vs_balance 442 000 000; +273.00% ‼️ 118 500 000 121 260 000 (95 500 000; 141 000 000) 54 000 000 198 000 000
tests::init_message_logging_works 172 000 000; +207.14% ‼️ 56 000 000 59 110 000 (41 500 000; 70 000 000) 20 000 000 145 000 000
tests::init_wait_reply_exit_cleaned_storage 332 000 000; +210.28% ‼️ 107 000 000 108 220 000 (91 500 000; 122 000 000) 56 000 000 211 000 000
tests::lazy_pages 276 000 000; +397.30% ‼️ 55 500 000 59 480 000 (47 500 000; 71 500 000) 17 000 000 112 000 000
tests::mailbox_works 92 000 000; +68.81% ❗ 54 500 000 59 630 000 (45 000 000; 70 000 000) 23 000 000 127 000 000
tests::memory_access_cases 57 000 000; +0.88% ✔️ 56 500 000 60 650 000 (45 000 000; 76 000 000) 27 000 000 121 000 000
tests::messages_processing_works 61 000 000; +3.39% ✔️ 59 000 000 61 140 000 (46 000 000; 75 500 000) 13 000 000 116 000 000
tests::messages_to_paused_program_skipped 162 000 000; +100.00% ‼️ 81 000 000 82 900 000 (61 000 000; 102 000 000) 36 000 000 162 000 000
tests::messages_to_uninitialized_program_wait 188 000 000; +161.11% ‼️ 72 000 000 75 250 000 (56 500 000; 91 000 000) 35 000 000 149 000 000
tests::no_redundant_gas_value_after_exiting 145 000 000; +135.77% ‼️ 61 500 000 62 240 000 (45 500 000; 75 500 000) 19 000 000 140 000 000
tests::paused_program_keeps_id 199 000 000; +151.90% ‼️ 79 000 000 84 070 000 (66 000 000; 98 000 000) 31 000 000 173 000 000
tests::program_lifecycle_works 96 000 000; +62.71% ❗ 59 000 000 62 400 000 (47 000 000; 70 500 000) 19 000 000 161 000 000
tests::program_messages_to_paused_program_skipped 820 000 000; +606.90% ‼️ 116 000 000 123 400 000 (98 000 000; 142 500 000) 68 000 000 243 000 000
tests::replies_to_paused_program_skipped 131 000 000; +74.67% ❗ 75 000 000 77 730 000 (61 000 000; 93 500 000) 30 000 000 152 000 000
tests::restrict_start_section 516 000 000; +901.94% ‼️ 51 500 000 56 170 000 (41 500 000; 73 000 000) 14 000 000 143 000 000
tests::resume_program_works 465 000 000; +307.89% ‼️ 114 000 000 118 240 000 (91 500 000; 138 000 000) 63 000 000 220 000 000
tests::send_message_expected_failure 278 000 000; +375.21% ‼️ 58 500 000 59 430 000 (44 500 000; 74 000 000) 20 000 000 115 000 000
tests::send_message_works 105 000 000; +87.50% ❗ 56 000 000 62 420 000 (41 000 000; 75 000 000) 23 000 000 172 000 000
tests::send_reply_failure_to_claim_from_mailbox 120 000 000; +103.39% ‼️ 59 000 000 62 630 000 (44 000 000; 77 500 000) 24 000 000 119 000 000
tests::send_reply_value_claiming_works 96 000 000; +65.52% ❗ 58 000 000 63 540 000 (43 500 000; 81 000 000) 23 000 000 173 000 000
tests::send_reply_works 70 000 000; +22.81% ✔️ 57 000 000 57 900 000 (40 000 000; 73 000 000) 17 000 000 158 000 000
tests::spent_gas_to_reward_block_author_works 69 000 000; +20.00% ✔️ 57 500 000 57 350 000 (41 000 000; 69 500 000) 20 000 000 115 000 000
tests::submit_program_expected_failure 41 000 000; -23.36% ✔️ 53 500 000 56 020 000 (36 000 000; 70 500 000) 15 000 000 121 000 000
tests::submit_program_fails_on_duplicate_id 267 000 000; +356.41% ‼️ 58 500 000 59 290 000 (44 000 000; 69 000 000) 20 000 000 181 000 000
tests::test_async_messages 2 471 000 000; +310.47% ‼️ 602 000 000 601 110 000 (562 500 000; 639 000 000) 465 000 000 759 000 000
tests::test_code_is_not_reset_within_program_submission 232 000 000; +337.74% ‼️ 53 000 000 59 740 000 (37 500 000; 76 500 000) 14 000 000 179 000 000
tests::test_code_is_not_submitted_twice_after_program_submission 242 000 000; +332.14% ‼️ 56 000 000 60 500 000 (44 500 000; 74 000 000) 16 000 000 144 000 000
tests::test_code_submission_pass 252 000 000; +330.77% ‼️ 58 500 000 61 810 000 (42 500 000; 78 000 000) 16 000 000 138 000 000
tests::test_create_program_duplicate 415 000 000; +215.59% ‼️ 131 500 000 141 050 000 (109 000 000; 163 500 000) 71 000 000 269 000 000
tests::test_create_program_duplicate_in_one_execution 660 000 000; +556.72% ‼️ 100 500 000 104 950 000 (74 500 000; 125 000 000) 42 000 000 220 000 000
tests::test_create_program_miscellaneous 1 276 000 000; +750.67% ‼️ 150 000 000 156 300 000 (124 000 000; 181 500 000) 88 000 000 275 000 000
tests::test_create_program_no_code_hash 1 125 000 000; +350.90% ‼️ 249 500 000 259 880 000 (221 500 000; 295 500 000) 134 000 000 380 000 000
tests::test_create_program_simple 1 424 000 000; +781.73% ‼️ 161 500 000 163 980 000 (126 000 000; 194 500 000) 89 000 000 287 000 000
tests::test_create_program_with_exceeding_value 160 000 000; +116.22% ❗ 74 000 000 78 470 000 (60 500 000; 92 500 000) 32 000 000 218 000 000
tests::test_create_program_with_value_lt_ed 236 000 000; +153.76% ‼️ 93 000 000 96 260 000 (78 000 000; 119 000 000) 42 000 000 185 000 000
tests::test_create_program_without_gas_works 200 000 000; +172.11% ‼️ 73 500 000 78 940 000 (56 000 000; 96 500 000) 29 000 000 183 000 000
tests::test_message_processing_for_non_existing_destination 144 000 000; +140.00% ❗ 60 000 000 64 680 000 (48 000 000; 80 500 000) 18 000 000 148 000 000
tests::test_reply_to_terminated_program 168 000 000; +121.05% ❗ 76 000 000 80 970 000 (63 000 000; 93 500 000) 22 000 000 185 000 000
tests::test_same_code_submission_fails 116 000 000; +94.96% ❗ 59 500 000 62 020 000 (47 000 000; 75 500 000) 12 000 000 178 000 000
tests::test_two_contracts_composition_works 453 000 000; +104.98% ‼️ 221 000 000 227 140 000 (196 500 000; 255 500 000) 125 000 000 359 000 000
tests::uninitialized_program_should_accept_replies 528 000 000; +384.40% ‼️ 109 000 000 112 620 000 (88 500 000; 134 000 000) 43 000 000 212 000 000
tests::unstoppable_block_execution_works 96 000 000; +48.84% ❗ 64 500 000 69 620 000 (52 500 000; 84 000 000) 26 000 000 163 000 000
tests::unused_gas_released_back_works 42 000 000; -27.59% ✔️ 58 000 000 63 300 000 (43 000 000; 83 000 000) 20 000 000 142 000 000
tests::wake_messages_after_program_inited 1 136 000 000; +422.30% ‼️ 217 500 000 218 960 000 (188 500 000; 245 500 000) 129 000 000 334 000 000

name = pallet-gear-debug

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 40 000 000; +8.11% ✔️ 37 000 000 41 810 000 (27 000 000; 57 500 000) 5 000 000 98 000 000
tests::check_changed_pages_in_storage 172 000 000; +179.67% ‼️ 61 500 000 65 660 000 (50 500 000; 80 000 000) 26 000 000 143 000 000
tests::debug_mode_works 126 000 000; +90.91% ❗ 66 000 000 68 600 000 (49 000 000; 86 000 000) 24 000 000 191 000 000

name = pallet-gear-messenger

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 64 000 000; +77.78% ❗ 36 000 000 38 380 000 (24 000 000; 49 000 000) 4 000 000 134 000 000
tests::dequeued_impl_works_manually 96 000 000; +74.55% ❗ 55 000 000 59 610 000 (44 500 000; 76 500 000) 15 000 000 106 000 000
tests::queue_processing_impl_works_manually 316 000 000; +538.38% ‼️ 49 500 000 53 790 000 (39 500 000; 65 500 000) 14 000 000 112 000 000
tests::queue_works 160 000 000; +201.89% ‼️ 53 000 000 57 140 000 (41 000 000; 71 500 000) 17 000 000 157 000 000
tests::sent_impl_works 63 000 000; +23.53% ✔️ 51 000 000 53 960 000 (38 000 000; 63 500 000) 11 000 000 147 000 000

name = pallet-gear-payment

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 84 000 000; +118.18% ❗ 38 500 000 39 540 000 (23 000 000; 50 500 000) 6 000 000 148 000 000
tests::custom_fee_multiplier_updated_per_block 88 000 000; +64.49% ❗ 53 500 000 55 150 000 (40 000 000; 69 000 000) 12 000 000 132 000 000
tests::fee_rounding_error_bounded_by_multiplier 124 000 000; +143.14% ‼️ 51 000 000 54 240 000 (38 500 000; 66 500 000) 18 000 000 111 000 000
tests::mq_size_affecting_fee_works 81 000 000; +47.27% ❗ 55 000 000 57 250 000 (41 500 000; 70 500 000) 5 000 000 124 000 000
tests::mq_size_not_affecting_fee_works 23 000 000; -55.77% ✔️ 52 000 000 55 570 000 (41 500 000; 69 000 000) 17 000 000 123 000 000
tests::query_info_and_fee_details_work 132 000 000; +140.00% ❗ 55 000 000 58 060 000 (41 500 000; 70 500 000) 10 000 000 138 000 000

name = pallet-gear-program

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 124 000 000; +222.08% ❗ 38 500 000 42 400 000 (27 500 000; 56 500 000) 4 000 000 132 000 000
tests::pause_program_twice_fails 40 000 000; -26.61% ✔️ 54 500 000 57 190 000 (40 000 000; 73 000 000) 16 000 000 135 000 000
tests::pause_program_works 248 000 000; +262.04% ‼️ 68 500 000 73 430 000 (53 000 000; 87 000 000) 25 000 000 186 000 000
tests::pause_terminated_program_fails 123 000 000; +121.62% ❗ 55 500 000 59 260 000 (40 000 000; 71 000 000) 16 000 000 184 000 000
tests::pause_uninitialized_program_works 312 000 000; +336.36% ‼️ 71 500 000 74 830 000 (57 000 000; 91 000 000) 33 000 000 185 000 000
tests::resume_program_twice_fails 488 000 000; +467.44% ‼️ 86 000 000 89 610 000 (73 000 000; 103 000 000) 42 000 000 177 000 000
tests::resume_program_wrong_list_fails 348 000 000; +346.15% ‼️ 78 000 000 81 270 000 (63 500 000; 95 000 000) 33 000 000 154 000 000
tests::resume_program_wrong_memory_fails 240 000 000; +222.15% ‼️ 74 500 000 80 580 000 (64 000 000; 93 500 000) 35 000 000 147 000 000
tests::resume_uninitialized_program_works 380 000 000; +372.05% ‼️ 80 500 000 86 440 000 (67 000 000; 106 000 000) 39 000 000 156 000 000

name = pallet-usage

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 96 000 000; +125.88% ❗ 42 500 000 44 410 000 (27 500 000; 56 500 000) 8 000 000 115 000 000
tests::dust_discarded_with_noop 153 000 000; +168.42% ‼️ 57 000 000 60 960 000 (45 000 000; 77 000 000) 20 000 000 114 000 000
tests::external_submitter_gets_rewarded 99 000 000; +80.00% ‼️ 55 000 000 56 560 000 (44 000 000; 67 500 000) 23 000 000 95 000 000
tests::gas_properly_handled_for_trap_replies 148 000 000; +171.56% ‼️ 54 500 000 55 610 000 (41 500 000; 66 500 000) 16 000 000 120 000 000
tests::ocw_double_charge 168 000 000; +180.00% ‼️ 60 000 000 58 860 000 (40 000 000; 74 000 000) 18 000 000 141 000 000
tests::ocw_interval_maintained 300 000 000; +471.43% ‼️ 52 500 000 53 810 000 (40 000 000; 65 000 000) 13 000 000 130 000 000
tests::ocw_interval_stretches_for_large_wait_list 240 000 000; +336.36% ‼️ 55 000 000 55 590 000 (41 500 000; 69 000 000) 11 000 000 141 000 000
tests::ocw_overlapping_prevented 212 000 000; +311.65% ‼️ 51 500 000 53 640 000 (38 000 000; 68 500 000) 14 000 000 102 000 000
tests::rent_charge_works 80 000 000; +73.91% ❗ 46 000 000 49 170 000 (35 000 000; 62 500 000) 13 000 000 107 000 000
tests::trap_reply_message_is_sent 152 000 000; +210.20% ‼️ 49 000 000 52 360 000 (40 000 000; 65 500 000) 10 000 000 122 000 000
Runtime tests (values are in nanoseconds)

Total execution time

name current median average lower/upper quartile min max
Total time 243 333 625 957; +50.40% ‼️ 161 789 474 027 161 831 970 741 (161 282 521 844; 162 296 037 055) 160 063 435 842 163 682 867 668

name = Async RwLock

name current median average lower/upper quartile min max
check readers 430 832 970; +834.48% ‼️ 46 104 134 54 184 574 (42 240 322; 55 377 707) 32 096 761 126 389 132
forever lock 560 541 732; +783.37% ‼️ 63 455 229 74 952 261 (58 179 143; 82 887 317) 45 368 887 149 476 966
read while writing 936 574 844; +687.70% ‼️ 118 900 522 130 188 995 (105 607 065; 160 062 586) 78 835 577 202 658 645
rwlock wide 1 661 608 456; +577.05% ‼️ 245 417 519 238 863 618 (220 739 538; 259 760 820) 178 028 385 294 385 785
write while reading 1 308 654 129; +859.82% ‼️ 136 343 051 150 105 287 (124 915 750; 185 270 211) 101 647 797 216 075 457

name = Async init

name current median average lower/upper quartile min max
approved pong 18 636 709 591; +9.98% ‼️ 16 945 601 167 16 962 684 972 (16 828 275 545; 17 096 741 944) 16 509 153 048 17 408 306 899

name = Async-await

name current median average lower/upper quartile min max
normal 388 686 144; +393.75% ‼️ 78 721 877 76 647 361 (70 785 266; 86 363 113) 35 162 223 104 633 380
panic 419 680 697; +698.46% ‼️ 52 561 581 60 946 454 (45 528 260; 75 457 936) 35 378 501 104 293 729

name = Async-duplicates-sync

name current median average lower/upper quartile min max
async-duplicates-sync 780 070 904; +476.03% ‼️ 135 421 755 128 899 447 (121 073 904; 142 111 296) 67 963 282 162 551 744

name = Async-multisig (well known cases)

name current median average lower/upper quartile min max
2 of 3; bob & alice 16 692 608 370; +78.69% ‼️ 9 341 567 087 9 354 747 054 (9 235 192 357; 9 490 669 534) 8 928 953 393 9 779 548 557
2 of 3; bob & eve 16 951 426 390; +81.52% ‼️ 9 338 626 405 9 370 889 268 (9 238 890 762; 9 470 186 902) 9 072 237 786 9 833 495 467
2 of 3; eve & alice 16 422 099 493; +75.74% ‼️ 9 344 783 766 9 349 395 311 (9 236 497 698; 9 461 281 317) 8 918 219 104 9 810 427 935
2 of 3; eve doesn't answer, alice replies with incorrect payload 14 402 295 665; +56.45% ‼️ 9 205 677 076 9 200 047 128 (9 075 730 362; 9 328 464 887) 8 798 915 334 9 561 113 395
2 of 3; no replies 10 593 696 137; +17.17% ‼️ 9 041 100 990 9 063 879 302 (8 901 940 878; 9 176 276 941) 8 641 949 927 9 607 977 297
Single signatory & zero threshold 12 406 037 445; +33.72% ‼️ 9 277 311 300 9 281 373 063 (9 143 718 769; 9 402 004 970) 8 852 512 338 9 938 134 128
Three signatories & redundand threshold 16 935 568 137; +78.32% ‼️ 9 497 151 982 9 493 211 820 (9 388 498 367; 9 583 975 079) 9 106 006 051 9 885 517 668
Three signatories; Bob replies with incorrect signature 10 045 343 601; +8.06% ‼️ 9 295 851 668 9 292 511 680 (9 175 848 253; 9 409 968 261) 8 874 387 482 9 661 739 317
Three signatories; Eve doesn't answer, Alice replies with incorrect payload 14 278 560 151; +54.64% ‼️ 9 233 703 706 9 234 015 884 (9 103 156 044; 9 329 177 173) 8 792 183 531 9 740 225 461

name = Async-sign (well known cases)

name current median average lower/upper quartile min max
bad signature 5 573 345 651; +13.14% ‼️ 4 925 944 251 4 904 261 368 (4 735 939 354; 5 059 706 891) 4 420 572 498 5 268 712 319
correct signature but for another message 7 137 477 256; +39.71% ‼️ 5 108 872 813 5 094 820 456 (4 960 485 068; 5 234 926 178) 4 632 525 993 5 506 472 463
no reply 5 391 298 232; +9.77% ‼️ 4 911 313 723 4 874 231 886 (4 715 089 280; 5 010 556 885) 4 398 152 453 5 233 440 364
signed message 7 143 556 322; +40.54% ‼️ 5 082 950 427 5 077 466 239 (4 931 308 701; 5 226 403 322) 4 639 367 929 5 456 988 553

name = Basic capacitor check

name current median average lower/upper quartile min max
Test charging/discharging 514 826 601; +465.09% ‼️ 91 105 707 87 773 695 (76 679 490; 101 594 266) 43 785 117 123 067 814

name = Decoder

name current median average lower/upper quartile min max
decoder 351 142 384; +474.46% ‼️ 61 125 374 53 573 831 (29 775 991; 72 136 770) 21 762 230 92 894 798

name = Futures-unordered

name current median average lower/upper quartile min max
futures-unordered 2 113 155 655; +563.14% ‼️ 318 661 063 306 186 854 (274 197 773; 338 315 055) 199 959 798 388 759 159
join 1 715 081 996; +605.56% ‼️ 243 081 710 252 054 594 (216 768 524; 270 208 108) 186 548 461 385 257 476
select 1 973 973 636; +734.50% ‼️ 236 544 912 250 032 429 (215 019 557; 284 760 311) 183 073 870 385 529 882

name = Incomplete-async-payloads

name current median average lower/upper quartile min max
incomplete-async-payloads 1 744 003 212; +581.95% ‼️ 255 736 208 243 644 142 (204 922 332; 274 813 607) 127 234 355 348 122 869

name = Memory test

name current median average lower/upper quartile min max
Test for memory result 346 941 873; +296.49% ‼️ 87 503 638 87 501 606 (78 991 244; 100 020 445) 37 168 646 116 831 350

name = Messages to failed program are handled properly

name current median average lower/upper quartile min max
handle messages to failed program 438 994 779; +472.90% ‼️ 76 627 335 66 318 703 (32 974 816; 91 135 045) 20 824 575 112 269 207

name = Meta ping (simple check)

name current median average lower/upper quartile min max
meta check 17 719 360 956; +11.40% ‼️ 15 906 361 934 15 952 341 950 (15 775 799 736; 16 097 639 608) 15 571 466 530 16 629 077 476

name = Multiping

name current median average lower/upper quartile min max
multiping 386 942 316; +480.11% ‼️ 66 701 552 61 038 246 (38 377 010; 76 972 948) 23 920 726 94 496 357

name = Ping-pong

name current median average lower/upper quartile min max
ping-pong 183 398 866; +456.05% ‼️ 32 982 503 41 524 275 (23 917 638; 59 011 880) 15 945 651 85 830 918
ping-pong wgas 337 791 708; +646.84% ‼️ 45 229 475 50 349 100 (40 144 745; 54 850 449) 27 315 169 104 024 729

name = Program_id test

name current median average lower/upper quartile min max
program_id 323 055 736; +478.49% ‼️ 55 844 829 48 935 162 (26 016 109; 68 759 631) 21 628 795 86 218 534

name = State-rollback

name current median average lower/upper quartile min max
state-rollback 460 424 222; +735.20% ‼️ 55 127 131 66 002 846 (44 612 901; 92 121 720) 30 943 177 123 249 373
state-saving 325 829 562; +598.89% ‼️ 46 620 861 54 822 945 (41 071 502; 58 093 282) 31 381 609 111 524 347

name = Test create_program sys-call

name current median average lower/upper quartile min max
Simple creation of program from program 336 854 871; +374.00% ‼️ 71 066 468 67 640 152 (63 091 887; 76 923 234) 26 162 799 93 497 163
Try to re-init existing program 428 262 420; +601.24% ‼️ 61 071 863 74 521 225 (54 797 190; 100 615 866) 41 775 211 124 841 113

name = Trap test

name current median average lower/upper quartile min max
Test for trap result 139 907 581; +555.40% ‼️ 21 346 894 30 966 001 (15 740 801; 48 508 783) 11 979 679 68 316 782

name = Wait test

name current median average lower/upper quartile min max
wait 476 232 485; +656.98% ‼️ 62 912 310 70 713 039 (52 856 355; 91 287 039) 41 462 009 120 662 066

name = basic

name current median average lower/upper quartile min max
test-vec (2 * 65536 * size_of(u8) = 128 KiB = 2 pages) 974 838 177; +252.65% ‼️ 276 435 531 268 842 223 (226 784 027; 300 957 735) 186 602 549 374 423 000

name = collector-1

name current median average lower/upper quartile min max
collector pass 2 messages 517 800 985; +422.23% ‼️ 99 152 113 98 466 381 (90 459 028; 105 879 770) 73 196 291 123 802 880

name = guestbook test

name current median average lower/upper quartile min max
guestbook 10 325 786 246; +15.77% ‼️ 8 919 031 441 8 924 820 495 (8 811 824 563; 9 056 297 914) 8 514 269 253 9 454 887 793

name = gui test

name current median average lower/upper quartile min max
gui 13 001 692 425; +13.87% ‼️ 11 418 385 741 11 438 638 614 (11 315 735 653; 11 544 412 258) 11 156 681 203 11 869 643 613
b317eae
Pallet tests (values are in nanoseconds)

Total execution time

name current median average lower/upper quartile min max
Total time 84 892 000 000; +3323.06% ❗ 2 480 000 000 3 747 300 000 (2 456 000 000; 2 503 500 000) 2 384 000 000 129 334 000 000

name = pallet-gas

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 25 000 000; +4.17% ✔️ 24 000 000 24 690 000 (18 000 000; 30 000 000) 7 000 000 62 000 000
tests::all_keys_are_cleared 41 000 000; +17.14% ✔️ 35 000 000 36 820 000 (29 000 000; 43 000 000) 12 000 000 70 000 000
tests::gas_free_after_consumed 22 000 000; -34.33% ✔️ 33 500 000 34 060 000 (26 000 000; 41 000 000) 15 000 000 83 000 000
tests::limit_vs_origin 52 000 000; +62.50% ❗ 32 000 000 33 540 000 (24 000 000; 40 500 000) 8 000 000 69 000 000
tests::long_chain 32 000 000; +3.23% ✔️ 31 000 000 32 110 000 (25 000 000; 38 000 000) 10 000 000 72 000 000
tests::simple_value_tree 41 000 000; +41.38% ❗ 29 000 000 30 990 000 (24 000 000; 38 500 000) 8 000 000 104 000 000
tests::split_with_no_value 30 000 000; +3.45% ✔️ 29 000 000 30 620 000 (24 000 000; 36 000 000) 8 000 000 58 000 000
tests::sub_nodes_tree 58 000 000; +75.76% ❗ 33 000 000 34 130 000 (25 000 000; 45 000 000) 9 000 000 72 000 000
tests::sub_nodes_tree_with_spends 179 000 000; +459.38% ‼️ 32 000 000 33 250 000 (23 000 000; 43 000 000) 10 000 000 72 000 000
tests::subtree_gas_limit_remains_intact 130 000 000; +306.25% ‼️ 32 000 000 34 180 000 (23 500 000; 42 000 000) 12 000 000 74 000 000
tests::value_tree_known_errors 214 000 000; +613.33% ‼️ 30 000 000 32 000 000 (24 000 000; 39 000 000) 9 000 000 69 000 000

name = pallet-gear

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 104 000 000; +383.72% ‼️ 21 500 000 22 550 000 (14 000 000; 29 000 000) 6 000 000 51 000 000
schedule::test::print_test_schedule 114 000 000; +418.18% ‼️ 22 000 000 23 510 000 (17 000 000; 27 500 000) 7 000 000 56 000 000
tests::block_gas_limit_works 196 000 000; +378.05% ‼️ 41 000 000 42 090 000 (33 000 000; 50 000 000) 21 000 000 78 000 000
tests::call_forbidden_function 58 000 000; +48.72% ❗ 39 000 000 39 740 000 (30 500 000; 48 500 000) 18 000 000 78 000 000
tests::cascading_messages_with_value_do_not_overcharge 649 000 000; +182.79% ‼️ 229 500 000 238 440 000 (210 000 000; 263 500 000) 145 000 000 400 000 000
tests::claim_value_from_mailbox_works 60 000 000; +50.00% ❗ 40 000 000 43 990 000 (30 000 000; 51 000 000) 20 000 000 93 000 000
tests::defer_program_initialization 141 000 000; +43.15% ❗ 98 500 000 101 550 000 (79 000 000; 121 000 000) 54 000 000 189 000 000
tests::distributor_distribute 133 000 000; +52.00% ❗ 87 500 000 90 070 000 (68 000 000; 103 000 000) 42 000 000 172 000 000
tests::distributor_initialize 121 000 000; +75.36% ❗ 69 000 000 71 850 000 (52 500 000; 84 500 000) 31 000 000 149 000 000
tests::events_logging_works 216 000 000; +323.53% ‼️ 51 000 000 55 090 000 (37 500 000; 68 000 000) 16 000 000 142 000 000
tests::exit_handle 133 000 000; +146.30% ‼️ 54 000 000 55 290 000 (42 000 000; 67 000 000) 17 000 000 107 000 000
tests::exit_init 264 000 000; +282.61% ‼️ 69 000 000 71 510 000 (55 000 000; 83 500 000) 31 000 000 134 000 000
tests::gas_spent_precalculated 228 000 000; +330.19% ‼️ 53 000 000 56 790 000 (41 500 000; 71 000 000) 20 000 000 117 000 000
tests::gas_spent_vs_balance 444 000 000; +274.68% ‼️ 118 500 000 121 260 000 (95 500 000; 141 000 000) 54 000 000 198 000 000
tests::init_message_logging_works 226 000 000; +303.57% ‼️ 56 000 000 59 110 000 (41 500 000; 70 000 000) 20 000 000 145 000 000
tests::init_wait_reply_exit_cleaned_storage 372 000 000; +247.66% ‼️ 107 000 000 108 220 000 (91 500 000; 122 000 000) 56 000 000 211 000 000
tests::lazy_pages 191 000 000; +244.14% ‼️ 55 500 000 59 480 000 (47 500 000; 71 500 000) 17 000 000 112 000 000
tests::mailbox_works 243 000 000; +345.87% ‼️ 54 500 000 59 630 000 (45 000 000; 70 000 000) 23 000 000 127 000 000
tests::memory_access_cases 235 000 000; +315.93% ‼️ 56 500 000 60 650 000 (45 000 000; 76 000 000) 27 000 000 121 000 000
tests::messages_processing_works 114 000 000; +93.22% ❗ 59 000 000 61 140 000 (46 000 000; 75 500 000) 13 000 000 116 000 000
tests::messages_to_paused_program_skipped 138 000 000; +70.37% ❗ 81 000 000 82 900 000 (61 000 000; 102 000 000) 36 000 000 162 000 000
tests::messages_to_uninitialized_program_wait 115 000 000; +59.72% ❗ 72 000 000 75 250 000 (56 500 000; 91 000 000) 35 000 000 149 000 000
tests::no_redundant_gas_value_after_exiting 188 000 000; +205.69% ‼️ 61 500 000 62 240 000 (45 500 000; 75 500 000) 19 000 000 140 000 000
tests::paused_program_keeps_id 110 000 000; +39.24% ❗ 79 000 000 84 070 000 (66 000 000; 98 000 000) 31 000 000 173 000 000
tests::program_lifecycle_works 43 000 000; -27.12% ✔️ 59 000 000 62 400 000 (47 000 000; 70 500 000) 19 000 000 161 000 000
tests::program_messages_to_paused_program_skipped 274 000 000; +136.21% ‼️ 116 000 000 123 400 000 (98 000 000; 142 500 000) 68 000 000 243 000 000
tests::replies_to_paused_program_skipped 90 000 000; +20.00% ✔️ 75 000 000 77 730 000 (61 000 000; 93 500 000) 30 000 000 152 000 000
tests::restrict_start_section 82 000 000; +59.22% ❗ 51 500 000 56 170 000 (41 500 000; 73 000 000) 14 000 000 143 000 000
tests::resume_program_works 215 000 000; +88.60% ❗ 114 000 000 118 240 000 (91 500 000; 138 000 000) 63 000 000 220 000 000
tests::send_message_expected_failure 90 000 000; +53.85% ❗ 58 500 000 59 430 000 (44 500 000; 74 000 000) 20 000 000 115 000 000
tests::send_message_works 135 000 000; +141.07% ❗ 56 000 000 62 420 000 (41 000 000; 75 000 000) 23 000 000 172 000 000
tests::send_reply_failure_to_claim_from_mailbox 262 000 000; +344.07% ‼️ 59 000 000 62 630 000 (44 000 000; 77 500 000) 24 000 000 119 000 000
tests::send_reply_value_claiming_works 100 000 000; +72.41% ❗ 58 000 000 63 540 000 (43 500 000; 81 000 000) 23 000 000 173 000 000
tests::send_reply_works 86 000 000; +50.88% ❗ 57 000 000 57 900 000 (40 000 000; 73 000 000) 17 000 000 158 000 000
tests::spent_gas_to_reward_block_author_works 54 000 000; -6.09% ✔️ 57 500 000 57 350 000 (41 000 000; 69 500 000) 20 000 000 115 000 000
tests::submit_program_expected_failure 296 000 000; +453.27% ‼️ 53 500 000 56 020 000 (36 000 000; 70 500 000) 15 000 000 121 000 000
tests::submit_program_fails_on_duplicate_id 115 000 000; +96.58% ❗ 58 500 000 59 290 000 (44 000 000; 69 000 000) 20 000 000 181 000 000
tests::test_async_messages 2 235 000 000; +271.26% ‼️ 602 000 000 601 110 000 (562 500 000; 639 000 000) 465 000 000 759 000 000
tests::test_code_is_not_reset_within_program_submission 104 000 000; +96.23% ❗ 53 000 000 59 740 000 (37 500 000; 76 500 000) 14 000 000 179 000 000
tests::test_code_is_not_submitted_twice_after_program_submission 157 000 000; +180.36% ‼️ 56 000 000 60 500 000 (44 500 000; 74 000 000) 16 000 000 144 000 000
tests::test_code_submission_pass 262 000 000; +347.86% ‼️ 58 500 000 61 810 000 (42 500 000; 78 000 000) 16 000 000 138 000 000
tests::test_create_program_duplicate 249 000 000; +89.35% ❗ 131 500 000 141 050 000 (109 000 000; 163 500 000) 71 000 000 269 000 000
tests::test_create_program_duplicate_in_one_execution 380 000 000; +278.11% ‼️ 100 500 000 104 950 000 (74 500 000; 125 000 000) 42 000 000 220 000 000
tests::test_create_program_miscellaneous 386 000 000; +157.33% ‼️ 150 000 000 156 300 000 (124 000 000; 181 500 000) 88 000 000 275 000 000
tests::test_create_program_no_code_hash 523 000 000; +109.62% ‼️ 249 500 000 259 880 000 (221 500 000; 295 500 000) 134 000 000 380 000 000
tests::test_create_program_simple 305 000 000; +88.85% ‼️ 161 500 000 163 980 000 (126 000 000; 194 500 000) 89 000 000 287 000 000
tests::test_create_program_with_exceeding_value 186 000 000; +151.35% ❗ 74 000 000 78 470 000 (60 500 000; 92 500 000) 32 000 000 218 000 000
tests::test_create_program_with_value_lt_ed 193 000 000; +107.53% ‼️ 93 000 000 96 260 000 (78 000 000; 119 000 000) 42 000 000 185 000 000
tests::test_create_program_without_gas_works 109 000 000; +48.30% ❗ 73 500 000 78 940 000 (56 000 000; 96 500 000) 29 000 000 183 000 000
tests::test_message_processing_for_non_existing_destination 86 000 000; +43.33% ❗ 60 000 000 64 680 000 (48 000 000; 80 500 000) 18 000 000 148 000 000
tests::test_reply_to_terminated_program 108 000 000; +42.11% ❗ 76 000 000 80 970 000 (63 000 000; 93 500 000) 22 000 000 185 000 000
tests::test_same_code_submission_fails 40 000 000; -32.77% ✔️ 59 500 000 62 020 000 (47 000 000; 75 500 000) 12 000 000 178 000 000
tests::test_two_contracts_composition_works 703 000 000; +218.10% ‼️ 221 000 000 227 140 000 (196 500 000; 255 500 000) 125 000 000 359 000 000
tests::uninitialized_program_should_accept_replies 344 000 000; +215.60% ‼️ 109 000 000 112 620 000 (88 500 000; 134 000 000) 43 000 000 212 000 000
tests::unstoppable_block_execution_works 160 000 000; +148.06% ❗ 64 500 000 69 620 000 (52 500 000; 84 000 000) 26 000 000 163 000 000
tests::unused_gas_released_back_works 99 000 000; +70.69% ❗ 58 000 000 63 300 000 (43 000 000; 83 000 000) 20 000 000 142 000 000
tests::wake_messages_after_program_inited 434 000 000; +99.54% ‼️ 217 500 000 218 960 000 (188 500 000; 245 500 000) 129 000 000 334 000 000

name = pallet-gear-debug

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 95 000 000; +156.76% ❗ 37 000 000 41 810 000 (27 000 000; 57 500 000) 5 000 000 98 000 000
tests::check_changed_pages_in_storage 209 000 000; +239.84% ‼️ 61 500 000 65 660 000 (50 500 000; 80 000 000) 26 000 000 143 000 000
tests::debug_mode_works 99 000 000; +50.00% ❗ 66 000 000 68 600 000 (49 000 000; 86 000 000) 24 000 000 191 000 000

name = pallet-gear-messenger

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 147 000 000; +308.33% ‼️ 36 000 000 38 380 000 (24 000 000; 49 000 000) 4 000 000 134 000 000
tests::dequeued_impl_works_manually 69 000 000; +25.45% ✔️ 55 000 000 59 610 000 (44 500 000; 76 500 000) 15 000 000 106 000 000
tests::queue_processing_impl_works_manually 209 000 000; +322.22% ‼️ 49 500 000 53 790 000 (39 500 000; 65 500 000) 14 000 000 112 000 000
tests::queue_works 124 000 000; +133.96% ❗ 53 000 000 57 140 000 (41 000 000; 71 500 000) 17 000 000 157 000 000
tests::sent_impl_works 45 000 000; -11.76% ✔️ 51 000 000 53 960 000 (38 000 000; 63 500 000) 11 000 000 147 000 000

name = pallet-gear-payment

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 107 000 000; +177.92% ❗ 38 500 000 39 540 000 (23 000 000; 50 500 000) 6 000 000 148 000 000
tests::custom_fee_multiplier_updated_per_block 136 000 000; +154.21% ‼️ 53 500 000 55 150 000 (40 000 000; 69 000 000) 12 000 000 132 000 000
tests::fee_rounding_error_bounded_by_multiplier 140 000 000; +174.51% ‼️ 51 000 000 54 240 000 (38 500 000; 66 500 000) 18 000 000 111 000 000
tests::mq_size_affecting_fee_works 147 000 000; +167.27% ‼️ 55 000 000 57 250 000 (41 500 000; 70 500 000) 5 000 000 124 000 000
tests::mq_size_not_affecting_fee_works 320 000 000; +515.38% ‼️ 52 000 000 55 570 000 (41 500 000; 69 000 000) 17 000 000 123 000 000
tests::query_info_and_fee_details_work 162 000 000; +194.55% ‼️ 55 000 000 58 060 000 (41 500 000; 70 500 000) 10 000 000 138 000 000

name = pallet-gear-program

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 131 000 000; +240.26% ❗ 38 500 000 42 400 000 (27 500 000; 56 500 000) 4 000 000 132 000 000
tests::pause_program_twice_fails 144 000 000; +164.22% ‼️ 54 500 000 57 190 000 (40 000 000; 73 000 000) 16 000 000 135 000 000
tests::pause_program_works 156 000 000; +127.74% ❗ 68 500 000 73 430 000 (53 000 000; 87 000 000) 25 000 000 186 000 000
tests::pause_terminated_program_fails 81 000 000; +45.95% ❗ 55 500 000 59 260 000 (40 000 000; 71 000 000) 16 000 000 184 000 000
tests::pause_uninitialized_program_works 89 000 000; +24.48% ✔️ 71 500 000 74 830 000 (57 000 000; 91 000 000) 33 000 000 185 000 000
tests::resume_program_twice_fails 117 000 000; +36.05% ❗ 86 000 000 89 610 000 (73 000 000; 103 000 000) 42 000 000 177 000 000
tests::resume_program_wrong_list_fails 56 000 000; -28.21% ✔️ 78 000 000 81 270 000 (63 500 000; 95 000 000) 33 000 000 154 000 000
tests::resume_program_wrong_memory_fails 116 000 000; +55.70% ❗ 74 500 000 80 580 000 (64 000 000; 93 500 000) 35 000 000 147 000 000
tests::resume_uninitialized_program_works 107 000 000; +32.92% ❗ 80 500 000 86 440 000 (67 000 000; 106 000 000) 39 000 000 156 000 000

name = pallet-usage

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 59 000 000; +38.82% ❗ 42 500 000 44 410 000 (27 500 000; 56 500 000) 8 000 000 115 000 000
tests::dust_discarded_with_noop 92 000 000; +61.40% ❗ 57 000 000 60 960 000 (45 000 000; 77 000 000) 20 000 000 114 000 000
tests::external_submitter_gets_rewarded 88 000 000; +60.00% ❗ 55 000 000 56 560 000 (44 000 000; 67 500 000) 23 000 000 95 000 000
tests::gas_properly_handled_for_trap_replies 59 000 000; +8.26% ✔️ 54 500 000 55 610 000 (41 500 000; 66 500 000) 16 000 000 120 000 000
tests::ocw_double_charge 64 000 000; +6.67% ✔️ 60 000 000 58 860 000 (40 000 000; 74 000 000) 18 000 000 141 000 000
tests::ocw_interval_maintained 69 000 000; +31.43% ❗ 52 500 000 53 810 000 (40 000 000; 65 000 000) 13 000 000 130 000 000
tests::ocw_interval_stretches_for_large_wait_list 100 000 000; +81.82% ❗ 55 000 000 55 590 000 (41 500 000; 69 000 000) 11 000 000 141 000 000
tests::ocw_overlapping_prevented 128 000 000; +148.54% ‼️ 51 500 000 53 640 000 (38 000 000; 68 500 000) 14 000 000 102 000 000
tests::rent_charge_works 70 000 000; +52.17% ❗ 46 000 000 49 170 000 (35 000 000; 62 500 000) 13 000 000 107 000 000
tests::trap_reply_message_is_sent 42 000 000; -14.29% ✔️ 49 000 000 52 360 000 (40 000 000; 65 500 000) 10 000 000 122 000 000
Runtime tests (values are in nanoseconds)

Total execution time

name current median average lower/upper quartile min max
Total time 225 123 860 658; +39.15% ‼️ 161 789 474 027 161 831 970 741 (161 282 521 844; 162 296 037 055) 160 063 435 842 163 682 867 668

name = Async RwLock

name current median average lower/upper quartile min max
check readers 299 953 815; +550.60% ‼️ 46 104 134 54 184 574 (42 240 322; 55 377 707) 32 096 761 126 389 132
forever lock 405 006 238; +538.26% ‼️ 63 455 229 74 952 261 (58 179 143; 82 887 317) 45 368 887 149 476 966
read while writing 733 378 147; +516.80% ‼️ 118 900 522 130 188 995 (105 607 065; 160 062 586) 78 835 577 202 658 645
rwlock wide 1 295 960 765; +428.06% ‼️ 245 417 519 238 863 618 (220 739 538; 259 760 820) 178 028 385 294 385 785
write while reading 956 246 085; +601.35% ‼️ 136 343 051 150 105 287 (124 915 750; 185 270 211) 101 647 797 216 075 457

name = Async init

name current median average lower/upper quartile min max
approved pong 17 880 807 632; +5.52% ‼️ 16 945 601 167 16 962 684 972 (16 828 275 545; 17 096 741 944) 16 509 153 048 17 408 306 899

name = Async-await

name current median average lower/upper quartile min max
normal 330 946 279; +320.40% ‼️ 78 721 877 76 647 361 (70 785 266; 86 363 113) 35 162 223 104 633 380
panic 319 379 665; +507.63% ‼️ 52 561 581 60 946 454 (45 528 260; 75 457 936) 35 378 501 104 293 729

name = Async-duplicates-sync

name current median average lower/upper quartile min max
async-duplicates-sync 720 922 542; +432.35% ‼️ 135 421 755 128 899 447 (121 073 904; 142 111 296) 67 963 282 162 551 744

name = Async-multisig (well known cases)

name current median average lower/upper quartile min max
2 of 3; bob & alice 15 566 817 569; +66.64% ‼️ 9 341 567 087 9 354 747 054 (9 235 192 357; 9 490 669 534) 8 928 953 393 9 779 548 557
2 of 3; bob & eve 11 772 243 682; +26.06% ‼️ 9 338 626 405 9 370 889 268 (9 238 890 762; 9 470 186 902) 9 072 237 786 9 833 495 467
2 of 3; eve & alice 15 165 318 742; +62.29% ‼️ 9 344 783 766 9 349 395 311 (9 236 497 698; 9 461 281 317) 8 918 219 104 9 810 427 935
2 of 3; eve doesn't answer, alice replies with incorrect payload 13 330 889 758; +44.81% ‼️ 9 205 677 076 9 200 047 128 (9 075 730 362; 9 328 464 887) 8 798 915 334 9 561 113 395
2 of 3; no replies 9 386 274 706; +3.82% ❗ 9 041 100 990 9 063 879 302 (8 901 940 878; 9 176 276 941) 8 641 949 927 9 607 977 297
Single signatory & zero threshold 13 551 044 967; +46.07% ‼️ 9 277 311 300 9 281 373 063 (9 143 718 769; 9 402 004 970) 8 852 512 338 9 938 134 128
Three signatories & redundand threshold 16 058 682 502; +69.09% ‼️ 9 497 151 982 9 493 211 820 (9 388 498 367; 9 583 975 079) 9 106 006 051 9 885 517 668
Three signatories; Bob replies with incorrect signature 12 976 563 910; +39.60% ‼️ 9 295 851 668 9 292 511 680 (9 175 848 253; 9 409 968 261) 8 874 387 482 9 661 739 317
Three signatories; Eve doesn't answer, Alice replies with incorrect payload 13 633 402 558; +47.65% ‼️ 9 233 703 706 9 234 015 884 (9 103 156 044; 9 329 177 173) 8 792 183 531 9 740 225 461

name = Async-sign (well known cases)

name current median average lower/upper quartile min max
bad signature 4 817 852 116; -2.19% ✔️ 4 925 944 251 4 904 261 368 (4 735 939 354; 5 059 706 891) 4 420 572 498 5 268 712 319
correct signature but for another message 5 616 993 662; +9.95% ‼️ 5 108 872 813 5 094 820 456 (4 960 485 068; 5 234 926 178) 4 632 525 993 5 506 472 463
no reply 5 449 334 185; +10.95% ‼️ 4 911 313 723 4 874 231 886 (4 715 089 280; 5 010 556 885) 4 398 152 453 5 233 440 364
signed message 5 912 710 439; +16.32% ‼️ 5 082 950 427 5 077 466 239 (4 931 308 701; 5 226 403 322) 4 639 367 929 5 456 988 553

name = Basic capacitor check

name current median average lower/upper quartile min max
Test charging/discharging 390 309 120; +328.41% ‼️ 91 105 707 87 773 695 (76 679 490; 101 594 266) 43 785 117 123 067 814

name = Decoder

name current median average lower/upper quartile min max
decoder 198 646 785; +224.98% ‼️ 61 125 374 53 573 831 (29 775 991; 72 136 770) 21 762 230 92 894 798

name = Futures-unordered

name current median average lower/upper quartile min max
futures-unordered 1 862 631 975; +484.52% ‼️ 318 661 063 306 186 854 (274 197 773; 338 315 055) 199 959 798 388 759 159
join 1 820 233 078; +648.82% ‼️ 243 081 710 252 054 594 (216 768 524; 270 208 108) 186 548 461 385 257 476
select 1 815 939 268; +667.69% ‼️ 236 544 912 250 032 429 (215 019 557; 284 760 311) 183 073 870 385 529 882

name = Incomplete-async-payloads

name current median average lower/upper quartile min max
incomplete-async-payloads 1 635 902 851; +539.68% ‼️ 255 736 208 243 644 142 (204 922 332; 274 813 607) 127 234 355 348 122 869

name = Memory test

name current median average lower/upper quartile min max
Test for memory result 301 793 552; +244.89% ‼️ 87 503 638 87 501 606 (78 991 244; 100 020 445) 37 168 646 116 831 350

name = Messages to failed program are handled properly

name current median average lower/upper quartile min max
handle messages to failed program 385 664 179; +403.30% ‼️ 76 627 335 66 318 703 (32 974 816; 91 135 045) 20 824 575 112 269 207

name = Meta ping (simple check)

name current median average lower/upper quartile min max
meta check 16 549 489 964; +4.04% ❗ 15 906 361 934 15 952 341 950 (15 775 799 736; 16 097 639 608) 15 571 466 530 16 629 077 476

name = Multiping

name current median average lower/upper quartile min max
multiping 310 418 693; +365.38% ‼️ 66 701 552 61 038 246 (38 377 010; 76 972 948) 23 920 726 94 496 357

name = Ping-pong

name current median average lower/upper quartile min max
ping-pong 194 136 529; +488.60% ‼️ 32 982 503 41 524 275 (23 917 638; 59 011 880) 15 945 651 85 830 918
ping-pong wgas 295 771 340; +553.93% ‼️ 45 229 475 50 349 100 (40 144 745; 54 850 449) 27 315 169 104 024 729

name = Program_id test

name current median average lower/upper quartile min max
program_id 240 907 317; +331.39% ‼️ 55 844 829 48 935 162 (26 016 109; 68 759 631) 21 628 795 86 218 534

name = State-rollback

name current median average lower/upper quartile min max
state-rollback 329 950 046; +498.53% ‼️ 55 127 131 66 002 846 (44 612 901; 92 121 720) 30 943 177 123 249 373
state-saving 255 025 196; +447.02% ‼️ 46 620 861 54 822 945 (41 071 502; 58 093 282) 31 381 609 111 524 347

name = Test create_program sys-call

name current median average lower/upper quartile min max
Simple creation of program from program 267 210 351; +276.00% ‼️ 71 066 468 67 640 152 (63 091 887; 76 923 234) 26 162 799 93 497 163
Try to re-init existing program 392 564 649; +542.79% ‼️ 61 071 863 74 521 225 (54 797 190; 100 615 866) 41 775 211 124 841 113

name = Trap test

name current median average lower/upper quartile min max
Test for trap result 135 811 917; +536.21% ‼️ 21 346 894 30 966 001 (15 740 801; 48 508 783) 11 979 679 68 316 782

name = Wait test

name current median average lower/upper quartile min max
wait 468 265 664; +644.31% ‼️ 62 912 310 70 713 039 (52 856 355; 91 287 039) 41 462 009 120 662 066

name = basic

name current median average lower/upper quartile min max
test-vec (2 * 65536 * size_of(u8) = 128 KiB = 2 pages) 875 575 922; +216.74% ‼️ 276 435 531 268 842 223 (226 784 027; 300 957 735) 186 602 549 374 423 000

name = collector-1

name current median average lower/upper quartile min max
collector pass 2 messages 477 079 691; +381.16% ‼️ 99 152 113 98 466 381 (90 459 028; 105 879 770) 73 196 291 123 802 880

name = guestbook test

name current median average lower/upper quartile min max
guestbook 9 160 443 477; +2.71% ❗ 8 919 031 441 8 924 820 495 (8 811 824 563; 9 056 297 914) 8 514 269 253 9 454 887 793

name = gui test

name current median average lower/upper quartile min max
gui 12 048 374 225; +5.52% ‼️ 11 418 385 741 11 438 638 614 (11 315 735 653; 11 544 412 258) 11 156 681 203 11 869 643 613
de07b84
Pallet tests (values are in nanoseconds)

Total execution time

name current median average lower/upper quartile min max
Total time 82 015 000 000; +3207.06% ❗ 2 480 000 000 3 747 300 000 (2 456 000 000; 2 503 500 000) 2 384 000 000 129 334 000 000

name = pallet-gas

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 46 000 000; +91.67% ❗ 24 000 000 24 690 000 (18 000 000; 30 000 000) 7 000 000 62 000 000
tests::all_keys_are_cleared 73 000 000; +108.57% ‼️ 35 000 000 36 820 000 (29 000 000; 43 000 000) 12 000 000 70 000 000
tests::gas_free_after_consumed 166 000 000; +395.52% ‼️ 33 500 000 34 060 000 (26 000 000; 41 000 000) 15 000 000 83 000 000
tests::limit_vs_origin 98 000 000; +206.25% ‼️ 32 000 000 33 540 000 (24 000 000; 40 500 000) 8 000 000 69 000 000
tests::long_chain 585 000 000; +1787.10% ‼️ 31 000 000 32 110 000 (25 000 000; 38 000 000) 10 000 000 72 000 000
tests::simple_value_tree 250 000 000; +762.07% ‼️ 29 000 000 30 990 000 (24 000 000; 38 500 000) 8 000 000 104 000 000
tests::split_with_no_value 487 000 000; +1579.31% ‼️ 29 000 000 30 620 000 (24 000 000; 36 000 000) 8 000 000 58 000 000
tests::sub_nodes_tree 253 000 000; +666.67% ‼️ 33 000 000 34 130 000 (25 000 000; 45 000 000) 9 000 000 72 000 000
tests::sub_nodes_tree_with_spends 120 000 000; +275.00% ‼️ 32 000 000 33 250 000 (23 000 000; 43 000 000) 10 000 000 72 000 000
tests::subtree_gas_limit_remains_intact 74 000 000; +131.25% ‼️ 32 000 000 34 180 000 (23 500 000; 42 000 000) 12 000 000 74 000 000
tests::value_tree_known_errors 118 000 000; +293.33% ‼️ 30 000 000 32 000 000 (24 000 000; 39 000 000) 9 000 000 69 000 000

name = pallet-gear

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 41 000 000; +90.70% ❗ 21 500 000 22 550 000 (14 000 000; 29 000 000) 6 000 000 51 000 000
schedule::test::print_test_schedule 58 000 000; +163.64% ‼️ 22 000 000 23 510 000 (17 000 000; 27 500 000) 7 000 000 56 000 000
tests::block_gas_limit_works 159 000 000; +287.80% ‼️ 41 000 000 42 090 000 (33 000 000; 50 000 000) 21 000 000 78 000 000
tests::call_forbidden_function 141 000 000; +261.54% ‼️ 39 000 000 39 740 000 (30 500 000; 48 500 000) 18 000 000 78 000 000
tests::cascading_messages_with_value_do_not_overcharge 855 000 000; +272.55% ‼️ 229 500 000 238 440 000 (210 000 000; 263 500 000) 145 000 000 400 000 000
tests::claim_value_from_mailbox_works 140 000 000; +250.00% ‼️ 40 000 000 43 990 000 (30 000 000; 51 000 000) 20 000 000 93 000 000
tests::defer_program_initialization 168 000 000; +70.56% ❗ 98 500 000 101 550 000 (79 000 000; 121 000 000) 54 000 000 189 000 000
tests::distributor_distribute 258 000 000; +194.86% ‼️ 87 500 000 90 070 000 (68 000 000; 103 000 000) 42 000 000 172 000 000
tests::distributor_initialize 92 000 000; +33.33% ❗ 69 000 000 71 850 000 (52 500 000; 84 500 000) 31 000 000 149 000 000
tests::events_logging_works 249 000 000; +388.24% ‼️ 51 000 000 55 090 000 (37 500 000; 68 000 000) 16 000 000 142 000 000
tests::exit_handle 250 000 000; +362.96% ‼️ 54 000 000 55 290 000 (42 000 000; 67 000 000) 17 000 000 107 000 000
tests::exit_init 214 000 000; +210.14% ‼️ 69 000 000 71 510 000 (55 000 000; 83 500 000) 31 000 000 134 000 000
tests::gas_spent_precalculated 170 000 000; +220.75% ‼️ 53 000 000 56 790 000 (41 500 000; 71 000 000) 20 000 000 117 000 000
tests::gas_spent_vs_balance 247 000 000; +108.44% ‼️ 118 500 000 121 260 000 (95 500 000; 141 000 000) 54 000 000 198 000 000
tests::init_message_logging_works 163 000 000; +191.07% ‼️ 56 000 000 59 110 000 (41 500 000; 70 000 000) 20 000 000 145 000 000
tests::init_wait_reply_exit_cleaned_storage 342 000 000; +219.63% ‼️ 107 000 000 108 220 000 (91 500 000; 122 000 000) 56 000 000 211 000 000
tests::lazy_pages 64 000 000; +15.32% ✔️ 55 500 000 59 480 000 (47 500 000; 71 500 000) 17 000 000 112 000 000
tests::mailbox_works 88 000 000; +61.47% ❗ 54 500 000 59 630 000 (45 000 000; 70 000 000) 23 000 000 127 000 000
tests::memory_access_cases 70 000 000; +23.89% ✔️ 56 500 000 60 650 000 (45 000 000; 76 000 000) 27 000 000 121 000 000
tests::messages_processing_works 94 000 000; +59.32% ❗ 59 000 000 61 140 000 (46 000 000; 75 500 000) 13 000 000 116 000 000
tests::messages_to_paused_program_skipped 176 000 000; +117.28% ‼️ 81 000 000 82 900 000 (61 000 000; 102 000 000) 36 000 000 162 000 000
tests::messages_to_uninitialized_program_wait 111 000 000; +54.17% ❗ 72 000 000 75 250 000 (56 500 000; 91 000 000) 35 000 000 149 000 000
tests::no_redundant_gas_value_after_exiting 74 000 000; +20.33% ✔️ 61 500 000 62 240 000 (45 500 000; 75 500 000) 19 000 000 140 000 000
tests::paused_program_keeps_id 240 000 000; +203.80% ‼️ 79 000 000 84 070 000 (66 000 000; 98 000 000) 31 000 000 173 000 000
tests::program_lifecycle_works 91 000 000; +54.24% ❗ 59 000 000 62 400 000 (47 000 000; 70 500 000) 19 000 000 161 000 000
tests::program_messages_to_paused_program_skipped 372 000 000; +220.69% ‼️ 116 000 000 123 400 000 (98 000 000; 142 500 000) 68 000 000 243 000 000
tests::replies_to_paused_program_skipped 80 000 000; +6.67% ✔️ 75 000 000 77 730 000 (61 000 000; 93 500 000) 30 000 000 152 000 000
tests::restrict_start_section 111 000 000; +115.53% ❗ 51 500 000 56 170 000 (41 500 000; 73 000 000) 14 000 000 143 000 000
tests::resume_program_works 420 000 000; +268.42% ‼️ 114 000 000 118 240 000 (91 500 000; 138 000 000) 63 000 000 220 000 000
tests::send_message_expected_failure 162 000 000; +176.92% ‼️ 58 500 000 59 430 000 (44 500 000; 74 000 000) 20 000 000 115 000 000
tests::send_message_works 85 000 000; +51.79% ❗ 56 000 000 62 420 000 (41 000 000; 75 000 000) 23 000 000 172 000 000
tests::send_reply_failure_to_claim_from_mailbox 216 000 000; +266.10% ‼️ 59 000 000 62 630 000 (44 000 000; 77 500 000) 24 000 000 119 000 000
tests::send_reply_value_claiming_works 127 000 000; +118.97% ❗ 58 000 000 63 540 000 (43 500 000; 81 000 000) 23 000 000 173 000 000
tests::send_reply_works 162 000 000; +184.21% ‼️ 57 000 000 57 900 000 (40 000 000; 73 000 000) 17 000 000 158 000 000
tests::spent_gas_to_reward_block_author_works 160 000 000; +178.26% ‼️ 57 500 000 57 350 000 (41 000 000; 69 500 000) 20 000 000 115 000 000
tests::submit_program_expected_failure 185 000 000; +245.79% ‼️ 53 500 000 56 020 000 (36 000 000; 70 500 000) 15 000 000 121 000 000
tests::submit_program_fails_on_duplicate_id 112 000 000; +91.45% ❗ 58 500 000 59 290 000 (44 000 000; 69 000 000) 20 000 000 181 000 000
tests::test_async_messages 2 315 000 000; +284.55% ‼️ 602 000 000 601 110 000 (562 500 000; 639 000 000) 465 000 000 759 000 000
tests::test_code_is_not_reset_within_program_submission 123 000 000; +132.08% ❗ 53 000 000 59 740 000 (37 500 000; 76 500 000) 14 000 000 179 000 000
tests::test_code_is_not_submitted_twice_after_program_submission 142 000 000; +153.57% ❗ 56 000 000 60 500 000 (44 500 000; 74 000 000) 16 000 000 144 000 000
tests::test_code_submission_pass 72 000 000; +23.08% ✔️ 58 500 000 61 810 000 (42 500 000; 78 000 000) 16 000 000 138 000 000
tests::test_create_program_duplicate 233 000 000; +77.19% ❗ 131 500 000 141 050 000 (109 000 000; 163 500 000) 71 000 000 269 000 000
tests::test_create_program_duplicate_in_one_execution 186 000 000; +85.07% ❗ 100 500 000 104 950 000 (74 500 000; 125 000 000) 42 000 000 220 000 000
tests::test_create_program_miscellaneous 445 000 000; +196.67% ‼️ 150 000 000 156 300 000 (124 000 000; 181 500 000) 88 000 000 275 000 000
tests::test_create_program_no_code_hash 545 000 000; +118.44% ‼️ 249 500 000 259 880 000 (221 500 000; 295 500 000) 134 000 000 380 000 000
tests::test_create_program_simple 647 000 000; +300.62% ‼️ 161 500 000 163 980 000 (126 000 000; 194 500 000) 89 000 000 287 000 000
tests::test_create_program_with_exceeding_value 203 000 000; +174.32% ❗ 74 000 000 78 470 000 (60 500 000; 92 500 000) 32 000 000 218 000 000
tests::test_create_program_with_value_lt_ed 126 000 000; +35.48% ❗ 93 000 000 96 260 000 (78 000 000; 119 000 000) 42 000 000 185 000 000
tests::test_create_program_without_gas_works 103 000 000; +40.14% ❗ 73 500 000 78 940 000 (56 000 000; 96 500 000) 29 000 000 183 000 000
tests::test_message_processing_for_non_existing_destination 69 000 000; +15.00% ✔️ 60 000 000 64 680 000 (48 000 000; 80 500 000) 18 000 000 148 000 000
tests::test_reply_to_terminated_program 84 000 000; +10.53% ✔️ 76 000 000 80 970 000 (63 000 000; 93 500 000) 22 000 000 185 000 000
tests::test_same_code_submission_fails 109 000 000; +83.19% ❗ 59 500 000 62 020 000 (47 000 000; 75 500 000) 12 000 000 178 000 000
tests::test_two_contracts_composition_works 679 000 000; +207.24% ‼️ 221 000 000 227 140 000 (196 500 000; 255 500 000) 125 000 000 359 000 000
tests::uninitialized_program_should_accept_replies 422 000 000; +287.16% ‼️ 109 000 000 112 620 000 (88 500 000; 134 000 000) 43 000 000 212 000 000
tests::unstoppable_block_execution_works 71 000 000; +10.08% ✔️ 64 500 000 69 620 000 (52 500 000; 84 000 000) 26 000 000 163 000 000
tests::unused_gas_released_back_works 139 000 000; +139.66% ❗ 58 000 000 63 300 000 (43 000 000; 83 000 000) 20 000 000 142 000 000
tests::wake_messages_after_program_inited 1 008 000 000; +363.45% ‼️ 217 500 000 218 960 000 (188 500 000; 245 500 000) 129 000 000 334 000 000

name = pallet-gear-debug

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 163 000 000; +340.54% ‼️ 37 000 000 41 810 000 (27 000 000; 57 500 000) 5 000 000 98 000 000
tests::check_changed_pages_in_storage 220 000 000; +257.72% ‼️ 61 500 000 65 660 000 (50 500 000; 80 000 000) 26 000 000 143 000 000
tests::debug_mode_works 167 000 000; +153.03% ❗ 66 000 000 68 600 000 (49 000 000; 86 000 000) 24 000 000 191 000 000

name = pallet-gear-messenger

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 177 000 000; +391.67% ‼️ 36 000 000 38 380 000 (24 000 000; 49 000 000) 4 000 000 134 000 000
tests::dequeued_impl_works_manually 172 000 000; +212.73% ‼️ 55 000 000 59 610 000 (44 500 000; 76 500 000) 15 000 000 106 000 000
tests::queue_processing_impl_works_manually 250 000 000; +405.05% ‼️ 49 500 000 53 790 000 (39 500 000; 65 500 000) 14 000 000 112 000 000
tests::queue_works 200 000 000; +277.36% ‼️ 53 000 000 57 140 000 (41 000 000; 71 500 000) 17 000 000 157 000 000
tests::sent_impl_works 100 000 000; +96.08% ❗ 51 000 000 53 960 000 (38 000 000; 63 500 000) 11 000 000 147 000 000

name = pallet-gear-payment

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 104 000 000; +170.13% ❗ 38 500 000 39 540 000 (23 000 000; 50 500 000) 6 000 000 148 000 000
tests::custom_fee_multiplier_updated_per_block 73 000 000; +36.45% ❗ 53 500 000 55 150 000 (40 000 000; 69 000 000) 12 000 000 132 000 000
tests::fee_rounding_error_bounded_by_multiplier 63 000 000; +23.53% ✔️ 51 000 000 54 240 000 (38 500 000; 66 500 000) 18 000 000 111 000 000
tests::mq_size_affecting_fee_works 90 000 000; +63.64% ❗ 55 000 000 57 250 000 (41 500 000; 70 500 000) 5 000 000 124 000 000
tests::mq_size_not_affecting_fee_works 89 000 000; +71.15% ❗ 52 000 000 55 570 000 (41 500 000; 69 000 000) 17 000 000 123 000 000
tests::query_info_and_fee_details_work 83 000 000; +50.91% ❗ 55 000 000 58 060 000 (41 500 000; 70 500 000) 10 000 000 138 000 000

name = pallet-gear-program

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 30 000 000; -22.08% ✔️ 38 500 000 42 400 000 (27 500 000; 56 500 000) 4 000 000 132 000 000
tests::pause_program_twice_fails 118 000 000; +116.51% ❗ 54 500 000 57 190 000 (40 000 000; 73 000 000) 16 000 000 135 000 000
tests::pause_program_works 37 000 000; -45.99% ✔️ 68 500 000 73 430 000 (53 000 000; 87 000 000) 25 000 000 186 000 000
tests::pause_terminated_program_fails 82 000 000; +47.75% ❗ 55 500 000 59 260 000 (40 000 000; 71 000 000) 16 000 000 184 000 000
tests::pause_uninitialized_program_works 135 000 000; +88.81% ❗ 71 500 000 74 830 000 (57 000 000; 91 000 000) 33 000 000 185 000 000
tests::resume_program_twice_fails 110 000 000; +27.91% ❗ 86 000 000 89 610 000 (73 000 000; 103 000 000) 42 000 000 177 000 000
tests::resume_program_wrong_list_fails 196 000 000; +151.28% ‼️ 78 000 000 81 270 000 (63 500 000; 95 000 000) 33 000 000 154 000 000
tests::resume_program_wrong_memory_fails 139 000 000; +86.58% ❗ 74 500 000 80 580 000 (64 000 000; 93 500 000) 35 000 000 147 000 000
tests::resume_uninitialized_program_works 89 000 000; +10.56% ✔️ 80 500 000 86 440 000 (67 000 000; 106 000 000) 39 000 000 156 000 000

name = pallet-usage

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 82 000 000; +92.94% ❗ 42 500 000 44 410 000 (27 500 000; 56 500 000) 8 000 000 115 000 000
tests::dust_discarded_with_noop 117 000 000; +105.26% ‼️ 57 000 000 60 960 000 (45 000 000; 77 000 000) 20 000 000 114 000 000
tests::external_submitter_gets_rewarded 64 000 000; +16.36% ✔️ 55 000 000 56 560 000 (44 000 000; 67 500 000) 23 000 000 95 000 000
tests::gas_properly_handled_for_trap_replies 156 000 000; +186.24% ‼️ 54 500 000 55 610 000 (41 500 000; 66 500 000) 16 000 000 120 000 000
tests::ocw_double_charge 78 000 000; +30.00% ❗ 60 000 000 58 860 000 (40 000 000; 74 000 000) 18 000 000 141 000 000
tests::ocw_interval_maintained 256 000 000; +387.62% ‼️ 52 500 000 53 810 000 (40 000 000; 65 000 000) 13 000 000 130 000 000
tests::ocw_interval_stretches_for_large_wait_list 171 000 000; +210.91% ‼️ 55 000 000 55 590 000 (41 500 000; 69 000 000) 11 000 000 141 000 000
tests::ocw_overlapping_prevented 194 000 000; +276.70% ‼️ 51 500 000 53 640 000 (38 000 000; 68 500 000) 14 000 000 102 000 000
tests::rent_charge_works 118 000 000; +156.52% ‼️ 46 000 000 49 170 000 (35 000 000; 62 500 000) 13 000 000 107 000 000
tests::trap_reply_message_is_sent 120 000 000; +144.90% ❗ 49 000 000 52 360 000 (40 000 000; 65 500 000) 10 000 000 122 000 000
Runtime tests (values are in nanoseconds)

Total execution time

name current median average lower/upper quartile min max
Total time 220 662 554 957; +36.39% ‼️ 161 789 474 027 161 831 970 741 (161 282 521 844; 162 296 037 055) 160 063 435 842 163 682 867 668

name = Async RwLock

name current median average lower/upper quartile min max
check readers 294 023 546; +537.74% ‼️ 46 104 134 54 184 574 (42 240 322; 55 377 707) 32 096 761 126 389 132
forever lock 290 843 189; +358.34% ‼️ 63 455 229 74 952 261 (58 179 143; 82 887 317) 45 368 887 149 476 966
read while writing 768 897 948; +546.67% ‼️ 118 900 522 130 188 995 (105 607 065; 160 062 586) 78 835 577 202 658 645
rwlock wide 1 515 236 962; +517.41% ‼️ 245 417 519 238 863 618 (220 739 538; 259 760 820) 178 028 385 294 385 785
write while reading 856 253 454; +528.01% ‼️ 136 343 051 150 105 287 (124 915 750; 185 270 211) 101 647 797 216 075 457

name = Async init

name current median average lower/upper quartile min max
approved pong 17 636 778 283; +4.08% ‼️ 16 945 601 167 16 962 684 972 (16 828 275 545; 17 096 741 944) 16 509 153 048 17 408 306 899

name = Async-await

name current median average lower/upper quartile min max
normal 331 331 076; +320.89% ‼️ 78 721 877 76 647 361 (70 785 266; 86 363 113) 35 162 223 104 633 380
panic 410 365 593; +680.73% ‼️ 52 561 581 60 946 454 (45 528 260; 75 457 936) 35 378 501 104 293 729

name = Async-duplicates-sync

name current median average lower/upper quartile min max
async-duplicates-sync 690 122 764; +409.61% ‼️ 135 421 755 128 899 447 (121 073 904; 142 111 296) 67 963 282 162 551 744

name = Async-multisig (well known cases)

name current median average lower/upper quartile min max
2 of 3; bob & alice 15 349 393 849; +64.31% ‼️ 9 341 567 087 9 354 747 054 (9 235 192 357; 9 490 669 534) 8 928 953 393 9 779 548 557
2 of 3; bob & eve 11 272 622 630; +20.71% ‼️ 9 338 626 405 9 370 889 268 (9 238 890 762; 9 470 186 902) 9 072 237 786 9 833 495 467
2 of 3; eve & alice 15 503 655 851; +65.91% ‼️ 9 344 783 766 9 349 395 311 (9 236 497 698; 9 461 281 317) 8 918 219 104 9 810 427 935
2 of 3; eve doesn't answer, alice replies with incorrect payload 13 255 977 934; +44.00% ‼️ 9 205 677 076 9 200 047 128 (9 075 730 362; 9 328 464 887) 8 798 915 334 9 561 113 395
2 of 3; no replies 9 118 871 448; +0.86% ✔️ 9 041 100 990 9 063 879 302 (8 901 940 878; 9 176 276 941) 8 641 949 927 9 607 977 297
Single signatory & zero threshold 9 698 480 854; +4.54% ❗ 9 277 311 300 9 281 373 063 (9 143 718 769; 9 402 004 970) 8 852 512 338 9 938 134 128
Three signatories & redundand threshold 15 825 616 287; +66.64% ‼️ 9 497 151 982 9 493 211 820 (9 388 498 367; 9 583 975 079) 9 106 006 051 9 885 517 668
Three signatories; Bob replies with incorrect signature 13 494 457 444; +45.17% ‼️ 9 295 851 668 9 292 511 680 (9 175 848 253; 9 409 968 261) 8 874 387 482 9 661 739 317
Three signatories; Eve doesn't answer, Alice replies with incorrect payload 13 254 164 435; +43.54% ‼️ 9 233 703 706 9 234 015 884 (9 103 156 044; 9 329 177 173) 8 792 183 531 9 740 225 461

name = Async-sign (well known cases)

name current median average lower/upper quartile min max
bad signature 5 624 042 543; +14.17% ‼️ 4 925 944 251 4 904 261 368 (4 735 939 354; 5 059 706 891) 4 420 572 498 5 268 712 319
correct signature but for another message 5 872 788 968; +14.95% ‼️ 5 108 872 813 5 094 820 456 (4 960 485 068; 5 234 926 178) 4 632 525 993 5 506 472 463
no reply 5 416 087 505; +10.28% ‼️ 4 911 313 723 4 874 231 886 (4 715 089 280; 5 010 556 885) 4 398 152 453 5 233 440 364
signed message 5 427 252 085; +6.77% ❗ 5 082 950 427 5 077 466 239 (4 931 308 701; 5 226 403 322) 4 639 367 929 5 456 988 553

name = Basic capacitor check

name current median average lower/upper quartile min max
Test charging/discharging 418 249 169; +359.08% ‼️ 91 105 707 87 773 695 (76 679 490; 101 594 266) 43 785 117 123 067 814

name = Decoder

name current median average lower/upper quartile min max
decoder 332 493 796; +443.95% ‼️ 61 125 374 53 573 831 (29 775 991; 72 136 770) 21 762 230 92 894 798

name = Futures-unordered

name current median average lower/upper quartile min max
futures-unordered 1 827 224 120; +473.41% ‼️ 318 661 063 306 186 854 (274 197 773; 338 315 055) 199 959 798 388 759 159
join 1 788 837 687; +635.90% ‼️ 243 081 710 252 054 594 (216 768 524; 270 208 108) 186 548 461 385 257 476
select 1 758 427 736; +643.38% ‼️ 236 544 912 250 032 429 (215 019 557; 284 760 311) 183 073 870 385 529 882

name = Incomplete-async-payloads

name current median average lower/upper quartile min max
incomplete-async-payloads 1 343 957 199; +425.52% ‼️ 255 736 208 243 644 142 (204 922 332; 274 813 607) 127 234 355 348 122 869

name = Memory test

name current median average lower/upper quartile min max
Test for memory result 311 866 791; +256.40% ‼️ 87 503 638 87 501 606 (78 991 244; 100 020 445) 37 168 646 116 831 350

name = Messages to failed program are handled properly

name current median average lower/upper quartile min max
handle messages to failed program 330 439 116; +331.23% ‼️ 76 627 335 66 318 703 (32 974 816; 91 135 045) 20 824 575 112 269 207

name = Meta ping (simple check)

name current median average lower/upper quartile min max
meta check 16 679 511 744; +4.86% ‼️ 15 906 361 934 15 952 341 950 (15 775 799 736; 16 097 639 608) 15 571 466 530 16 629 077 476

name = Multiping

name current median average lower/upper quartile min max
multiping 249 728 221; +274.40% ‼️ 66 701 552 61 038 246 (38 377 010; 76 972 948) 23 920 726 94 496 357

name = Ping-pong

name current median average lower/upper quartile min max
ping-pong 167 061 266; +406.51% ‼️ 32 982 503 41 524 275 (23 917 638; 59 011 880) 15 945 651 85 830 918
ping-pong wgas 285 622 517; +531.50% ‼️ 45 229 475 50 349 100 (40 144 745; 54 850 449) 27 315 169 104 024 729

name = Program_id test

name current median average lower/upper quartile min max
program_id 200 131 985; +258.37% ‼️ 55 844 829 48 935 162 (26 016 109; 68 759 631) 21 628 795 86 218 534

name = State-rollback

name current median average lower/upper quartile min max
state-rollback 286 536 525; +419.77% ‼️ 55 127 131 66 002 846 (44 612 901; 92 121 720) 30 943 177 123 249 373
state-saving 271 292 895; +481.91% ‼️ 46 620 861 54 822 945 (41 071 502; 58 093 282) 31 381 609 111 524 347

name = Test create_program sys-call

name current median average lower/upper quartile min max
Simple creation of program from program 303 479 303; +327.04% ‼️ 71 066 468 67 640 152 (63 091 887; 76 923 234) 26 162 799 93 497 163
Try to re-init existing program 375 224 170; +514.40% ‼️ 61 071 863 74 521 225 (54 797 190; 100 615 866) 41 775 211 124 841 113

name = Trap test

name current median average lower/upper quartile min max
Test for trap result 144 730 391; +577.99% ‼️ 21 346 894 30 966 001 (15 740 801; 48 508 783) 11 979 679 68 316 782

name = Wait test

name current median average lower/upper quartile min max
wait 497 945 513; +691.49% ‼️ 62 912 310 70 713 039 (52 856 355; 91 287 039) 41 462 009 120 662 066

name = basic

name current median average lower/upper quartile min max
test-vec (2 * 65536 * size_of(u8) = 128 KiB = 2 pages) 835 085 363; +202.09% ‼️ 276 435 531 268 842 223 (226 784 027; 300 957 735) 186 602 549 374 423 000

name = collector-1

name current median average lower/upper quartile min max
collector pass 2 messages 514 860 305; +419.26% ‼️ 99 152 113 98 466 381 (90 459 028; 105 879 770) 73 196 291 123 802 880

name = guestbook test

name current median average lower/upper quartile min max
guestbook 9 365 682 828; +5.01% ❗ 8 919 031 441 8 924 820 495 (8 811 824 563; 9 056 297 914) 8 514 269 253 9 454 887 793

name = gui test

name current median average lower/upper quartile min max
gui 12 107 774 392; +6.04% ‼️ 11 418 385 741 11 438 638 614 (11 315 735 653; 11 544 412 258) 11 156 681 203 11 869 643 613
46f3586
Pallet tests (values are in nanoseconds)

Total execution time

name current median average lower/upper quartile min max
Total time 72 037 000 000; +2797.71% ❗ 2 486 000 000 3 718 490 000 (2 458 000 000; 2 521 500 000) 2 368 000 000 125 888 000 000

name = pallet-gas

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 153 000 000; +512.00% ‼️ 25 000 000 25 280 000 (18 000 000; 30 000 000) 5 000 000 55 000 000
tests::all_keys_are_cleared 180 000 000; +414.29% ‼️ 35 000 000 36 140 000 (28 500 000; 42 000 000) 15 000 000 65 000 000
tests::gas_free_after_consumed 165 000 000; +415.62% ‼️ 32 000 000 34 150 000 (26 500 000; 39 000 000) 13 000 000 73 000 000
tests::limit_vs_origin 192 000 000; +519.35% ‼️ 31 000 000 32 320 000 (24 000 000; 38 500 000) 11 000 000 57 000 000
tests::long_chain 154 000 000; +431.03% ‼️ 29 000 000 30 240 000 (22 000 000; 36 000 000) 13 000 000 67 000 000
tests::simple_value_tree 192 000 000; +519.35% ‼️ 31 000 000 32 560 000 (24 000 000; 38 500 000) 10 000 000 75 000 000
tests::split_with_no_value 293 000 000; +876.67% ‼️ 30 000 000 31 810 000 (23 000 000; 39 000 000) 9 000 000 78 000 000
tests::splits_fail 193 000 000; +503.12% ‼️ 32 000 000 35 540 000 (25 500 000; 43 000 000) 8 000 000 84 000 000
tests::sub_nodes_tree 247 000 000; +696.77% ‼️ 31 000 000 32 700 000 (22 000 000; 39 000 000) 10 000 000 93 000 000
tests::sub_nodes_tree_with_spends 58 000 000; +87.10% ❗ 31 000 000 33 900 000 (24 500 000; 44 000 000) 10 000 000 79 000 000
tests::subtree_gas_limit_remains_intact 117 000 000; +271.43% ‼️ 31 500 000 33 230 000 (24 000 000; 41 000 000) 11 000 000 76 000 000
tests::test_consume_procedure 110 000 000; +243.75% ‼️ 32 000 000 34 840 000 (25 000 000; 44 000 000) 9 000 000 73 000 000
tests::value_tree_known_errors 124 000 000; +293.65% ‼️ 31 500 000 32 650 000 (24 000 000; 39 000 000) 10 000 000 80 000 000

name = pallet-gear

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 151 000 000; +602.33% ‼️ 21 500 000 23 060 000 (14 500 000; 29 500 000) 6 000 000 50 000 000
schedule::test::print_test_schedule 87 000 000; +248.00% ‼️ 25 000 000 26 240 000 (17 000 000; 35 000 000) 7 000 000 68 000 000
tests::block_gas_limit_works 130 000 000; +165.31% ‼️ 49 000 000 49 910 000 (36 000 000; 59 500 000) 21 000 000 125 000 000
tests::call_forbidden_function 109 000 000; +194.59% ‼️ 37 000 000 40 170 000 (26 500 000; 51 000 000) 15 000 000 90 000 000
tests::cascading_messages_with_value_do_not_overcharge 1 018 000 000; +344.54% ‼️ 229 000 000 238 930 000 (206 500 000; 264 500 000) 154 000 000 396 000 000
tests::claim_value_from_mailbox_works 93 000 000; +106.67% ❗ 45 000 000 48 320 000 (31 000 000; 58 500 000) 20 000 000 118 000 000
tests::defer_program_initialization 592 000 000; +494.97% ‼️ 99 500 000 103 410 000 (85 500 000; 119 500 000) 54 000 000 211 000 000
tests::distributor_distribute 532 000 000; +511.49% ‼️ 87 000 000 90 460 000 (69 000 000; 105 000 000) 49 000 000 181 000 000
tests::distributor_initialize 154 000 000; +120.00% ‼️ 70 000 000 72 950 000 (51 500 000; 91 000 000) 34 000 000 137 000 000
tests::events_logging_works 228 000 000; +322.22% ‼️ 54 000 000 59 220 000 (41 000 000; 72 500 000) 21 000 000 128 000 000
tests::exit_handle 69 000 000; +38.00% ❗ 50 000 000 52 900 000 (37 500 000; 67 000 000) 15 000 000 119 000 000
tests::exit_init 181 000 000; +151.39% ‼️ 72 000 000 72 270 000 (58 000 000; 84 500 000) 32 000 000 137 000 000
tests::gas_spent_precalculated 28 000 000; -49.09% ✔️ 55 000 000 59 080 000 (41 500 000; 76 000 000) 24 000 000 113 000 000
tests::gas_spent_vs_balance 188 000 000; +64.91% ❗ 114 000 000 119 550 000 (96 500 000; 147 000 000) 53 000 000 198 000 000
tests::init_message_logging_works 362 000 000; +558.18% ‼️ 55 000 000 56 400 000 (43 500 000; 67 500 000) 22 000 000 97 000 000
tests::init_wait_reply_exit_cleaned_storage 449 000 000; +311.93% ‼️ 109 000 000 112 930 000 (95 500 000; 128 000 000) 50 000 000 193 000 000
tests::lazy_pages 61 000 000; +6.09% ✔️ 57 500 000 59 910 000 (46 000 000; 70 500 000) 24 000 000 141 000 000
tests::mailbox_works 278 000 000; +321.21% ‼️ 66 000 000 66 990 000 (48 500 000; 80 500 000) 22 000 000 135 000 000
tests::memory_access_cases 116 000 000; +94.96% ❗ 59 500 000 61 290 000 (42 500 000; 81 000 000) 20 000 000 139 000 000
tests::messages_processing_works 76 000 000; +25.62% ❗ 60 500 000 61 460 000 (45 000 000; 75 000 000) 18 000 000 124 000 000
tests::messages_to_paused_program_skipped 349 000 000; +384.72% ‼️ 72 000 000 73 320 000 (53 000 000; 90 500 000) 32 000 000 123 000 000
tests::messages_to_uninitialized_program_wait 109 000 000; +46.31% ❗ 74 500 000 76 350 000 (59 500 000; 89 500 000) 25 000 000 190 000 000
tests::no_redundant_gas_value_after_exiting 100 000 000; +75.44% ❗ 57 000 000 60 870 000 (46 000 000; 73 000 000) 19 000 000 118 000 000
tests::paused_program_keeps_id 140 000 000; +85.43% ❗ 75 500 000 79 190 000 (59 000 000; 92 000 000) 38 000 000 168 000 000
tests::program_lifecycle_works 170 000 000; +185.71% ‼️ 59 500 000 61 030 000 (41 000 000; 75 500 000) 21 000 000 163 000 000
tests::program_messages_to_paused_program_skipped 176 000 000; +53.71% ❗ 114 500 000 117 680 000 (96 000 000; 138 500 000) 55 000 000 219 000 000
tests::replies_to_paused_program_skipped 190 000 000; +167.61% ‼️ 71 000 000 74 650 000 (56 000 000; 93 500 000) 27 000 000 175 000 000
tests::restrict_start_section 91 000 000; +70.09% ❗ 53 500 000 56 290 000 (40 500 000; 66 000 000) 16 000 000 141 000 000
tests::resume_program_works 210 000 000; +90.05% ❗ 110 500 000 112 050 000 (87 500 000; 133 000 000) 57 000 000 220 000 000
tests::send_message_expected_failure 48 000 000; -14.29% ✔️ 56 000 000 58 460 000 (43 500 000; 72 000 000) 14 000 000 127 000 000
tests::send_message_works 105 000 000; +76.47% ❗ 59 500 000 60 480 000 (44 500 000; 74 500 000) 16 000 000 125 000 000
tests::send_reply_failure_to_claim_from_mailbox 107 000 000; +94.55% ❗ 55 000 000 58 880 000 (40 500 000; 73 000 000) 20 000 000 127 000 000
tests::send_reply_value_claiming_works 220 000 000; +292.86% ‼️ 56 000 000 63 420 000 (45 500 000; 80 000 000) 18 000 000 138 000 000
tests::send_reply_works 201 000 000; +240.68% ‼️ 59 000 000 60 810 000 (42 500 000; 75 000 000) 13 000 000 123 000 000
tests::spent_gas_to_reward_block_author_works 149 000 000; +178.50% ‼️ 53 500 000 58 660 000 (41 000 000; 75 000 000) 22 000 000 119 000 000
tests::submit_program_expected_failure 124 000 000; +133.96% ❗ 53 000 000 56 550 000 (37 000 000; 74 500 000) 18 000 000 126 000 000
tests::submit_program_fails_on_duplicate_id 105 000 000; +92.66% ❗ 54 500 000 55 520 000 (41 000 000; 69 000 000) 18 000 000 119 000 000
tests::test_async_messages 1 611 000 000; +172.13% ‼️ 592 000 000 596 360 000 (557 500 000; 636 500 000) 459 000 000 718 000 000
tests::test_code_is_not_reset_within_program_submission 60 000 000; +8.11% ✔️ 55 500 000 57 570 000 (42 500 000; 72 500 000) 15 000 000 135 000 000
tests::test_code_is_not_submitted_twice_after_program_submission 96 000 000; +81.13% ❗ 53 000 000 55 450 000 (39 000 000; 72 000 000) 16 000 000 115 000 000
tests::test_code_submission_pass 51 000 000; +0.00% ✔️ 51 000 000 53 480 000 (36 500 000; 64 000 000) 16 000 000 138 000 000
tests::test_create_program_duplicate 396 000 000; +205.79% ‼️ 129 500 000 130 470 000 (104 000 000; 151 500 000) 58 000 000 252 000 000
tests::test_create_program_duplicate_in_one_execution 80 000 000; -16.67% ✔️ 96 000 000 98 910 000 (73 500 000; 126 000 000) 43 000 000 176 000 000
tests::test_create_program_miscellaneous 330 000 000; +136.56% ‼️ 139 500 000 144 200 000 (124 000 000; 166 000 000) 63 000 000 237 000 000
tests::test_create_program_no_code_hash 554 000 000; +128.93% ‼️ 242 000 000 244 150 000 (202 500 000; 281 500 000) 133 000 000 422 000 000
tests::test_create_program_simple 357 000 000; +126.67% ‼️ 157 500 000 157 500 000 (127 500 000; 181 000 000) 86 000 000 263 000 000
tests::test_create_program_with_exceeding_value 147 000 000; +113.04% ❗ 69 000 000 76 020 000 (54 000 000; 100 500 000) 34 000 000 162 000 000
tests::test_create_program_with_value_lt_ed 303 000 000; +231.15% ‼️ 91 500 000 94 840 000 (68 000 000; 118 000 000) 35 000 000 183 000 000
tests::test_create_program_without_gas_works 223 000 000; +163.91% ‼️ 84 500 000 87 850 000 (63 500 000; 109 500 000) 28 000 000 196 000 000
tests::test_message_processing_for_non_existing_destination 50 000 000; -17.36% ✔️ 60 500 000 59 690 000 (39 500 000; 77 000 000) 21 000 000 122 000 000
tests::test_reply_to_terminated_program 74 000 000; -3.90% ✔️ 77 000 000 79 200 000 (59 500 000; 95 000 000) 32 000 000 160 000 000
tests::test_same_code_submission_fails 108 000 000; +68.75% ❗ 64 000 000 65 010 000 (46 000 000; 78 500 000) 18 000 000 148 000 000
tests::test_two_contracts_composition_works 581 000 000; +154.82% ‼️ 228 000 000 228 200 000 (192 000 000; 261 000 000) 137 000 000 369 000 000
tests::uninitialized_program_should_accept_replies 164 000 000; +49.09% ❗ 110 000 000 111 380 000 (86 000 000; 134 000 000) 55 000 000 213 000 000
tests::unstoppable_block_execution_works 75 000 000; +11.11% ✔️ 67 500 000 71 480 000 (53 000 000; 84 000 000) 31 000 000 194 000 000
tests::unused_gas_released_back_works 159 000 000; +169.49% ‼️ 59 000 000 60 820 000 (41 000 000; 78 500 000) 13 000 000 121 000 000
tests::wake_messages_after_program_inited 646 000 000; +198.38% ‼️ 216 500 000 217 520 000 (189 500 000; 242 000 000) 122 000 000 327 000 000

name = pallet-gear-debug

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 61 000 000; +60.53% ❗ 38 000 000 38 600 000 (24 000 000; 46 500 000) 6 000 000 110 000 000
tests::check_changed_pages_in_storage 97 000 000; +67.24% ❗ 58 000 000 61 700 000 (45 000 000; 74 000 000) 21 000 000 127 000 000
tests::debug_mode_works 194 000 000; +185.29% ‼️ 68 000 000 68 450 000 (51 000 000; 80 500 000) 29 000 000 158 000 000

name = pallet-gear-messenger

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 103 000 000; +198.55% ‼️ 34 500 000 37 080 000 (22 000 000; 49 500 000) 5 000 000 89 000 000
tests::dequeued_impl_works_manually 68 000 000; +30.77% ❗ 52 000 000 52 500 000 (39 000 000; 66 500 000) 17 000 000 110 000 000
tests::queue_processing_impl_works_manually 93 000 000; +77.14% ❗ 52 500 000 54 120 000 (39 000 000; 68 000 000) 13 000 000 104 000 000
tests::queue_works 155 000 000; +181.82% ‼️ 55 000 000 57 400 000 (40 500 000; 70 000 000) 13 000 000 124 000 000
tests::sent_impl_works 157 000 000; +201.92% ‼️ 52 000 000 54 350 000 (39 500 000; 65 000 000) 18 000 000 121 000 000

name = pallet-gear-payment

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 194 000 000; +417.33% ‼️ 37 500 000 38 410 000 (26 500 000; 50 500 000) 6 000 000 96 000 000
tests::custom_fee_multiplier_updated_per_block 97 000 000; +92.08% ❗ 50 500 000 53 290 000 (40 500 000; 61 500 000) 17 000 000 122 000 000
tests::fee_rounding_error_bounded_by_multiplier 85 000 000; +55.96% ❗ 54 500 000 54 980 000 (41 500 000; 67 000 000) 21 000 000 105 000 000
tests::mq_size_affecting_fee_works 80 000 000; +58.42% ❗ 50 500 000 51 570 000 (36 500 000; 64 500 000) 11 000 000 116 000 000
tests::mq_size_not_affecting_fee_works 109 000 000; +103.74% ❗ 53 500 000 53 980 000 (40 000 000; 66 000 000) 13 000 000 111 000 000
tests::query_info_and_fee_details_work 68 000 000; +28.30% ❗ 53 000 000 53 090 000 (40 000 000; 66 000 000) 13 000 000 103 000 000

name = pallet-gear-program

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 52 000 000; +44.44% ✔️ 36 000 000 39 860 000 (23 500 000; 55 000 000) 5 000 000 108 000 000
tests::pause_program_twice_fails 89 000 000; +74.51% ❗ 51 000 000 53 480 000 (40 500 000; 66 000 000) 9 000 000 132 000 000
tests::pause_program_works 115 000 000; +66.67% ❗ 69 000 000 71 780 000 (53 500 000; 85 500 000) 18 000 000 156 000 000
tests::pause_terminated_program_fails 84 000 000; +58.49% ❗ 53 000 000 53 510 000 (38 000 000; 66 000 000) 14 000 000 113 000 000
tests::pause_uninitialized_program_works 109 000 000; +65.15% ❗ 66 000 000 68 480 000 (51 000 000; 85 000 000) 20 000 000 135 000 000
tests::resume_program_twice_fails 148 000 000; +74.12% ❗ 85 000 000 87 410 000 (66 500 000; 101 000 000) 35 000 000 162 000 000
tests::resume_program_wrong_list_fails 142 000 000; +67.06% ❗ 85 000 000 84 160 000 (67 000 000; 100 000 000) 34 000 000 144 000 000
tests::resume_program_wrong_memory_fails 73 000 000; +0.00% ✔️ 73 000 000 79 370 000 (58 000 000; 98 500 000) 28 000 000 153 000 000
tests::resume_uninitialized_program_works 81 000 000; +0.00% ✔️ 81 000 000 83 650 000 (66 000 000; 99 500 000) 24 000 000 144 000 000

name = pallet-usage

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 56 000 000; +49.33% ❗ 37 500 000 40 520 000 (28 000 000; 53 000 000) 6 000 000 105 000 000
tests::dust_discarded_with_noop 63 000 000; +34.04% ❗ 47 000 000 50 020 000 (36 500 000; 61 000 000) 18 000 000 139 000 000
tests::external_submitter_gets_rewarded 59 000 000; +8.26% ✔️ 54 500 000 54 950 000 (40 000 000; 67 500 000) 16 000 000 110 000 000
tests::gas_properly_handled_for_trap_replies 66 000 000; +22.22% ✔️ 54 000 000 56 880 000 (40 500 000; 70 000 000) 12 000 000 136 000 000
tests::ocw_double_charge 64 000 000; +17.43% ✔️ 54 500 000 55 690 000 (37 500 000; 70 000 000) 14 000 000 128 000 000
tests::ocw_interval_maintained 103 000 000; +98.08% ❗ 52 000 000 54 090 000 (41 000 000; 68 000 000) 17 000 000 107 000 000
tests::ocw_interval_stretches_for_large_wait_list 112 000 000; +96.49% ‼️ 57 000 000 55 860 000 (37 500 000; 72 000 000) 20 000 000 109 000 000
tests::ocw_overlapping_prevented 144 000 000; +188.00% ‼️ 50 000 000 51 330 000 (35 000 000; 62 500 000) 15 000 000 123 000 000
tests::rent_charge_works 109 000 000; +118.00% ‼️ 50 000 000 51 390 000 (36 500 000; 65 500 000) 12 000 000 109 000 000
tests::trap_reply_message_is_sent 195 000 000; +278.64% ‼️ 51 500 000 51 540 000 (38 500 000; 62 500 000) 12 000 000 141 000 000
Runtime tests (values are in nanoseconds)

Total execution time

name current median average lower/upper quartile min max
Total time 241 081 186 636; +48.82% ‼️ 161 997 331 733 162 055 968 348 (161 531 991 970; 162 412 370 273) 160 369 611 872 164 353 432 859

name = Async RwLock

name current median average lower/upper quartile min max
check readers 350 130 178; +659.82% ‼️ 46 080 971 52 055 205 (41 875 991; 53 611 256) 33 540 050 121 471 838
forever lock 550 760 589; +752.18% ‼️ 64 629 464 72 208 742 (57 687 844; 75 304 411) 45 115 198 149 169 903
read while writing 1 171 604 273; +933.76% ‼️ 113 333 743 125 496 603 (102 978 483; 143 888 786) 81 302 364 193 692 200
rwlock wide 1 725 528 698; +600.37% ‼️ 246 375 484 239 936 356 (225 467 806; 256 675 967) 169 873 722 304 150 756
write while reading 1 320 203 546; +870.05% ‼️ 136 095 811 146 606 792 (123 051 766; 178 966 203) 102 915 320 224 051 725

name = Async init

name current median average lower/upper quartile min max
approved pong 18 116 218 609; +6.72% ‼️ 16 975 443 772 16 983 188 822 (16 868 656 629; 17 073 712 618) 16 587 703 197 17 470 272 554

name = Async-await

name current median average lower/upper quartile min max
normal 323 978 782; +315.45% ‼️ 77 982 890 75 714 544 (68 922 211; 84 107 631) 31 659 813 109 156 473
panic 374 348 557; +637.17% ‼️ 50 781 838 58 600 264 (44 927 753; 75 273 249) 32 030 335 111 439 744

name = Async-duplicates-sync

name current median average lower/upper quartile min max
async-duplicates-sync 725 177 991; +436.17% ‼️ 135 252 462 128 670 815 (121 257 162; 141 505 220) 60 683 384 167 465 284

name = Async-multisig (well known cases)

name current median average lower/upper quartile min max
2 of 3; bob & alice 17 065 905 106; +82.36% ‼️ 9 358 433 502 9 379 124 562 (9 261 554 645; 9 490 331 653) 8 916 874 174 9 806 786 937
2 of 3; bob & eve 12 306 655 702; +31.11% ‼️ 9 386 517 088 9 389 147 746 (9 260 988 333; 9 501 205 152) 9 076 307 366 9 897 203 180
2 of 3; eve & alice 17 067 298 258; +82.13% ‼️ 9 371 012 878 9 384 977 595 (9 284 465 861; 9 474 404 217) 9 004 330 779 9 835 963 927
2 of 3; eve doesn't answer, alice replies with incorrect payload 14 680 104 285; +58.27% ‼️ 9 275 417 333 9 291 079 665 (9 172 799 155; 9 415 598 634) 8 760 639 917 9 838 797 239
2 of 3; no replies 9 509 819 725; +5.05% ❗ 9 052 584 040 9 054 493 608 (8 915 954 045; 9 183 925 894) 8 596 004 071 9 607 074 710
Single signatory & zero threshold 14 884 250 766; +60.97% ‼️ 9 246 600 233 9 269 031 241 (9 159 703 643; 9 349 712 219) 8 772 069 972 9 799 886 717
Three signatories & redundand threshold 17 203 466 784; +80.90% ‼️ 9 510 051 774 9 527 202 230 (9 390 960 524; 9 652 252 208) 9 171 614 129 9 948 953 748
Three signatories; Bob replies with incorrect signature 14 986 219 298; +61.07% ‼️ 9 304 303 959 9 298 923 592 (9 186 046 187; 9 407 019 098) 8 893 859 996 9 722 593 929
Three signatories; Eve doesn't answer, Alice replies with incorrect payload 14 025 966 072; +51.92% ‼️ 9 232 176 684 9 252 749 609 (9 119 964 509; 9 356 967 288) 8 849 973 752 9 714 597 353

name = Async-sign (well known cases)

name current median average lower/upper quartile min max
bad signature 5 401 083 790; +9.41% ‼️ 4 936 627 837 4 911 774 127 (4 766 678 847; 5 065 871 309) 4 393 207 815 5 331 382 453
correct signature but for another message 6 900 563 286; +35.66% ‼️ 5 086 789 207 5 062 180 019 (4 939 451 893; 5 200 506 144) 4 630 601 547 5 372 547 355
no reply 5 177 036 451; +5.89% ❗ 4 889 004 766 4 861 134 001 (4 706 966 604; 5 004 584 781) 4 400 986 081 5 275 683 920
signed message 6 952 839 394; +36.50% ‼️ 5 093 723 373 5 086 585 244 (4 969 610 873; 5 227 005 872) 4 565 030 776 5 448 402 016

name = Basic capacitor check

name current median average lower/upper quartile min max
Test charging/discharging 476 313 247; +443.49% ‼️ 87 639 386 86 314 225 (77 504 792; 97 717 854) 43 713 038 129 611 937

name = Decoder

name current median average lower/upper quartile min max
decoder 231 332 337; +273.93% ‼️ 61 864 927 55 489 755 (33 131 429; 73 486 282) 21 703 962 91 888 839

name = Futures-unordered

name current median average lower/upper quartile min max
futures-unordered 2 104 444 902; +573.02% ‼️ 312 687 040 303 990 121 (271 194 171; 334 273 180) 210 053 421 389 761 144
join 1 709 014 098; +608.06% ‼️ 241 365 750 250 147 533 (222 223 841; 263 063 628) 179 134 994 383 883 614
select 1 634 194 436; +583.72% ‼️ 239 015 988 252 073 375 (218 557 609; 276 037 406) 173 930 822 367 532 938

name = Incomplete-async-payloads

name current median average lower/upper quartile min max
incomplete-async-payloads 1 779 223 307; +617.22% ‼️ 248 072 346 239 610 456 (209 414 371; 270 141 142) 143 213 699 302 962 437

name = Memory test

name current median average lower/upper quartile min max
Test for memory result 302 880 366; +246.12% ‼️ 87 507 341 87 578 991 (77 281 883; 97 602 967) 42 781 795 118 579 633

name = Messages to failed program are handled properly

name current median average lower/upper quartile min max
handle messages to failed program 251 710 142; +254.24% ‼️ 71 056 842 60 303 036 (30 751 767; 84 077 447) 20 294 979 112 857 453

name = Meta ping (simple check)

name current median average lower/upper quartile min max
meta check 16 632 501 594; +4.13% ‼️ 15 973 125 804 15 984 497 850 (15 855 139 127; 16 092 367 023) 15 642 195 753 16 445 995 323

name = Multiping

name current median average lower/upper quartile min max
multiping 303 972 283; +354.08% ‼️ 66 941 725 61 698 682 (40 585 957; 76 626 343) 24 216 479 97 166 501

name = Ping-pong

name current median average lower/upper quartile min max
ping-pong 210 793 363; +593.78% ‼️ 30 383 184 40 265 329 (24 045 382; 59 884 224) 16 038 539 77 079 669
ping-pong wgas 387 529 951; +831.08% ‼️ 41 621 693 49 339 994 (37 609 914; 51 344 997) 26 260 638 97 241 489

name = Program_id test

name current median average lower/upper quartile min max
program_id 237 932 249; +318.53% ‼️ 56 849 378 48 559 883 (26 348 943; 68 144 477) 19 621 324 87 820 743

name = State-rollback

name current median average lower/upper quartile min max
state-rollback 439 074 800; +679.73% ‼️ 56 311 263 64 622 296 (44 532 909; 85 143 358) 31 845 049 109 082 690
state-saving 371 122 585; +715.52% ‼️ 45 507 248 54 543 128 (40 259 952; 64 112 315) 30 273 922 109 075 795

name = Test create_program sys-call

name current median average lower/upper quartile min max
Simple creation of program from program 304 017 328; +324.50% ‼️ 71 617 185 67 801 260 (62 703 140; 76 695 168) 29 171 687 93 231 071
Try to re-init existing program 433 333 746; +439.88% ‼️ 80 265 469 77 180 045 (54 754 177; 97 632 243) 39 030 464 120 913 607

name = Trap test

name current median average lower/upper quartile min max
Test for trap result 135 560 720; +521.26% ‼️ 21 820 301 31 655 422 (16 870 959; 48 931 284) 12 524 227 65 374 706

name = Wait test

name current median average lower/upper quartile min max
wait 478 219 726; +705.87% ‼️ 59 342 210 69 403 658 (51 161 295; 90 856 237) 39 812 835 129 852 911

name = basic

name current median average lower/upper quartile min max
test-vec (2 * 65536 * size_of(u8) = 128 KiB = 2 pages) 823 009 845; +196.05% ‼️ 277 998 275 268 305 831 (223 118 847; 303 963 098) 173 293 262 397 001 907

name = collector-1

name current median average lower/upper quartile min max
collector pass 2 messages 491 915 622; +412.76% ‼️ 95 934 997 95 197 359 (87 097 764; 100 800 897) 58 525 868 121 077 823

name = guestbook test

name current median average lower/upper quartile min max
guestbook 9 346 865 261; +4.71% ❗ 8 926 452 568 8 928 222 422 (8 778 285 322; 9 034 768 712) 8 541 063 252 9 423 832 673

name = gui test

name current median average lower/upper quartile min max
gui 12 016 926 634; +5.08% ‼️ 11 435 618 761 11 449 835 859 (11 342 542 817; 11 536 455 723) 10 958 111 591 11 916 278 933

@codecov
Copy link

codecov bot commented Jun 8, 2022

Codecov Report

Merging #944 (3690c79) into master (894d817) will decrease coverage by 0.06%.
The diff coverage is 97.08%.

@@            Coverage Diff             @@
##           master     #944      +/-   ##
==========================================
- Coverage   74.93%   74.86%   -0.07%     
==========================================
  Files          94       96       +2     
  Lines        8793     9008     +215     
==========================================
+ Hits         6589     6744     +155     
- Misses       2204     2264      +60     
Impacted Files Coverage Δ
gtest/src/lib.rs 100.00% <ø> (ø)
gtest/src/wasm_executor.rs 95.19% <95.19%> (ø)
core-backend/wasmtime/src/funcs_tree.rs 98.46% <98.46%> (ø)
core-backend/wasmtime/src/env.rs 51.70% <100.00%> (-22.35%) ⬇️
gtest/src/manager.rs 70.60% <100.00%> (-2.04%) ⬇️
gtest/src/program.rs 78.37% <100.00%> (+1.68%) ⬆️
core/src/program.rs 94.28% <0.00%> (+5.71%) ⬆️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 894d817...3690c79. Read the comment docs.

Copy link
Contributor

@shamilsan shamilsan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is extremely copy-paste, I am not sure it is acceptable to support three "backends" instead of two 😞

gtest/src/manager.rs Outdated Show resolved Hide resolved
gtest/src/manager.rs Outdated Show resolved Hide resolved
gtest/src/manager.rs Outdated Show resolved Hide resolved
gtest/src/manager.rs Outdated Show resolved Hide resolved
gtest/src/manager.rs Outdated Show resolved Hide resolved
gtest/src/wasm_executor.rs Outdated Show resolved Hide resolved
minor renaming
code simplification
added funcs tree builder to minimize copy code
# Conflicts:
#	core-backend/wasmtime/src/env.rs
#	runtime/src/lib.rs
core-backend/wasmtime/src/env.rs Outdated Show resolved Hide resolved
core-backend/wasmtime/src/env.rs Outdated Show resolved Hide resolved
core-backend/wasmtime/src/funcs_tree_builder.rs Outdated Show resolved Hide resolved
gtest/src/empty_ext.rs Outdated Show resolved Hide resolved
warning fixes
merge fixes
funcs tree builder simplification
warning fixes
merge fixes
funcs tree builder simplification
Copy link
Member

@breathx breathx left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, that's probably strange, but I want you to a bit cut the functionality you added, apply restrictions for return type for meta state functions and reply copy-paste with using real ext and newly created forbidden sys calls functionality.

core-backend/wasmtime/src/env.rs Outdated Show resolved Hide resolved
core-backend/wasmtime/src/funcs_tree_builder.rs Outdated Show resolved Hide resolved
gtest/Cargo.toml Outdated Show resolved Hide resolved
gtest/src/empty_ext.rs Outdated Show resolved Hide resolved
gtest/src/empty_ext.rs Outdated Show resolved Hide resolved
gtest/src/lib.rs Outdated Show resolved Hide resolved
core/src/message/context.rs Outdated Show resolved Hide resolved
gtest/src/manager.rs Outdated Show resolved Hide resolved
gtest/src/manager.rs Outdated Show resolved Hide resolved
gtest/src/manager.rs Outdated Show resolved Hide resolved
+ tests
deleted empty ext
minor review fixes simplification
add documentation comments
@dustyNdumb dustyNdumb added A0-pleasereview PR is ready to be reviewed by the team Q1-easy labels Jun 17, 2022
@shamilsan shamilsan added B1-releasenotes The feature deserves to be added to the Release Notes and removed Q1-easy labels Jun 17, 2022
Copy link
Member

@breathx breathx left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cool
The last things to do is to resolve given comments: especially provide public api!

gtest/src/wasm_executor.rs Outdated Show resolved Hide resolved
gtest/src/wasm_executor.rs Outdated Show resolved Hide resolved
gtest/src/wasm_executor.rs Outdated Show resolved Hide resolved
core-processor/src/ext.rs Outdated Show resolved Hide resolved
gtest/src/manager.rs Outdated Show resolved Hide resolved
@breathx breathx added C1-feature Feature request D4-test Autotests, and examples and removed D1-core Gear Core labels Jun 17, 2022
deleted dead_code allowance
deleted default ext implementation
added public meta_state invoke method from program
deleted source program id parameter
+ void function panics test
gtest/src/wasm_executor.rs Outdated Show resolved Hide resolved
gtest/src/wasm_executor.rs Outdated Show resolved Hide resolved
gtest/src/wasm_executor.rs Outdated Show resolved Hide resolved
gtest/src/wasm_executor.rs Outdated Show resolved Hide resolved
gtest/src/program.rs Outdated Show resolved Hide resolved
simplified meta_state signature by changing message to payload
added meta_state copy with array argument
tests rework
spec_version ++
encapsulation fix
Copy link
Member

@breathx breathx left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Finally, last comments 👍

gtest/src/manager.rs Outdated Show resolved Hide resolved
gtest/src/manager.rs Outdated Show resolved Hide resolved
gtest/src/program.rs Outdated Show resolved Hide resolved
gtest/src/wasm_executor.rs Outdated Show resolved Hide resolved
add encode decode functional
made payload optional
+ tests
format fix
@dustyNdumb dustyNdumb merged commit fdc82f9 into master Jun 20, 2022
@dustyNdumb dustyNdumb deleted the ds-add-meta-state-testing-tools branch June 20, 2022 08:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A0-pleasereview PR is ready to be reviewed by the team B1-releasenotes The feature deserves to be added to the Release Notes C1-feature Feature request D4-test Autotests, and examples D5-tooling Helper tools and utilities
Projects
No open projects
Status: Done
Development

Successfully merging this pull request may close these issues.

Add tools to gtest for testing meta state functions
3 participants