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

Pass args to coverage and profiler #2592

Open
wants to merge 6 commits into
base: master
Choose a base branch
from
Open

Pass args to coverage and profiler #2592

wants to merge 6 commits into from

Conversation

ksew1
Copy link
Collaborator

@ksew1 ksew1 commented Oct 18, 2024

Closes software-mansion/cairo-coverage#80

Introduced changes

  • Users are now able to pass arguments to cairo-coverage and cairo-profiler
  • You can't use --coverage and --build-profile together

Checklist

  • Linked relevant issue
  • Updated relevant documentation
  • Added relevant tests
  • Performed self-review of the code
  • Added changes to CHANGELOG.md

CHANGELOG.md Show resolved Hide resolved
@ksew1 ksew1 marked this pull request as ready for review October 18, 2024 17:40
Comment on lines +182 to +190
ForgeSubcommand::Test { mut args } => {
// clap can capture the first flag in test filter,
// let's move it to coverage_or_profiler_args
if let Some(test_filter) = &args.test_filter {
if test_filter.starts_with('-') {
args.coverage_or_profiler_args.insert(0, test_filter.into());
args.test_filter = None;
}
}
Copy link
Collaborator

Choose a reason for hiding this comment

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

I suppose that such heuristic can generate problems in the future, and introducing such condition disturbs the readability of the code. Maybe we should just add coverage subcommand to catch arguments in simpler and cleaner way? What do you think?

Copy link
Member

Choose a reason for hiding this comment

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

I think we could at least check if --coverage or --build-profile were actually passed. Because I think this heuristic should be only enabled in this case, otherwise, we shouldn't be doing anything with the filter.

Copy link
Member

Choose a reason for hiding this comment

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

We could consider some warning when it runs, but not sure what it would be,

Copy link
Collaborator

Choose a reason for hiding this comment

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

I think we could at least check if --coverage or --build-profile were actually passed. Because I think this heuristic should be only enabled in this case, otherwise, we shouldn't be doing anything with the filter.

yes, it's the correct one, but it is going to be the same thing as if there was just a subcommand.

Copy link
Collaborator Author

@ksew1 ksew1 Oct 22, 2024

Choose a reason for hiding this comment

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

I suppose that such heuristic can generate problems in the future, and introducing such condition disturbs the readability of the code. Maybe we should just add coverage subcommand to catch arguments in simpler and cleaner way? What do you think?

I guess we were discussing this earlier i don't know why we bring it here now and block it with the request changes 😅

We could consider some warning when it runs, but not sure what it would be

There shouldn't be any warning. snforge test --coverage --my-coverage-flag is perfectly fine and user doesn't do anything wrong and yet it caputers --my-coverage-flag in test filter

I think we could at least check if --coverage or --build-profile were actually passed. Because I think this heuristic should be only enabled in this case, otherwise, we shouldn't be doing anything with the filter.

What about some meaningful validation of argument passed to filter? I don't think we should allow passing test filter argument starting -.

CHANGELOG.md Show resolved Hide resolved
crates/forge-runner/src/coverage_api.rs Show resolved Hide resolved
Comment on lines +182 to +190
ForgeSubcommand::Test { mut args } => {
// clap can capture the first flag in test filter,
// let's move it to coverage_or_profiler_args
if let Some(test_filter) = &args.test_filter {
if test_filter.starts_with('-') {
args.coverage_or_profiler_args.insert(0, test_filter.into());
args.test_filter = None;
}
}
Copy link
Member

Choose a reason for hiding this comment

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

I think we could at least check if --coverage or --build-profile were actually passed. Because I think this heuristic should be only enabled in this case, otherwise, we shouldn't be doing anything with the filter.

Comment on lines +182 to +190
ForgeSubcommand::Test { mut args } => {
// clap can capture the first flag in test filter,
// let's move it to coverage_or_profiler_args
if let Some(test_filter) = &args.test_filter {
if test_filter.starts_with('-') {
args.coverage_or_profiler_args.insert(0, test_filter.into());
args.test_filter = None;
}
}
Copy link
Member

Choose a reason for hiding this comment

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

We could consider some warning when it runs, but not sure what it would be,

crates/forge/tests/e2e/coverage.rs Show resolved Hide resolved
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Allow passing args to cairo-coverage via snforge
3 participants