new chatlistview component, file attachments, performance & primitive test
This commit is contained in:
Executable
+64
@@ -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
|
||||
Reference in New Issue
Block a user