fix: fix flaky tests in org.apache.helix.rest.metadatastore.TestZkMetadataStoreDirectory#testComputePartitionAssignment#1
Open
hofi1 wants to merge 1 commit into
Conversation
in org.apache.helix.rest.metadatastore. TestZkMetadataStoreDirectory
f0b783e to
9cd4181
Compare
|
The fix LGTM. |
|
The fix looks good! In the description, you could add a link to the NonDex tool. You could also add links pointing to the line of code that causes the flakiness. |
|
You can consider if it makes sense to combine some of your PRs for helix into a larger one. You can proceed to open a real PR. Once you open a real PR, please mark this tentative PR as |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Issues
Fixes apache#2645
Description
Sets return the elements in a non-deterministic order, which means that this assertion is not correct, because it checks whether the collections contain the same elements in the same order. This leads to a flack test. To fix this problem, the assertion has been rewritten to check if the collections contain the same amount of elements as well as booth collections contain all values of the other collection.
Tests that cause problems:
helix/helix-rest/src/test/java/org/apache/helix/rest/metadatastore/TestZkMetadataStoreDirectory.java
Lines 133 to 141 in 6241bcb
and
helix/helix-rest/src/test/java/org/apache/helix/rest/metadatastore/TestZkMetadataStoreDirectory.java
Lines 144 to 152 in 6241bcb
This problem was found by the NonDex Engine – to reproduce run
Solution
Replace the assertions with a custom matcher, which checks if the sets contain the same elements without taking care of the order of the elements returned by the set.
Custom Matcher:
helix/helix-rest/src/test/java/org/apache/helix/rest/metadatastore/TestZkMetadataStoreDirectory.java
Lines 378 to 383 in 9cd4181
Tests
No test have been written – one existing test has been updated.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 02:51 min
[INFO] Finished at: 2023-10-04T23:16:04-05:00
[INFO] ------------------------------------------------------------------------