-
Notifications
You must be signed in to change notification settings - Fork 1.7k
New test: [iOS macOS] TestIPC.StreamConnectionTest.SendAsyncReplyMessage is timing out #8565
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
New test: [iOS macOS] TestIPC.StreamConnectionTest.SendAsyncReplyMessage is timing out #8565
Conversation
EWS run on previous version of this PR (hash b1b7344)
|
|
b1b7344
to
3f2dd0d
Compare
EWS run on previous version of this PR (hash 3f2dd0d)
|
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.
Could you just use this to create same-process copies of the Semaphore for the test code, and then not need to add the copy constructor?
It seems fine either way though, to support both in-process copies as well as IPC ones, just adds a bit more code that's only used for testing.
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.
Could you just use this to create same-process copies of the Semaphore for the test code, and then not need to add the copy constructor?
While contrary to the goal of bringing order to (my) world, I think your suggestion is unfortunately the better approach.
3f2dd0d
to
55bb99e
Compare
EWS run on previous version of this PR (hash 55bb99e)
|
55bb99e
to
174aca5
Compare
EWS run on previous version of this PR (hash 174aca5)
|
174aca5
to
e436a82
Compare
EWS run on current version of this PR (hash e436a82)
|
…age is timing out https://bugs.webkit.org/show_bug.cgi?id=249780 rdar://103640558 Reviewed by Matt Woodrow. The test would time out mainly because the communication semaphores were not set up between client and server connection. If the server would be slow enough, the initial processing wakeup due to starting message listening would make the test pass. If the server would be fast enough, the initial processing wakeup would not process all messages that the test would send, and thus it would time out. Fix by setting the semaphores, so new messages will wake up the server work queue. Secondarily make the test more consistent by running all the server related code in the server work queue. The first point needs IPCSemaphore to have copy operations, so implement these. Add tests for IPCSemaphore, test also the new operations. These semaphores are typically sent as part of the initialization message exchange between client and server (CreateXXX, DidCreateXXX messages). The unit tests run in single process, there is no message exchange to setup the connection. The second point needs a fix for StreamConnectionWorkQueue, where the tasks that would be run during shutdown would crash if the tasks would assert that the task is run on correct queue. Fix by not removing the m_processingThread reference until the thread has exited. Add a test for this. * Source/WebKit/Platform/IPC/StreamConnectionWorkQueue.cpp: (IPC::StreamConnectionWorkQueue::stopAndWaitForCompletion): * Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * Tools/TestWebKitAPI/Tests/IPC/IPCTestUtilities.h: (TestWebKitAPI::copyViaEncoder): * Tools/TestWebKitAPI/Tests/IPC/StreamConnectionTests.cpp: (TestWebKitAPI::StreamConnectionTest::localReferenceBarrier): (TestWebKitAPI::StreamConnectionTest::serverQueue): (TestWebKitAPI::TEST_F): (TestWebKitAPI::StreamConnectionTest::StreamConnectionTest): Deleted. * Tools/TestWebKitAPI/Tests/IPC/StreamConnectionWorkQueueTests.cpp: Added. (TestWebKitAPI::TEST_F): Canonical link: https://commits.webkit.org/258913@main
e436a82
to
e6b6765
Compare
Committed 258913@main (e6b6765): https://commits.webkit.org/258913@main Reviewed commits have been landed. Closing PR #8565 and removing active labels. |
e6b6765
e436a82
🧪 api-mac