Linux: packages tested on Omarchy, Ubuntu and Fedora; ElyMark stays idle (L1.6)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
15106b641f
commit
a9f8136e46
11 files changed
+413
-1
No files matched your search
+1
-1
@@ -206,5 +206,5 @@
|
||||
- [x] L1.3 设置的单测在 Linux 上失败(“a menu bar needs menus”):Linux 未设菜单时给空表而非 None,测试未像应用那样先设菜单;真窗口里 Ctrl+, 打开设置不崩(已实测) — R1 PASS
|
||||
- [x] L1.4 Linux 构建环境:`ubuntu:26.04` 容器里构建全部引擎与六个应用(glibc 不高于 2.43);`packaging/linux/container.sh`、`tests/scripts/linux-glibc.sh` — R1 读不出当作静态、缺件照过、注释超长;R2 链接文件、读错;R3 链接目录;R4 PASS
|
||||
- [x] L1.5 Linux 包:deb、rpm、Arch(pkg.tar.zst)、AppImage 出自同一份分装,装到 `/opt/ely-office/<应用>`,带桌面项、图标与文件类型;依赖按 `packaging/linux/depends.tsv`;LibreOffice 的 cairo RUNPATH 改为 `$ORIGIN`;`tests/scripts/linux-packages.sh` — R1 列举与读错被吞、坏入口照过、无执行位;R2 坏 git-lfs 照过;R3 PASS
|
||||
- [ ] L1.6 本机出六个应用的四种包;Omarchy 上装 Arch 包与 AppImage 出窗口;deb、rpm 在各自发行版的容器里装上并冒烟
|
||||
- [x] L1.6 本机出六个应用的四种包;Omarchy 上装 Arch 包与 AppImage 出窗口;deb、rpm 在各自发行版的容器里装上并冒烟;`linux-installed.sh`、`linux-distros.sh`、`linux-mark-idle.sh` — R1 deb/rpm 未运行、外部改动未核对显示;R2 内核未出图也过、OCR 大小写、清理竞态;R3 公式栏冒充网格、OCR 与 pgrep 错误被吞;R4 取色、存活、截图错误被吞;R5 hyprctl 查询失败被当作未出窗口(第五轮后修正并以注入失败核对)
|
||||
- [ ] L1.7 v0.1.3:删去旧 AppImage,上传新包;`ci.sh` 的 Linux 产出四种包;agents.md 与官网随之
|
||||
@@ -0,0 +1,5 @@
|
||||
FAIL
|
||||
|
||||
tests/scripts/linux-installed.sh:61 — L1.6 lacks the required Ubuntu/Fedora runtime smoke tests. `installed` runs the live Arch host’s binaries; `linux-packages.sh` only checks installation and linkage. In a copied ElyTree deb, replacing the main ELF with Ubuntu’s `/bin/false` makes startup exit 1 without a window, yet the package test still exits 0. Run the deb/rpm applications in their respective distro environments and verify successful startup and rendered content. Evidence: `.work/L1.6-r1/package-mutation-build.log` and `package-mutation.log`.
|
||||
|
||||
tests/scripts/linux-mark-idle.sh:84 — The external-edit assertion checks a log emitted before the new content is applied. A built ElyMark mutant that returns immediately after `changed outside` passes the entire script with exit 0 while its window still displays “Nothing moves.” instead of “Something moved.” Assert that the edited content actually reaches the document before checking the second idle period. Evidence: `.work/L1.6-r1/mark-mutation-evidence.log` and `mark-mutation-ocr.log`.
|
||||
@@ -0,0 +1,7 @@
|
||||
FAIL
|
||||
|
||||
tests/scripts/linux-common.sh:4 — Doc/Table assertions cannot detect a broken document renderer: `words` comes from Doc’s status bar and `Formula` from Table’s menu, while the log checks only require an opened document and no reported tile error. Built mutants that skip every document tile still pass both smoke cases with exit 0; Table shows no grid. Use document/cell fixtures with distinct content and assert that engine-rendered content reaches the window. Evidence: `.work/L1.6-r2/no-canvas-evidence.log` and `no-canvas.log`.
|
||||
|
||||
tests/scripts/linux-common.sh:56 — Case-sensitive OCR matching rejects correctly rendered ElyMark content. Both unmodified `installed` and `appimage` runs exit 1 because Tesseract returns `PaCKaged On Linux`, although the inspected screenshot clearly displays “Packaged on Linux”; an isolated repeat fails identically. Normalize OCR case or use an equally reliable content assertion while preserving OCR error reporting. Evidence: `.work/L1.6-r2/installed.log`, `appimage.log`, and `ocr-evidence.log`.
|
||||
|
||||
tests/scripts/linux-mark-idle.sh:33 — Cleanup deletes the temporary home immediately after signaling ElyMark, racing CEF’s profile writes; the failure trap in linux-installed.sh:25 has the same race. The unmodified idle test passes both zero-read checks and the external-edit screenshot assertion, then exits 1 with `web/Default: Directory not empty`, leaving profile files behind. Wait for the application and its CEF processes to finish before deleting their home. Evidence: `.work/L1.6-r2/mark-idle.log`; the AppImage run also records this cleanup error.
|
||||
@@ -0,0 +1,7 @@
|
||||
FAIL
|
||||
|
||||
tests/scripts/linux-common.sh:4 — Round 2's Table-rendering defect remains: the expected text is in selected cell A1, so the formula bar supplies the OCR match. A built probe that omits every document tile still passes the Table smoke case with exit 0, while the cell is visibly empty; Doc correctly rejects the same probe. Assert content inside the rendered grid, or use content absent from the formula bar. Evidence: `.work/L1.6-r3/no-canvas-table.log`, `no-canvas-evidence.log`, and `no-canvas-patch.log`.
|
||||
|
||||
tests/scripts/linux-mark-idle.sh:93 — Tesseract failures are discarded as ordinary OCR mismatches, with stderr suppressed. Injecting exit 42 on the first external-edit OCR attempt, then allowing normal OCR, makes the entire idle test exit 0 without reporting the tool error. Capture and check Tesseract's status and diagnostic output separately; retry only successful OCR that lacks the expected text. Evidence: `.work/L1.6-r3/ocr-first-failure.log` and `mark-idle-ocr-failure.log`.
|
||||
|
||||
tests/scripts/linux-common.sh:66 — Cleanup treats every nonzero `pgrep` status as proof that the application session has exited. With a live session that ignores TERM and an injected `pgrep` internal error (exit 3), `stop_app` returns success while the session remains alive; callers can then delete a home still used by the app or CEF, restoring the cleanup race under process-query failure. Treat only exit 1 as no matching processes and propagate other query failures. Evidence: `.work/L1.6-r3/stop-app-failure.log`.
|
||||
@@ -0,0 +1,7 @@
|
||||
FAIL
|
||||
|
||||
tests/scripts/linux-common.sh:88 — Color-extraction failures do not fail the smoke assertion. Injecting ImageMagick exit 42 for the red-channel extraction prints an arithmetic syntax error, but `judge` continues and returns 0, allowing both package smoke suites to pass without verifying the theme colors. Capture and check each `band` result before performing arithmetic. Evidence: `.work/L1.6-r4/band-error.log`.
|
||||
|
||||
tests/scripts/linux-mark-idle.sh:66 — The idle observation never checks whether ElyMark remains alive. Terminating its application session at the start of the second observation produces zero reads, prints both success messages and exits 0; the session is already gone. Check application liveness through each observation so an exited application cannot satisfy the idle assertion. Evidence: `.work/L1.6-r4/idle-exit-evidence.log` and `mark-idle-app-exit.log`.
|
||||
|
||||
tests/scripts/linux-mark-idle.sh:91 — A failed `grim` capture is treated as a readiness miss and retried without propagating its failure. Injecting exit 42 on the first capture, then allowing normal captures, makes the complete test exit 0. Separate waiting for a mapped window from capture execution, and fail with the capture diagnostic when `grim` returns nonzero. Evidence: `.work/L1.6-r4/mark-idle-grim-repeat.log` and `grim-probe-status.log`.
|
||||
@@ -0,0 +1,3 @@
|
||||
FAIL
|
||||
|
||||
tests/scripts/linux-installed.sh:46 — Window discovery ignores failed `hyprctl`/`jq` queries because `window` runs inside `id=$(window) || fail`, which disables Bash's automatic error exits throughout the function. Injecting exit 42 on the first `hyprctl clients` query still lets all six installed cases pass and the suite exit 0. Explicitly propagate a failed query pipeline; retry only successful queries that show no mapped window. Evidence: `.work/L1.6-r5/installed-hyprctl-error-repeat.log` and `window-query-error.log`.
|
||||
Reference in new issue
Block a user