mirror of
https://github.com/SpartanJ/eepp.git
synced 2026-09-22 13:01:05 +03:00
eepp:
- add reusable-buffer String::toUtf8() conversion - extract shared find-bar CSS into UIFindBarStyle - reuse the shared style from UIDocFindReplace ecode: - enable terminal find, next, and previous shortcuts - install terminal bindings after conflicting editor bindings are removed eterm: - add searchable terminal history with plain text, RegEx, and LuaPattern modes - support case-sensitive and whole-word matching across wrapped rows - debounce searches and avoid unnecessary string allocations - add an animated find bar with status and wrapped result navigation - expose find commands through configurable keybindings and the context menu - render and navigate search matches in terminal history - forward right-button releases when applications capture the mouse - fix UITabWidgetSplitter ownership during shutdown tests: - cover UTF-8 buffer reuse and terminal search behavior - verify wrapped lines, Unicode, pattern modes, invalid expressions, and navigation - verify SGR right-button release encoding tooling: - clarify the mandatory optimized build workflow for performance work - require direct release test execution before falling back to Xvfb
This commit is contained in:
@@ -17,6 +17,14 @@ This produces an optimized release build with debug symbols and without AddressS
|
||||
release executable (for example, `bin/eepp-ui-html`) when measuring performance. Recheck
|
||||
`.ecode/project_build.json` before use because the local configuration may change.
|
||||
|
||||
This workflow is mandatory for any task whose purpose includes performance investigation,
|
||||
optimization, benchmarking, or validating runtime speed. Do not reuse a gmake tree generated with
|
||||
`--address-sanitizer`, and do not substitute `make config=release`: regenerate with the current
|
||||
`eepp-linux-ninja` command and build the `release` Ninja target exactly as configured above.
|
||||
|
||||
The debug/unit-test workflow below is additional correctness validation. It does not replace the
|
||||
release Ninja build required for performance work.
|
||||
|
||||
## Debug and Unit-Test Builds
|
||||
|
||||
All build commands must be executed from the **root project directory**. Follow these steps to build the project:
|
||||
|
||||
@@ -5,8 +5,20 @@ This project relies on a comprehensive suite of unit tests to prevent regression
|
||||
## Running Tests
|
||||
The test binary manages its own current working directory, so you can execute it from anywhere.
|
||||
|
||||
* **Prefer the release test binary during normal development:**
|
||||
When AddressSanitizer or other debug-only diagnostics are not required, build and run `bin/unit_tests/eepp-unit_tests`. The optimized release suite is substantially faster and should be the default for iterative testing. Use `bin/unit_tests/eepp-unit_tests-debug` when investigating memory safety, assertions, or other behavior that specifically requires the debug configuration.
|
||||
The required default workflow is:
|
||||
|
||||
1. Build the release unit-test target.
|
||||
2. Run `bin/unit_tests/eepp-unit_tests` directly, without Xvfb.
|
||||
3. If sandbox restrictions prevent access to the host display, retry that same direct command with
|
||||
elevated permissions.
|
||||
4. Use Xvfb only after direct execution has failed outside the sandbox because no usable graphical
|
||||
display is available. Xvfb is the last fallback, not the default headless convenience path.
|
||||
|
||||
Do not infer that a session is headless merely because its first sandboxed command cannot connect to
|
||||
the display. A sandbox can hide or deny access to an otherwise usable host display.
|
||||
|
||||
* **Use the release test binary during normal development:**
|
||||
When AddressSanitizer or other debug-only diagnostics are not required, build and run `bin/unit_tests/eepp-unit_tests`. The optimized release suite is substantially faster and is the required default for iterative testing. Use `bin/unit_tests/eepp-unit_tests-debug` only when investigating memory safety, assertions, or other behavior that specifically requires the debug configuration.
|
||||
* **Default Execution on a Graphical Linux Desktop:**
|
||||
Unit-test windows are created hidden, so run the release suite directly against the desktop:
|
||||
`bin/unit_tests/eepp-unit_tests`
|
||||
@@ -16,7 +28,7 @@ The test binary manages its own current working directory, so you can execute it
|
||||
* **Filtered Tests on a Graphical Linux Desktop:**
|
||||
Use the same direct hardware-backed command for focused runs:
|
||||
`bin/unit_tests/eepp-unit_tests --filter="FontRendering.*Offset*"`
|
||||
* **Headless CI and Systems Without a Usable Desktop Display:**
|
||||
* **Last Fallback for Headless CI and Systems Confirmed to Lack a Usable Desktop Display:**
|
||||
Keep `projects/scripts/xvfb-run-eepp` as the fallback when no desktop display is available:
|
||||
`projects/scripts/xvfb-run-eepp bin/unit_tests/eepp-unit_tests`
|
||||
The wrapper provides a race-safe isolated display at `1280x1024x24` and injects
|
||||
|
||||
Reference in New Issue
Block a user