feat: add unit tests for core modules and protocol integration tests - #1046
feat: add unit tests for core modules and protocol integration tests#1046deepin-wm wants to merge 3 commits into
Conversation
There was a problem hiding this comment.
Sorry @deepin-wm, you have reached your weekly rate limit of 500000 diff characters.
Please try again later or upgrade to continue using Sourcery
|
Skipping CI for Draft Pull Request. |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: deepin-wm The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
74f4dcb to
9630b44
Compare
|
TAG Bot New tag: 0.8.13 |
4057820 to
f2479ee
Compare
Add testability support and unit tests for treeland core modules: - CMakePresets: add excludeLabel for testability - lockscreen: add primaryOutputName() getter - output: make constrainToValidArea public static - xresource: add splitXResourceLine public static - xsettings: add testMode constructor and expose protected methods - backlight: add basePath parameter for test injection - greeterproxy: add testMode constructor, virtual methods, and null guards - rootsurfacecontainer, shellhandler, helper, workspace: add TODO(unit-test) - surfacewrapper: add TODO(unit-test) comment - Add 14 test directories covering core modules
f2479ee to
2532dd9
Compare
Qt signals cannot be declared virtual — MOC generates non-virtual implementations, so MockGreeterProxy::switchUser() override caused undefined behavior (SEGFAULT in test_lockscreen). - Remove virtual from GreeterProxy::switchUser() signal declaration - Remove switchUserCallCount and switchUser() override from MockGreeterProxy - Replace mock counter checks with QSignalSpy on GreeterProxy::switchUser
Use SurfaceContainer(QQuickItem*) constructor to create a parent container, avoiding the SurfaceContainer(SurfaceContainer*) path that calls ensureQmlContext() with a null parent chain. Also value-initialize WallpaperWorkspaceConfig in test_wallpaperconfig to silence -Werror=maybe-uninitialized on the Deepin deb build.
fe2c332 to
ac9a02b
Compare
|
TAG Bot New tag: 0.8.14 |
|
TAG Bot New tag: 0.8.15 |
|
Closed in favor of #1211, which consolidates this PR with #1093 into a single squashed commit per the WM-29 request to merge the two PRs and minimize commit count. This branch lives on the deepin-wm fork, which the current runtime account has no push access to, so the consolidated commit was pushed to linuxdeepin/treeland:feat/wm29-combined-unit-tests instead. CI is being verified on #1211. |
Consolidates the unit-test work from #1046 and #1093 into a single commit. Adds testability hooks to core modules and a suite of unit tests, plus the production bugfixes uncovered while writing the tests. Testability support (production code, minimal / non-behavioral changes): - CMakePresets: add excludeLabel for testability - lockscreen: add primaryOutputName() getter - output: make constrainToValidArea public static - xresource: add splitXResourceLine public static - xsettings: add testMode constructor and expose protected methods - backlight: add basePath parameter for test injection - greeterproxy: add testMode constructor, virtual methods and null guards - rootsurfacecontainer / shellhandler / helper / workspace / surfacewrapper: add TODO(unit-test) markers New unit tests (13 executables): - test_backlight, test_gestures, test_greeterproxy, test_lockscreen, test_output_scale, test_outputconfigstate, test_protocol_integration, test_shortcutcontroller, test_togglablegesture, test_wallpaperconfig, test_windowconfigstore, test_xresource, test_xsettings Fixes: - fix(surface): guard null parentContainer in ensureQmlContext() -- constructing SurfaceContainer with a null parent dereferenced a null pointer from parentContainer(); add an early return. - fix(greeter): switchUser() is a Qt signal and cannot be virtual (MOC generates non-virtual implementations); remove `virtual` and observe the signal with QSignalSpy in the mock instead. - fix(test): pass a non-null parent SurfaceContainer (QQuickItem ctor path) to LockScreen to avoid triggering ensureQmlContext() with a null parent. - fix(test): adapt test_wallpaperconfig to the current WallpaperWorkspaceConfig / WallpaperOutputConfig (the `enable` field was removed upstream since the tests were authored) and value-initialize aggregates where members are left unset, silencing -Werror=maybe-uninitialized on the Deepin deb build. Ref: WM-29 Supersedes #1046 and #1093.
Consolidates the unit-test work from #1046 and #1093 into a single commit. Adds testability hooks to core modules and a suite of unit tests, plus the production bugfixes uncovered while writing the tests. Testability support (production code, minimal / non-behavioral changes): - CMakePresets: add excludeLabel for testability - lockscreen: add primaryOutputName() getter - output: make constrainToValidArea public static - xresource: add splitXResourceLine public static - xsettings: add testMode constructor and expose protected methods - backlight: add basePath parameter for test injection - greeterproxy: add testMode constructor, virtual methods and null guards - rootsurfacecontainer / shellhandler / helper / workspace / surfacewrapper: add TODO(unit-test) markers New unit tests (13 executables): - test_backlight, test_gestures, test_greeterproxy, test_lockscreen, test_output_scale, test_outputconfigstate, test_protocol_integration, test_shortcutcontroller, test_togglablegesture, test_wallpaperconfig, test_windowconfigstore, test_xresource, test_xsettings Fixes: - fix(surface): guard null parentContainer in ensureQmlContext() -- constructing SurfaceContainer with a null parent dereferenced a null pointer from parentContainer(); add an early return. - fix(greeter): switchUser() is a Qt signal and cannot be virtual (MOC generates non-virtual implementations); remove `virtual` and observe the signal with QSignalSpy in the mock instead. - fix(test): pass a non-null parent SurfaceContainer (QQuickItem ctor path) to LockScreen to avoid triggering ensureQmlContext() with a null parent. - fix(test): adapt test_wallpaperconfig to the current WallpaperWorkspaceConfig / WallpaperOutputConfig (the `enable` field was removed upstream since the tests were authored) and value-initialize aggregates where members are left unset, silencing -Werror=maybe-uninitialized on the Deepin deb build. Ref: WM-29 Supersedes #1046 and #1093.
Consolidates the unit-test work from #1046 and #1093 into a single commit. Adds testability hooks to core modules and a suite of unit tests, plus the production bugfixes uncovered while writing the tests. Testability support (production code, minimal / non-behavioral changes): - CMakePresets: add excludeLabel for testability - lockscreen: add primaryOutputName() getter - output: make constrainToValidArea public static - xresource: add splitXResourceLine public static - xsettings: add testMode constructor and expose protected methods - backlight: add basePath parameter for test injection - greeterproxy: add testMode constructor, virtual methods and null guards - rootsurfacecontainer / shellhandler / helper / workspace / surfacewrapper: add TODO(unit-test) markers New unit tests (12 executables): - test_backlight, test_gestures, test_greeterproxy, test_lockscreen, test_output_scale, test_protocol_integration, test_shortcutcontroller, test_togglablegesture, test_wallpaperconfig, test_windowconfigstore, test_xresource, test_xsettings Fixes: - fix(surface): guard null parentContainer in ensureQmlContext() -- constructing SurfaceContainer with a null parent dereferenced a null pointer from parentContainer(); add an early return. - fix(greeter): switchUser() is a Qt signal and cannot be virtual (MOC generates non-virtual implementations); remove `virtual` and observe the signal with QSignalSpy in the mock instead. - fix(test): pass a non-null parent SurfaceContainer (QQuickItem ctor path) to LockScreen to avoid triggering ensureQmlContext() with a null parent. - fix(test): adapt test_wallpaperconfig to the current WallpaperWorkspaceConfig / WallpaperOutputConfig (the `enable` field was removed upstream since the tests were authored) and value-initialize aggregates where members are left unset, silencing -Werror=maybe-uninitialized on the Deepin deb build. - fix(test): drop test_outputconfigstate — OutputConfigState was removed from the codebase on master; the test is obsolete. Ref: WM-29 Supersedes #1046 and #1093.
Consolidates the unit-test work from #1046 and #1093 into a single commit. Adds testability hooks to core modules and a suite of unit tests, plus the production bugfixes uncovered while writing the tests. Testability support (production code, minimal / non-behavioral changes): - CMakePresets: add excludeLabel for testability - lockscreen: add primaryOutputName() getter - output: make constrainToValidArea public static - xresource: add splitXResourceLine public static - xsettings: add testMode constructor and expose protected methods - backlight: add basePath parameter for test injection - greeterproxy: add testMode constructor, virtual methods and null guards - rootsurfacecontainer / shellhandler / helper / workspace / surfacewrapper: add TODO(unit-test) markers New unit tests (12 executables): - test_backlight, test_gestures, test_greeterproxy, test_lockscreen, test_output_scale, test_protocol_integration, test_shortcutcontroller, test_togglablegesture, test_wallpaperconfig, test_windowconfigstore, test_xresource, test_xsettings Fixes: - fix(surface): guard null parentContainer in ensureQmlContext() -- constructing SurfaceContainer with a null parent dereferenced a null pointer from parentContainer(); add an early return. - fix(greeter): switchUser() is a Qt signal and cannot be virtual (MOC generates non-virtual implementations); remove `virtual` and observe the signal with QSignalSpy in the mock instead. - fix(test): pass a non-null parent SurfaceContainer (QQuickItem ctor path) to LockScreen to avoid triggering ensureQmlContext() with a null parent. - fix(test): adapt test_wallpaperconfig to the current WallpaperWorkspaceConfig / WallpaperOutputConfig (the `enable` field was removed upstream since the tests were authored) and value-initialize aggregates where members are left unset, silencing -Werror=maybe-uninitialized on the Deepin deb build. - fix(greeter): guard null m_socket in isConnected() — the testMode constructor does not create a socket, so isConnected() would dereference a null pointer; add an early return (same fix as the backup branch had). - fix(test): drop test_outputconfigstate — OutputConfigState was removed from the codebase on master; the test is obsolete. Ref: WM-29 Supersedes #1046 and #1093.
Consolidates the unit-test work from #1046 and #1093 into a single commit. Adds testability hooks to core modules and a suite of unit tests, plus the production bugfixes uncovered while writing the tests. Testability support (production code, minimal / non-behavioral changes): - CMakePresets: add excludeLabel for testability - lockscreen: add primaryOutputName() getter - output: make constrainToValidArea public static - xresource: add splitXResourceLine public static - xsettings: add testMode constructor and expose protected methods - backlight: add basePath parameter for test injection - greeterproxy: add testMode constructor, virtual methods and null guards - rootsurfacecontainer / shellhandler / helper / workspace / surfacewrapper: add TODO(unit-test) markers New unit tests (12 executables): - test_backlight, test_gestures, test_greeterproxy, test_lockscreen, test_output_scale, test_protocol_integration, test_shortcutcontroller, test_togglablegesture, test_wallpaperconfig, test_windowconfigstore, test_xresource, test_xsettings Fixes: - fix(surface): guard null parentContainer in ensureQmlContext() -- constructing SurfaceContainer with a null parent dereferenced a null pointer from parentContainer(); add an early return. - fix(greeter): switchUser() is a Qt signal and cannot be virtual (MOC generates non-virtual implementations); remove `virtual` and observe the signal with QSignalSpy in the mock instead. - fix(test): pass a non-null parent SurfaceContainer (QQuickItem ctor path) to LockScreen to avoid triggering ensureQmlContext() with a null parent. - fix(test): adapt test_wallpaperconfig to the current WallpaperWorkspaceConfig / WallpaperOutputConfig (the `enable` field was removed upstream since the tests were authored) and value-initialize aggregates where members are left unset, silencing -Werror=maybe-uninitialized on the Deepin deb build. - fix(greeter): guard null m_socket in isConnected() — the testMode constructor does not create a socket, so isConnected() would dereference a null pointer; add an early return (same fix as the backup branch had). - fix(test): drop test_outputconfigstate — OutputConfigState was removed from the codebase on master; the test is obsolete. Ref: WM-29 Supersedes #1046 and #1093.
Replaces closed PR #1040 with the complete unit test suite including CI fixes.