De-flake LongConvertorFieldsTest by removing dependence on field orde… #1239
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.
All test methods in LongConvertorFieldsTest (base16, base64, base85, shortText, words) were comparing exact string representations of serialized YAML. Such tests are prone to flakes since the underlying implementation relies on reflection (getDeclaredFields()), which does not guarantee a deterministic field order across JVMs or environments.
Summary of Changes
Refactored doTest() to use regex-based YAML parsing that extracts field-value pairs into a HashMap for order-independent validation. This approach validates the same semantics while being resilient to field ordering variations.
Test Flakiness Reproducibility
The issue can be observed on environments where getDeclaredFields() returns fields in a different order than expected. Such flakiness is observed using NonDex.