Adds scripts/live-dbus-test.sh (`just live-dbus`): each scenario runs the installed Ghostty 1.3.1 and the Rust build on a private dbus-run-session bus inside a private headless weston (the user's session bus is never written to), with Python/Gio mocks for org.freedesktop.Notifications, the GlobalShortcuts/Settings portal and org.freedesktop.systemd1, plus a real xdg-desktop-portal run. Scenarios: single-instance (+detect), +new-window with arguments, notifications, global shortcuts, color-scheme settings, cgroup scope creation, URL opening. tests/live_dbus.rs compares the Rust build against goldens recorded from the original (skips when tools or a fresh production build are missing). Two Rust bugs found and fixed (no upstream deviation): - GlobalShortcuts CreateSession/BindShortcuts payloads used the wrong D-Bus signatures ((v), double-boxed values), which a real portal rejects; signature tests added. - CreateSession was sent twice at startup; the config is now bound only after the D-Bus connection is set, as in Zig. All nine scenarios now behave identically to the original (docs/rewrite/notes/live-dbus.md). Test Plan: - just live-dbus - cargo test --test live_dbus (needs target/vp/production/ghostty)
50 lines
2.5 KiB
Plaintext
50 lines
2.5 KiB
Plaintext
== facts ==
|
|
first instance owns name: 0
|
|
step first: windows=1 instances=1
|
|
ipc newwin rc=0
|
|
step +new-window: windows=2 instances=1
|
|
ipc newwin-e rc=0
|
|
step +new-window -e: windows=3 instances=1
|
|
ipc newwin-wd rc=0
|
|
step +new-window --working-directory: windows=4 instances=1
|
|
ipc newwin-e-wd rc=0
|
|
step +new-window -e..--working-directory: windows=5 instances=1
|
|
ipc newwin-class rc=1
|
|
ipc-err: D-Bus method call returned an error err=GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name com.example.nobody was not provided by any .service files
|
|
step +new-window --class=nobody: windows=5 instances=1
|
|
second launch rc=0
|
|
step second launch: windows=6 instances=1
|
|
child: /usr/bin/bash cwd=$HOME
|
|
child: /usr/bin/bash cwd=$HOME
|
|
child: /usr/bin/bash cwd=$ROOT
|
|
child: /usr/bin/bash cwd=/usr
|
|
child: sleep 601 cwd=$ROOT
|
|
step -e launch: windows=6 instances=2
|
|
step -e launch ended: windows=6 instances=1
|
|
custom class owns name: 0
|
|
step custom: windows=1 instances=2
|
|
ipc newwin-custom rc=0
|
|
step +new-window --class=custom: custom windows=2 default windows=6
|
|
ipc newwin-custom-e rc=0
|
|
step +new-window --class=custom -e: custom windows=3 default windows=6
|
|
ipc newwin-badclass rc=1
|
|
ipc-err: D-Bus bus name is not valid: 1bad
|
|
badclass done
|
|
bus name: com.example.custom-app
|
|
bus name: com.mitchellh.ghostty
|
|
actions: ([open-config, present-surface, quit, new-window-command, new-window, reload-config],)
|
|
custom actions: ([open-config, present-surface, quit, new-window-command, new-window, reload-config],)
|
|
== mock received ==
|
|
org.freedesktop.portal.Settings.Read ["org.freedesktop.appearance", "color-scheme"]
|
|
org.freedesktop.portal.Settings.Read ["org.freedesktop.appearance", "contrast"]
|
|
org.freedesktop.portal.Settings.Read ["org.freedesktop.appearance", "accent-color"]
|
|
org.freedesktop.portal.Settings.Read ["org.freedesktop.appearance", "color-scheme"]
|
|
org.freedesktop.portal.Settings.Read ["org.freedesktop.appearance", "contrast"]
|
|
org.freedesktop.portal.Settings.Read ["org.freedesktop.appearance", "accent-color"]
|
|
org.freedesktop.portal.Settings.Read ["org.freedesktop.appearance", "color-scheme"]
|
|
org.freedesktop.portal.Settings.Read ["org.freedesktop.appearance", "contrast"]
|
|
org.freedesktop.portal.Settings.Read ["org.freedesktop.appearance", "accent-color"]
|
|
org.freedesktop.portal.Settings.Read ["org.freedesktop.appearance", "color-scheme"]
|
|
org.freedesktop.portal.Settings.Read ["org.freedesktop.appearance", "contrast"]
|
|
org.freedesktop.portal.Settings.Read ["org.freedesktop.appearance", "accent-color"]
|