Skip to content

Conversation

@domenukk
Copy link
Member

Description

This fixes a todo and disables flakey testcases that somehow got into the corpus.

Checklist

  • I have run ./scripts/precommit.sh and addressed all comments

@domenukk domenukk requested a review from tokatoka November 28, 2025 01:28
// todo
// remove this guy from corpus queue
let retry = RetryCountRestartHelper::no_retry(state, &self.name)?;
if !retry {
Copy link
Member Author

Choose a reason for hiding this comment

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

This is the main change

Copy link
Member

Choose a reason for hiding this comment

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

what happens for the stages after CalibrationStage?

Copy link
Member

@tokatoka tokatoka Nov 28, 2025

Choose a reason for hiding this comment

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

or did you try running this?
I suspect that stages after this will panic because if you remove the corpus during the 1st stage, then the subsequent stage will still look at the same testcase, which no more exists

Copy link
Member

Choose a reason for hiding this comment

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

imagine you have let stages = tuple_list!(calibration, power);
you can disable this during the first calibration.
but the second power stage is still executed.
there're 2 problems.
1st is that when you execute power stage, testcase is gone.
2nd is that this doesn't actually solve the problem unless the execution of power stage is somehow cancelled. (if it is normally executed, it still looks for the metadata that is not there)

Copy link
Member Author

Choose a reason for hiding this comment

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

I can throw an error from here and handle it somewhere higher up?

Copy link
Member Author

Choose a reason for hiding this comment

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

Done

log::info!("Disabling crashing/timeouting testcase {id} during calibration");
let insert_result = state
.current_testcase_mut()?
.try_add_metadata(DisabledInCalibrationStageMetadata);
Copy link
Member

Choose a reason for hiding this comment

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

what is this metadata used for?

Copy link
Member Author

Choose a reason for hiding this comment

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

Documentation why the testcase is disabled

Copy link
Member

Choose a reason for hiding this comment

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

but this metadata is never used

Copy link
Member Author

Choose a reason for hiding this comment

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

It's used below?
Also it'll be on disk so the end user can see what's up

Copy link
Member Author

Choose a reason for hiding this comment

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

Handling the Err(err) case implicitly uses the metadata

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.

3 participants