Skip to content

Commit 5564ac9

Browse files
committed
Test LightDM handles a greeter crash
1 parent d19c134 commit 5564ac9

File tree

4 files changed

+38
-1
lines changed

4 files changed

+38
-1
lines changed

tests/Makefile.am

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ TESTS = \
55
test-greeter-fail-start \
66
test-greeter-not-installed \
77
test-greeter-xserver-crash \
8+
test-greeter-crash \
89
test-greeter-wrapper \
910
test-greeter-default-session \
1011
test-greeter-allow-guest \
@@ -342,6 +343,7 @@ EXTRA_DIST = \
342343
scripts/denied.conf \
343344
scripts/expired.conf \
344345
scripts/greeter-allow-guest.conf \
346+
scripts/greeter-crash.conf \
345347
scripts/greeter-default-session.conf \
346348
scripts/greeter-fail-start.conf \
347349
scripts/greeter-hide-users.conf \

tests/scripts/greeter-crash.conf

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
#
2+
# Check crashing greeter stops daemon
3+
#
4+
5+
#?*START-DAEMON
6+
#?RUNNER DAEMON-START
7+
8+
# X server starts
9+
#?XSERVER-0 START VT=7 SEAT=seat0
10+
11+
# Daemon connects when X server is ready
12+
#?*XSERVER-0 INDICATE-READY
13+
#?XSERVER-0 INDICATE-READY
14+
#?XSERVER-0 ACCEPT-CONNECT
15+
16+
# Greeter starts
17+
#?GREETER-X-0 START XDG_SEAT=seat0 XDG_VTNR=7 XDG_SESSION_CLASS=greeter
18+
#?XSERVER-0 ACCEPT-CONNECT
19+
#?GREETER-X-0 CONNECT-XSERVER
20+
#?GREETER-X-0 CONNECT-TO-DAEMON
21+
#?GREETER-X-0 CONNECTED-TO-DAEMON
22+
23+
# Crash greeter
24+
#?*GREETER-X-0 CRASH
25+
26+
# X server stopped
27+
#?XSERVER-0 TERMINATE SIGNAL=15
28+
29+
# Daemon stops with error
30+
#?RUNNER DAEMON-EXIT STATUS=1

tests/src/test-gobject-greeter.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,10 @@ request_cb (const gchar *name, GHashTable *params)
7979
return;
8080
}
8181

82-
if (strcmp (name, "AUTHENTICATE") == 0)
82+
if (strcmp (name, "CRASH") == 0)
83+
kill (getpid (), SIGSEGV);
84+
85+
else if (strcmp (name, "AUTHENTICATE") == 0)
8386
lightdm_greeter_authenticate (greeter, g_hash_table_lookup (params, "USERNAME"));
8487

8588
else if (strcmp (name, "AUTHENTICATE-GUEST") == 0)

tests/test-greeter-crash

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
#!/bin/sh
2+
./src/dbus-env ./src/test-runner greeter-crash test-gobject-greeter

0 commit comments

Comments
 (0)