Files
shturman/tests/e2e/run.sh
T
kk0t9 bc2c0b8cfd feat(harness): systemd-юниты + Lima-конфиг + E2E-харнесс (файлы)
systemd/ (target/data.mount/firstboot/machineid/power/settings/shell + dbus-policy + journald/zram/oomd):
ordering data.mount->firstboot->machineid->dbus->power+settings->shell; Requires+After firstboot; OOMScoreAdjust.
lima/shturman.yaml (vz, Ubuntu ARM64, /data loopback, провижининг). tests/e2e/run.sh (каркас приёмки).
justfile: vm-up/down/reset/shell, run, e2e, shell-frame. Валидация — часть 2 (поднятие Lima).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Signed-off-by: Alexander <akotenev2003@gmail.com>
2026-06-24 13:26:45 +03:00

55 lines
2.6 KiB
Bash

#!/usr/bin/env bash
# Сквозной E2E Штурмана в Lima-VM (приёмка v0.1/v0.6 + шагающий скелет, спека §9.3/§9.4).
# Запуск: just e2e (внутри VM через limactl shell). Системная шина устройства.
# Часть 2 Плана 5 — здесь финализируются weston-screenshot и калибровка eMMC-порога.
set -euo pipefail
REPO=/shturman
cd "$REPO"
echo "== сборка =="
cargo build --release --workspace
sudo install -m755 target/release/shturman-firstboot /usr/local/bin/
sudo install -m755 target/release/shturman-settings /usr/local/bin/
sudo install -m755 target/release/shturman-power /usr/local/bin/
sudo install -m755 target/release/shturman-shell /usr/local/bin/
echo "== старт target =="
sudo systemctl daemon-reload
sudo systemctl start shturman.target
sleep 3
fail() { echo "E2E FAIL: $*" >&2; exit 1; }
echo "== 1. /data смонтирован до сервисов, реальные опции =="
findmnt /data || fail "/data не смонтирован"
findmnt -no OPTIONS /data | grep -q errors=remount-ro || fail "нет errors=remount-ro"
echo "== 2. first-boot идемпотентен =="
test -f /data/.shturman-provisioned || fail "нет маркера provisioned"
test -f /data/state/machine-id || fail "нет machine-id"
echo "== 3. per-unit critical set active (не довольствуемся degraded) =="
for u in shturman-power shturman-settings shturman-shell; do
systemctl is-active --quiet "$u" || fail "$u не active"
done
echo "== 4. имена на системной шине =="
busctl --system list | grep -q ru.shturman.Power || fail "нет ru.shturman.Power"
busctl --system list | grep -q ru.shturman.Settings || fail "нет ru.shturman.Settings"
echo "== 5. fake-ACC: SetAcc -> AccChanged =="
# (подписка+вызов dev.PowerMock1; реализация ассерта — busctl monitor/call, финал в части 2)
echo "== 6. персист настроек через reboot + machine-id стабилен =="
# (Settings.Set -> sudo reboot -> повторный прогон сверяет; оформляется в части 2)
echo "== 7. первый кадр (software-render PNG не пустой) =="
# (weston headless + shturman-shell + screenshot; финал — часть 2)
echo "== 8. база: journald volatile / zram / eMMC-прокси =="
journalctl --header 2>/dev/null | grep -qi volatile || echo "WARN: journald не volatile?"
zramctl | grep -q zram0 || echo "WARN: zram0 не активен?"
echo "E2E OK (каркас; пункты 5–7 финализируются в части 2)"