Skip to content

Commit 4e76efc

Browse files
committed
Fix e2e: disable X access control on Xvfb, improve test diagnostics
Xvfb started as root denied xdotool connections from pi user. Add -ac flag to disable X access control so any local user can connect. Also add -L (follow redirects) to lighttpd curl checks and improve diagnostic output for both failing tests.
1 parent b52f1b3 commit 4e76efc

File tree

3 files changed

+26
-6
lines changed

3 files changed

+26
-6
lines changed

testing/hooks/post-boot.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ echo "Installing Xvfb and x11-apps..."
88
$SSH_CMD "sudo apt-get update -qq && sudo DEBIAN_FRONTEND=noninteractive apt-get install -y -qq xvfb x11-apps 2>&1 | tail -5"
99

1010
echo "Starting Xvfb virtual display..."
11-
$SSH_CMD "sudo nohup Xvfb :0 -screen 0 1280x720x24 > /tmp/xvfb.log 2>&1 < /dev/null &"
11+
$SSH_CMD "sudo nohup Xvfb :0 -screen 0 1280x720x24 -ac > /tmp/xvfb.log 2>&1 < /dev/null &"
1212
sleep 3
1313

1414
echo "Verifying Xvfb is running..."

testing/tests/test_chromium.sh

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,18 @@ if [ -n "$ARTIFACTS_DIR" ]; then
4242
fi
4343

4444
if [ -z "$WINDOW_TITLE" ]; then
45-
echo " FAIL: No visible window on X display (display pipeline not working)"
45+
echo " No windows found with --onlyvisible, trying without visibility filter..."
46+
WINDOW_TITLE=$($SSH_CMD "DISPLAY=:0 xdotool search --name . getwindowname 2>&1 || true" 2>/dev/null)
47+
if [ -n "$ARTIFACTS_DIR" ]; then
48+
echo "$WINDOW_TITLE" > "$ARTIFACTS_DIR/window-title.txt" 2>/dev/null || true
49+
fi
50+
fi
51+
52+
if [ -z "$WINDOW_TITLE" ]; then
53+
echo " Diagnosing X display access..."
54+
$SSH_CMD "DISPLAY=:0 xdpyinfo 2>&1 | head -5 || echo 'xdpyinfo failed'" 2>/dev/null || true
55+
$SSH_CMD "DISPLAY=:0 xdotool search --name . 2>&1 || echo 'xdotool search failed'" 2>/dev/null || true
56+
echo " FAIL: No window on X display (display pipeline not working)"
4657
exit 1
4758
fi
4859

testing/tests/test_lighttpd.sh

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,22 +15,31 @@ DASHBOARD_URL="http://localhost/FullPageDashboard"
1515

1616
LIGHTTPD_READY=0
1717
for i in $(seq 1 60); do
18-
HTTP_CODE=$($SSH_CMD "curl -s -o /dev/null -w '%{http_code}' '$DASHBOARD_URL'" 2>/dev/null || echo "000")
18+
HTTP_CODE=$($SSH_CMD "curl -sL -o /dev/null -w '%{http_code}' '$DASHBOARD_URL'" 2>/dev/null || echo "000")
1919
if [ "$HTTP_CODE" = "200" ]; then
2020
LIGHTTPD_READY=1
2121
break
2222
fi
23-
printf "."
23+
if [ "$((i % 12))" -eq 0 ]; then
24+
echo " (HTTP $HTTP_CODE after ${i}x5s)"
25+
$SSH_CMD "systemctl is-active lighttpd || true" 2>/dev/null || true
26+
$SSH_CMD "curl -sL -o /dev/null -w 'root=%{http_code}' http://localhost/ || true" 2>/dev/null || true
27+
echo ""
28+
else
29+
printf "."
30+
fi
2431
sleep 5
2532
done
2633
echo ""
2734

2835
if [ "$LIGHTTPD_READY" -eq 0 ]; then
29-
echo " FAIL: FullPageDashboard did not return HTTP 200 within 300s"
36+
echo " FAIL: FullPageDashboard did not return HTTP 200 within 300s (last code: $HTTP_CODE)"
37+
$SSH_CMD "curl -sLI '$DASHBOARD_URL' 2>/dev/null | head -10" 2>/dev/null || true
38+
$SSH_CMD "ls -la /var/www/html/FullPageDashboard/ 2>/dev/null || echo 'FullPageDashboard dir not found'" 2>/dev/null || true
3039
exit 1
3140
fi
3241

33-
BODY=$($SSH_CMD "curl -s '$DASHBOARD_URL'" 2>/dev/null)
42+
BODY=$($SSH_CMD "curl -sL '$DASHBOARD_URL'" 2>/dev/null)
3443

3544
if [ -n "$ARTIFACTS_DIR" ]; then
3645
echo "$BODY" > "$ARTIFACTS_DIR/lighttpd-index.html" 2>/dev/null || true

0 commit comments

Comments
 (0)