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

Improve debugging by using #[track_caller] in system assert_last_event and assert_has_event #7142

Merged
merged 6 commits into from
Jan 25, 2025

Conversation

gui1117
Copy link
Contributor

@gui1117 gui1117 commented Jan 14, 2025

Without track caller the error message of the assert points to the assert_last_event function, which is not useful.

thread 'tests::set_metadata_works' panicked at /home/gui/Developpement/polkadot-sdk/substrate/frame/system/src/lib.rs:2034:9:
assertion `left == right` failed: expected event RuntimeEvent::Referenda(Event::MetadataSet { index: 0, hash: 0xbb30a42c1e62f0afda5f0a4e8a562f7a13a24cea00ee81917b86b89e801314aa }) is not equal to the last event RuntimeEvent::Referenda(Event::MetadataSet { index: 1, hash: 0xbb30a42c1e62f0afda5f0a4e8a562f7a13a24cea00ee81917b86b89e801314aa })
  left: RuntimeEvent::Referenda(Event::MetadataSet { index: 1, hash: 0xbb30a42c1e62f0afda5f0a4e8a562f7a13a24cea00ee81917b86b89e801314aa })
 right: RuntimeEvent::Referenda(Event::MetadataSet { index: 0, hash: 0xbb30a42c1e62f0afda5f0a4e8a562f7a13a24cea00ee81917b86b89e801314aa })

With the track caller the error message points to the caller, showing the source of the error:

thread 'tests::set_metadata_works' panicked at substrate/frame/referenda/src/tests.rs:639:9:
assertion `left == right` failed: expected event RuntimeEvent::Referenda(Event::MetadataSet { index: 0, hash: 0xbb30a42c1e62f0afda5f0a4e8a562f7a13a24cea00ee81917b86b89e801314aa }) is not equal to the last event RuntimeEvent::Referenda(Event::MetadataSet { index: 1, hash: 0xbb30a42c1e62f0afda5f0a4e8a562f7a13a24cea00ee81917b86b89e801314aa })
  left: RuntimeEvent::Referenda(Event::MetadataSet { index: 1, hash: 0xbb30a42c1e62f0afda5f0a4e8a562f7a13a24cea00ee81917b86b89e801314aa })
 right: RuntimeEvent::Referenda(Event::MetadataSet { index: 0, hash: 0xbb30a42c1e62f0afda5f0a4e8a562f7a13a24cea00ee81917b86b89e801314aa })

I also improved the error message to include a warning when checking events on block number zero.

@gui1117 gui1117 requested a review from a team as a code owner January 14, 2025 03:11
@gui1117 gui1117 added R0-silent Changes should not be mentioned in any release notes T1-FRAME This PR/Issue is related to core FRAME, the framework. labels Jan 14, 2025
@paritytech-workflow-stopper
Copy link

All GitHub workflows were cancelled due to failure one of the required jobs.
Failed workflow url: https://github.com/paritytech/polkadot-sdk/actions/runs/12760924237
Failed job name: fmt

Copy link
Member

@bkchr bkchr left a comment

Choose a reason for hiding this comment

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

Fuck you can read my mind!

I was having exactly the same problem yesterday and wanted to open the same pr today :P

@bkchr bkchr added this pull request to the merge queue Jan 25, 2025
Merged via the queue into master with commit 17ae062 Jan 25, 2025
202 of 207 checks passed
@bkchr bkchr deleted the gui-track-caller branch January 25, 2025 22:17
ordian added a commit that referenced this pull request Jan 30, 2025
* master: (58 commits)
  [pallet-revive] pack exceeding syscall arguments into registers (#7319)
  cumulus: bump PARENT_SEARCH_DEPTH and add test for 12-core elastic scaling (#6983)
  xcm: fix for DenyThenTry Barrier (#7169)
  Migrating polkadot-runtime-common slots benchmarking to v2 (#6614)
  Add development chain-spec file for minimal/parachain templates for Omni Node compatibility (#6529)
  `Arc` definition in `TransactionPool` (#7042)
  [sync] Let new subscribers know about already connected peers (backward-compatible) (#7344)
  Removed unused dependencies (partial progress) (#7329)
  Improve debugging by using `#[track_caller]` in system `assert_last_event` and `assert_has_event` (#7142)
  `set_validation_data` register weight manually, do not use refund when the pre dispatch is zero. (#7327)
  Fix the link to the chain snapshots (#7330)
  revive: Fix compilation of `uapi` crate when `unstable-hostfn` is not set (#7318)
  [pallet-revive] eth-rpc minor fixes (#7325)
  sync-templates: enable syncing from stable release patches (#7227)
  Bridges: emulated tests small nits/improvements (#7322)
  fix(cmd bench-omni): build omni-bencher with production profile (#7299)
  Nits for collectives-westend XCM benchmarks setup (#7215)
  bench all weekly - and fix for pallet_multisig lib (#6789)
  Deprecate ParaBackingState API (#6867)
  Fix setting the image properly (#7315)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
R0-silent Changes should not be mentioned in any release notes T1-FRAME This PR/Issue is related to core FRAME, the framework.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants