This is an automated email from the git hooks/post-receive script.
git pushed a commit to branch wl/tests-wlcs
in repository enlightenment.
View the commit online.
commit 61958bedcdcda81d74110e756d12949e831898f7
Author: Cedric BAIL <[email protected]>
AuthorDate: Sat Aug 8 19:47:32 2026 -0600
tests - document how to get a working wlcs runner
The distro package may not give you one: on Manjaro ARM, wlcs 1.1.0-2 links
libgtest.so.1.10.0 against an installed gtest of 1.14, so the runner cannot
start at all.
Building it is not hard, but three things get in the way and none of them
are obvious from the error you get:
- use v1.7.0, not HEAD. 1.8.2 needs std::format, i.e. GCC 13. v1.7.0
builds with GCC 12 and its wlcs/*.h are byte-identical to 1.1.0's, same
WLCS_DISPLAY_SERVER_VERSION and WLCS_SERVER_INTEGRATION_VERSION, so the
integration needs no change for either.
- Boost headers. wlcs uses exactly two, both header-only, and Arch and
Manjaro put them in 'boost' rather than 'boost-libs'.
- -Wno-error=restrict. GCC 12 emits a false positive inside libstdc++'s
own char_traits.h and wlcs builds with -Werror.
Also states plainly what 'meson test wlcs-integration' does and does not
cover: it drives our hooks, it does not run the conformance suite.
Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
Claude-Session: https://claude.ai/code/session_01FtoiXoSKUmZb6Aix6U3GZS
---
src/tests/wlcs/README.md | 60 ++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 60 insertions(+)
diff --git a/src/tests/wlcs/README.md b/src/tests/wlcs/README.md
new file mode 100644
index 000000000..ca286d992
--- /dev/null
+++ b/src/tests/wlcs/README.md
@@ -0,0 +1,60 @@
+# Running the wlcs conformance suite
+
+`e_wlcs.so` is the integration; `wlcs` is the runner that loads it.
+
+```sh
+ninja -C build install
+wlcs ./build/src/tests/wlcs/e_wlcs.so
+```
+
+with `E_WLCS_BIN` pointing at the installed `enlightenment` if it is not the
+one baked in at build time. `E_WLCS_VERBOSE=1` lets the compositor's own
+output through instead of sending it to /dev/null.
+
+Useful runner flags, all from gtest: `--gtest_list_tests`,
+`--gtest_filter=SubsurfaceTest.*`, `--gtest_output=xml:results.xml`.
+
+`meson test wlcs-integration` does **not** run the suite. It runs
+`e_wlcs_driver`, which exercises the integration's own hooks and checks the
+declared descriptor against the compositor's real registry. That is a check on
+*our shim*, and it is what keeps working when the runner does not.
+
+## Getting a runner that works
+
+The distro package may not give you a usable one. On this machine
+`wlcs 1.1.0-2` links `libgtest.so.1.10.0` while the installed gtest is 1.14,
+so `/usr/libexec/wlcs/wlcs` cannot start at all — check with `ldd`.
+
+Building it is not hard, but three things get in the way and none of them are
+obvious from the error:
+
+```sh
+git clone https://github.com/canonical/wlcs && cd wlcs
+git checkout v1.7.0
+cmake -S . -B build -DCMAKE_BUILD_TYPE=Release \
+ -DWLCS_BUILD_ASAN=False -DWLCS_BUILD_TSAN=False -DWLCS_BUILD_UBSAN=False \
+ -DBoost_INCLUDE_DIR=/path/to/boost/include \
+ -DCMAKE_CXX_FLAGS="-Wno-error=restrict -Wno-error=array-bounds"
+cmake --build build -j
+```
+
+* **v1.7.0, not HEAD.** wlcs 1.8.2 uses `std::format`, which needs GCC 13.
+ v1.7.0 builds with GCC 12 and its `wlcs/*.h` are byte-identical to 1.1.0's —
+ same `WLCS_DISPLAY_SERVER_VERSION` (3) and `WLCS_SERVER_INTEGRATION_VERSION`
+ (1) — so the integration needs no change for either.
+* **Boost headers.** wlcs needs only `boost/throw_exception.hpp` and
+ `boost/exception/info.hpp`, both header-only. Arch and Manjaro split these
+ into the `boost` package; `boost-libs` alone is not enough.
+* **`-Wno-error=restrict`.** GCC 12 emits a false positive inside
+ libstdc++'s own `char_traits.h`, and wlcs builds with `-Werror`. Nothing to
+ do with wlcs or with us.
+
+## Turning more of the suite on
+
+wlcs skips every test for an extension the integration does not declare, so
+`_extensions[]` in `e_wlcs.c` is the switch. Adding a protocol to E means
+adding it there too, or its tests silently never run.
+
+That list is checked rather than trusted: `e_wlcs_driver` walks the compositor's
+real registry and fails if the two disagree, in either direction — claiming a
+version E does not have, or claiming an interface it does not advertise.
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.