Fixed non-idempotent unit tests in AsyncHBaseTest
and HBaseClient1Test
#1705
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.
Motivation:
Tests in the
AsyncHBaseTest
andHBaseClient1Test
are not idempotent and fail in repeated runs, because they pollute a state reused by themselves. TakeAsyncHBaseTest
as an example - the tests used the sharedAsyncHBaseClient
instanceclient
to perform operations includingread()
andinsert()
. However,client
is not cleaned up after the tests, so the repeated runs fail. Fixing non-idempotent tests can help proactively avoid state pollution that results in test order dependency (which could then hurt regression testing under test selection / prioritization / parallelization).The list of non-idempotent tests are:
Reproduce
Reproduce:
Using the
NIOInspector
plugin that supports rerunning JUnit tests in the same environment. UseHBaseClient1Test
as an example:Error messages for the failed tests in the second run:
testScan()
:testReadMissingRow()
:testRead()
:testUpdate()
:Proposed Fix
Clean up
client
in the tear down function.