Skip to content

Conversation

cuviper
Copy link
Member

@cuviper cuviper commented Sep 13, 2024

This is a targeted test to make sure we cover all the heuristic edge
cases in erase_indices, used by drain and other methods.

I found a failure from cargo mutants where we still passed tests after
erase_indices_sweep was replaced with an empty body. I was concerned
because that function contains unsafe code, so we really need it
tested. It turns out that we do sometimes hit that in quickcheck
tests, but might miss that if we're randomly unlucky, so this PR adds a
new test that will hit all the edge cases every time.

This is a targeted test to make sure we cover all the heuristic edge
cases in `erase_indices`, used by `drain` and other methods.

I found a failure from `cargo mutants` where we still passed tests after
`erase_indices_sweep` was replaced with an empty body. I was concerned
because that function contains `unsafe` code, so we *really* need it
tested. It turns out that we do *sometimes* hit that in `quickcheck`
tests, but might miss that if we're randomly unlucky, so this PR adds a
new test that will hit all the edge cases every time.
@cuviper cuviper added this pull request to the merge queue Sep 13, 2024
Merged via the queue into indexmap-rs:master with commit 6328647 Sep 13, 2024
16 checks passed
@cuviper cuviper deleted the test-erase_indices branch November 15, 2024 00:48
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.

1 participant