new chatlistview component, file attachments, performance & primitive test

This commit is contained in:
2026-09-30 15:01:28 +02:00
parent 51ed270774
commit d8a3d5732e
36 changed files with 4368 additions and 310 deletions
+64
View File
@@ -0,0 +1,64 @@
#!/usr/bin/env bash
set -u
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
DURATION="${1:-${QS_SMOKE_DURATION:-10}}"
QML_IMPORT_PATH="${QML_IMPORT_PATH:-$ROOT/build/qml}"
if [ ! -d "$QML_IMPORT_PATH/ZShell" ]; then
echo "error: no ZShell plugin at $QML_IMPORT_PATH/ZShell"
echo "build the project first: cmake --build build"
exit 2
fi
OUT="$(mktemp /tmp/zshell-smoke.XXXXXX)"
trap 'rm -f "$OUT"' EXIT
echo "booting shell for ${DURATION}s (a second bar will be visible)"
env QT_QPA_PLATFORM=wayland QML_IMPORT_PATH="$QML_IMPORT_PATH" \
qs --no-color -p "$ROOT/shell.qml" >"$OUT" 2>&1 &
CLI_PID=$!
IID=""
for _ in $(seq 1 100); do
IID="$(sed -nE 's|.*by-id/([a-z0-9]+)/log\.qslog.*|\1|p' "$OUT" | head -1)"
[ -n "$IID" ] && break
kill -0 "$CLI_PID" 2>/dev/null || break
sleep 0.2
done
if [ -z "$IID" ]; then
echo "FAIL: shell did not start"
cat "$OUT"
exit 2
fi
sleep "$DURATION"
qs kill -i "$IID" >/dev/null 2>&1
if qs list --all 2>/dev/null | grep -q "Instance $IID"; then
PID="$(qs list --all 2>/dev/null | awk -v id="$IID" '
/^Instance /{cur = $2}
cur == id && /Process ID:/{print $3}')"
[ -n "$PID" ] && kill "$PID" 2>/dev/null
fi
wait "$CLI_PID" 2>/dev/null
ERRORS="$(grep -aE '^[[:space:]]*ERROR' "$OUT" || true)"
if [ -n "$ERRORS" ]; then
echo
echo "FAIL: QML errors detected"
echo "$ERRORS"
exit 1
fi
WARNINGS="$(grep -aE '^[[:space:]]*WARN' "$OUT" | sed -E 's/^[[:space:]]*WARN[[:space:]]*//' | sort | uniq -c | sort -rn || true)"
echo
if [ -n "$WARNINGS" ]; then
echo "PASS: no errors (${DURATION}s boot). Non-fatal warnings:"
echo "$WARNINGS"
else
echo "PASS: no errors or warnings (${DURATION}s boot)."
fi
exit 0