-
Couldn't load subscription status.
- Fork 10.2k
tests: Migrate watch tests to common pkg #20837
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
base: main
Are you sure you want to change the base?
Conversation
Signed-off-by: joshjms <joshjms1607@gmail.com>
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: joshjms The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
I'll make it not draft to test the CI :) |
|
/hold |
|
On closer inspection the watch tests in e2e is quite different in purpose than the one in integration :) Should I keep them separated? |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted filessee 24 files with indirect coverage changes @@ Coverage Diff @@
## main #20837 +/- ##
==========================================
+ Coverage 69.14% 69.20% +0.06%
==========================================
Files 422 422
Lines 34824 34824
==========================================
+ Hits 24079 24100 +21
+ Misses 9342 9326 -16
+ Partials 1403 1398 -5 Continue to review full report in Codecov by Sentry.
🚀 New features to boost your workflow:
|
|
@joshjms: The following tests failed, say
Full PR test history. Your PR dashboard. Please help us cut down on flakes by linking to an open issue when you hit one in your PR. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here. |
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.
The tests/e2e/watch_test.go contains some tests:
First, you need to determine which tests should be migrated to common and which should remain as they are.
- TestWatchDelayForPeriodicProgressNotification
- TestWatchDelayForManualProgressNotification
- TestWatchDelayForEvent
To understand these tests, you need to read these references:
In my opinion, these tests should not be migrated to common.
As described in the discussion, they validate watch behavior over a single persistent gRPC(HTTP/2) connection. Running them under tests/common would switch the e2e runner to etcdctl-based clients, where each call is executed in a separate process/connection. That masks the very class of bugs we want to catch (e.g., multiple requests over one connection).
- TestDeleteEventDrop_Issue18089
See #18201 for the backgroud of this test.
It's better to migrate this test to tests/e2e/reproduce_18089_test.go to align with other reproduction purpose tests.
- TestStartWatcherFromCompactedRevision
See #18274 for the background.
It can probably be migrated to tests/common.
- TestResumeCompactionOnTombstone
See https://github.com/etcd-io/etcd/pull/191884 for the background.
I'm not sure why this test exists in tests/e2e/watch_test.go. tests/e2e/resume_compaction_tombstone_test.go or something would be better.
Since failpoint injection is used in this test, it's better to keep it in tests/e2e/.
Please read https://github.com/etcd-io/etcd/blob/main/CONTRIBUTING.md#contribution-flow.
Ref: #13637, #20607
/cc @yagikota @serathius