Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix flaky tests in AssignmentTest #455

Open
wants to merge 1 commit into
base: develop
Choose a base branch
from

Conversation

nikunjagarwal321
Copy link

@nikunjagarwal321 nikunjagarwal321 commented Oct 15, 2024

Description

Fix for 4 flaky tests which were found in class com.intuit.wasabi.assignmentobjects.AssignmentTest. The tests are as follows:

  • testAssignmentFromOther
  • testAssignmentWithEmptyBucketAndDefaultNotEqualsAndHash
  • testAssignmentWithEmptyBucketNotEqualsAndHash
  • testAssignmentWithEmptyBucketEqualsAndHash

Steps to reproduce

This was identified by running NonDex.
The flaky tests can be found when running the following command:
mvn edu.illinois:nondex-maven-plugin:2.1.7:nondex -Dtest={test}

Logs

Failed tests: testAssignmentFromOther(com.intuit.wasabi.assignmentobjects.AssignmentTest): expected:<-1303240598> but was:<169444110> testAssignmentWithEmptyBucketAndDefaultNotEqualsAndHash(com.intuit.wasabi.assignmentobjects.AssignmentTest) testAssignmentWithEmptyBucketNotEqualsAndHash(com.intuit.wasabi.assignmentobjects.AssignmentTest) testAssignmentWithEmptyBucketEqualsAndHash(com.intuit.wasabi.assignmentobjects.AssignmentTest): expected:<1508589707> but was:<-992211973>

Reason for failure

The flaky nature of the test case is due to the HashCodeBuilder.reflectionHashCode() function. The function internally uses getDeclaredFields() method which does not maintain the order in which the fields are fetched.

Expected Behaviour

The hashCode() method should return same value for same objects irrespective of the fields order.

Actual Behaviour

The test is failing since it is returning different hashcode values

Solution

In order to fix this, we are now defining a fixed order in which the fields get appended in hashCode() method.

@nikunjagarwal321 nikunjagarwal321 changed the title Fix the flaky Fix flaky tests in AssignmentTest Oct 15, 2024
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