Skip to content

[BUG] - Nondeterminism in unit tests in MessageTest due to JSON parameter ordering #4970

Description

@anthonyx24

Steps to Reproduce

Issue: This is the same issue as #4946 involving JSON comparisons. Here it's happening in both the should_encode_register_type and should_encode_unregister_type unit tests within the MessageTest class. In summary, since JSONs are unordered, after converting them to strings, the parameter ordering is not guaranteed, which can lead to the tests failing occasionally. For another example of this issue being addressed, see this previous merged PR.

These two tests were flagged via the NonDex tool, which detects potentially unreliable tests due to underlying Java API assumptions. To see the Nondex output for the test class MessageTest, you can run:

mvn -pl service-registry/registry-lightweight edu.illinois:nondex-maven-plugin:2.1.7:nondex -Dtest="org.apache.servicecomb.registry.lightweight.MessageTest"

Expected Behavior

The tests should pass regardless of which order the JSON parameters are stringified.

Servicecomb Version

3.3.0

Additional Context

I will add a PR with a potential fix in the discussion.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions