Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 9f7bc0710176d1924e73f6d1c2ed00262b6f81be
https://github.com/WebKit/WebKit/commit/9f7bc0710176d1924e73f6d1c2ed00262b6f81be
Author: Alejandro G. Castro <[email protected]>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
M Tools/TestWebKitAPI/CMakeLists.txt
M Tools/TestWebKitAPI/Tests/IPC/ConnectionTests.cpp
M Tools/TestWebKitAPI/Tests/IPC/EventTests.cpp
M Tools/TestWebKitAPI/Tests/IPC/IPCEventTests.cpp
Log Message:
-----------
[GTK][WPE] Build and run the IPC API tests on Linux
https://bugs.webkit.org/show_bug.cgi?id=323435
Reviewed by Carlos Garcia Campos.
Tools/TestWebKitAPI/Tests/IPC has 244 tests covering Connection,
StreamClientConnection, StreamServerConnection, StreamConnectionWorkQueue,
StreamConnectionBuffer and IPC::Event/Signal, and none of them are built on any
Linux port. A change to the IPC layer can only be validated through layout
tests, we are trying to check the semaphore implementation for the
GPUProcess, we need more validation activating these tests.
Three tests assert Cocoa specific semantics and are guarded, each where the
behavior actually differs rather than at the file level:
- IPCEventTests.SignalDoesNotBlockWhenNotWaitedFor expects the Event to hold one
signal and drop the rest. A Mach notification port coalesces; the non-Cocoa
implementation is a counting semaphore pair, so it keeps them. Only that one
assertion is Cocoa only, and the remaining signals are drained so the rest of
the test still means something.
- EventTestABBA.InterruptOnDestruct expects destroying the Signal to interrupt a
wait. That is a property of the Mach send and receive right pair, and
IPCEvent.h already carries a FIXME saying the non-Cocoa implementation does
not have it. IPCEventTests.cpp already guards the equivalent tests; this one
was missed because it could not be run. Without the guard it waits forever
rather than failing.
- ConnectionTestABBA.UnopenedAAndInvalidateDoesNotDeliverBDidClose expects a
peer not to be told when an unopened connection is invalidated. Invalidating
it closes the socket, so a peer on Unix domain sockets sees the end of file
and reports didClose, where a Mach based peer is never told.
The result is 244 tests passing on WPE. Nothing changes for the Apple ports:
every guarded test stays inside its #if PLATFORM(COCOA), and no non-test code is
touched.
* Tools/TestWebKitAPI/CMakeLists.txt:
* Tools/TestWebKitAPI/PlatformWPE.cmake:
* Tools/TestWebKitAPI/Tests/IPC/ConnectionTests.cpp:
* Tools/TestWebKitAPI/Tests/IPC/EventTests.cpp:
* Tools/TestWebKitAPI/Tests/IPC/IPCEventTests.cpp:
Canonical link: https://commits.webkit.org/320519@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications