Fixed flaky test DataStoreConvertersTest.testCheckSameKey() #1
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.
Code Change
Fixed flaxy test - https://github.com/GoogleCloudPlatform/DataflowTemplates/blob/main/v1/src/test/java/com/google/cloud/teleport/templates/common/DatastoreConvertersTest.java#L174
Error
This test is flaky because while verifying if the errorTag matches the expectedErrors, the code does a direct string comparison, in which both strings are JSON objects in string format. As the ordering of the keys inside JSON objects is non-deterministic, this string comparison is throwing an error.
This error was found by executing the NonDex tool with the following command -
mvn -pl v1 edu.illinois:nondex-maven-plugin:2.1.7:nondex -Dtest=com.google.cloud.teleport.templates.common.DatastoreConvertersTest#testCheckSameKey
Fix
Discarded Probable Fixes
Proposed Fix
Instead of comparing two jsons, I am comparing the hashcodes for those JSONs. The google.gson JsonObject which I am using uses a LinkedTreeMap to store its members, which will automatically handle sorting, thus making the hashcode reliable.