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>
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
#!/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)"
|
||||
Reference in New Issue
Block a user