-
Notifications
You must be signed in to change notification settings - Fork 616
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
Adding unit tests for fault request ordering #4409
base: dev
Are you sure you want to change the base?
Conversation
260d86e
to
b81eb0c
Compare
7e711d0
to
65171bf
Compare
65171bf
to
01dea21
Compare
@@ -2175,3 +2183,297 @@ func TestCheckNetworkPacketLoss(t *testing.T) { | |||
tcs := generateCheckNetworkPacketLossTestCases() | |||
testNetworkFaultInjectionCommon(t, tcs, NetworkFaultPath(types.PacketLossFaultType, types.CheckNetworkFaultPostfix)) | |||
} | |||
|
|||
func TestNetworkFaultRequestOrdering(t *testing.T) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit (non-blocking): There seems to be a lot of repeated code across test cases, especially between L2242-2288 and L2289-L2335. This is not a strict blocker for me but I would prefer if we could look to minimize the amount of repeated code across test cases (for code maintainability purposes, particularly if we expect to add any new fault types in the future) and factor those out into for loop.
01dea21
to
0cb9d05
Compare
Summary
This PR will add additional unit testing for the network fault injection handlers, specifically the ordering of when each request finishes if they're modifying the same resource (e.g. the same network namespace/network interface).
The ordering/workflow is the following:
Implementation details
makeAsyncRequest()
: Helper function that is called upon in a goroutine to make mock HTTP requestsTestNetworkFaultRequestOrdering()
: The test cases will make two sequential asynchronous HTTP request (1 start and then 1 stop fault request). We will be mocking the first request (start fault) to be taking some time to finish while the second request (stop fault) should wait until the first request finishes before it gets executed.Testing
New test cases that were introduced:
New tests cover the changes: yes
Description for the changelog
Feature: Adding network fault request ordering unit test cases
Additional Information
Does this PR include breaking model changes? If so, Have you added transformation functions?
Does this PR include the addition of new environment variables in the README?
Licensing
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.