[Concept,00/27] Expo debugging and textedit improvements (part E)

Message ID 20260119204130.3972647-1-sjg@u-boot.org
Headers
Series Expo debugging and textedit improvements (part E) |

Message

Simon Glass Jan. 19, 2026, 8:40 p.m. UTC
  From: Simon Glass <simon.glass@canonical.com>

This series adds debugging infrastructure for expo development and fixes
several issues with textedit objects.

Debugging improvements:
- Add 'sb grid' command to overlay a grid on the sandbox display
- Add file log driver for sandbox to capture log output to a file
- Add scene_chklog() to filter log output by object name
- Add per-line measurement logging for text objects
- Add expo_dump_file() to dump expo structures to a file
- Add line-measurement info to expo dump output

Textedit fixes:
- Extract common text-input code into scene_txtin.c
- Fix textedit height calculation
- Fix word-wrap measurement order to use correct bbox
- Support highlighting textedit objects

Trace fixes:
- Fix proftool funcgraph depth for exit records
- Fix trace test to handle more traced functions

Also includes minor fixes for RTC test flakiness and pinctrl-single
boot phase.


Simon Glass (27):
  hook: Add hooks for kaka
  test/py: Allow --help without a build directory
  proftool: Fix funcgraph depth for exit records
  test: trace: Remove stale trace file before saving
  test: trace: Fix funcgraph check for matching exit indent
  pickman: Handle qconfig resync commits specially
  sandbox: test: Add bootph-all to pinctrl-single for serial
  test: dm: rtc: Fix flaky dm_test_rtc_dual test
  video: Log each measured line with log_content()
  sandbox: Add grid-drawing option to sandbox_sdl_sync()
  sandbox: Add 'sb grid' command to enable grid overlay
  sandbox: Allow grid size to be specified in 'sb grid' command
  sandbox: log: Add file log driver
  expo: Use a configurable output function in expo_dump()
  expo: Dump the line-measurement info
  expo: Add debug logging to scene_txtin_arrange()
  sandbox: expo: Add expo_dump_file()
  expo: Add scene_chklog() for filtered logging
  expo: Fix textedit word-wrap measurement order
  expo: Add per-line measurement logging
  expo: Add a txtin function to render dependencies
  expo: Combine textline and textedit switch cases
  expo: Add scene_txtin_open() for common text-input open code
  expo: Add scene_txtin_close() for common text-input close code
  expo: Mark textedits as highlightable
  expo: Fix textedit height calculation
  expo: Render textedit dependencies correctly

 arch/sandbox/cpu/sdl.c              |  23 ++++++-
 arch/sandbox/dts/test.dts           |   2 +
 arch/sandbox/include/asm/sdl.h      |   8 ++-
 arch/sandbox/include/asm/sdl_sync.h |  23 +++++++
 arch/sandbox/include/asm/state.h    |   2 +
 boot/Kconfig                        |  10 +++
 boot/expo_dump.c                    |  88 ++++++++++++++++++++++--
 boot/scene.c                        |  68 ++++++++++++++----
 boot/scene_internal.h               |  62 +++++++++++------
 boot/scene_textedit.c               |  49 ++++++++++---
 boot/scene_textline.c               |  77 +--------------------
 boot/scene_txtin.c                  |  88 ++++++++++++++++++++++++
 cmd/sb.c                            |  17 +++++
 common/Kconfig                      |   8 +++
 common/Makefile                     |   1 +
 common/log_file.c                   | 103 ++++++++++++++++++++++++++++
 configs/sandbox_defconfig           |   2 +
 doc/develop/expo.rst                |  31 +++++++++
 doc/develop/logging.rst             |   5 ++
 doc/usage/cmd/sb.rst                |   9 +++
 drivers/video/console_truetype.c    |  10 ++-
 drivers/video/sandbox_sdl.c         |   7 +-
 include/expo.h                      |  11 ++-
 include/log.h                       |  11 +++
 lib/getopt.c                        |   4 +-
 test/boot/expo.c                    |  47 ++++++++++++-
 test/cmd/sb.c                       |  34 +++++++++
 test/dm/rtc.c                       |  19 +++--
 test/hooks/bin/kaka                 |   1 +
 test/log/Makefile                   |   1 +
 test/log/log_file_test.c            |  43 ++++++++++++
 test/log/log_filter.c               |   9 +--
 test/py/conftest.py                 |   4 ++
 test/py/tests/test_trace.py         |   6 +-
 tools/pickman/agent.py              |  44 +++++++++++-
 tools/proftool.c                    |  23 ++++---
 36 files changed, 789 insertions(+), 161 deletions(-)
 create mode 100644 arch/sandbox/include/asm/sdl_sync.h
 create mode 100644 common/log_file.c
 create mode 120000 test/hooks/bin/kaka
 create mode 100644 test/log/log_file_test.c