Implement client-server test infra and window opening tests

These tests make a real Niri instance and real Wayland clients (via manual
wayland-rs implementation), both on the same event loop local to the test. This
allows testing the full Wayland interaction, including arbitrary event ordering
and delays.

To start off, add a massive powerset test for the settings that influence where
a window may open.
This commit is contained in:
Ivan Molodetskikh
2024-12-20 08:49:18 +03:00
parent d38bfc4aff
commit 771ea1e815
1223 changed files with 18132 additions and 1 deletions
Generated
+55 -1
View File
@@ -580,6 +580,18 @@ dependencies = [
"wayland-client",
]
[[package]]
name = "calloop-wayland-source"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "876a7a1dbbe026a55ef47a500b123af5a9a0914520f061d467914cf21be95daf"
dependencies = [
"calloop 0.14.1",
"rustix 0.38.38",
"wayland-backend",
"wayland-client",
]
[[package]]
name = "cc"
version = "1.1.31"
@@ -821,6 +833,25 @@ dependencies = [
"cfg-if",
]
[[package]]
name = "crossbeam-deque"
version = "0.8.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51"
dependencies = [
"crossbeam-epoch",
"crossbeam-utils",
]
[[package]]
name = "crossbeam-epoch"
version = "0.9.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
dependencies = [
"crossbeam-utils",
]
[[package]]
name = "crossbeam-utils"
version = "0.8.20"
@@ -2410,6 +2441,7 @@ dependencies = [
"bitflags 2.6.0",
"bytemuck",
"calloop 0.14.1",
"calloop-wayland-source 0.4.0",
"clap",
"directories",
"drm-ffi",
@@ -2435,6 +2467,7 @@ dependencies = [
"profiling",
"proptest",
"proptest-derive",
"rayon",
"sd-notify",
"serde",
"serde_json",
@@ -2445,6 +2478,7 @@ dependencies = [
"tracy-client",
"url",
"wayland-backend",
"wayland-client",
"wayland-scanner",
"xcursor",
"xshell",
@@ -3337,6 +3371,26 @@ version = "0.6.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539"
[[package]]
name = "rayon"
version = "1.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa"
dependencies = [
"either",
"rayon-core",
]
[[package]]
name = "rayon-core"
version = "1.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
dependencies = [
"crossbeam-deque",
"crossbeam-utils",
]
[[package]]
name = "redox_syscall"
version = "0.4.1"
@@ -3725,7 +3779,7 @@ checksum = "3457dea1f0eb631b4034d61d4d8c32074caa6cd1ab2d59f2327bd8461e2c0016"
dependencies = [
"bitflags 2.6.0",
"calloop 0.13.0",
"calloop-wayland-source",
"calloop-wayland-source 0.3.0",
"cursor-icon",
"libc",
"log",