Merge lp:~robert-ancell/lightdm/session-lock-regression into lp:lightdm

Proposed by Robert Ancell
Status: Merged
Approved by: Robert Ancell
Approved revision: 1752
Merged at revision: 1750
Proposed branch: lp:~robert-ancell/lightdm/session-lock-regression
Merge into: lp:lightdm
Diff against target: 710 lines (+303/-20)
25 files modified
src/seat.c (+28/-0)
src/session.c (+4/-4)
tests/Makefile.am (+4/-0)
tests/scripts/lock-seat-console-kit.conf (+59/-0)
tests/scripts/lock-seat-return-session-console-kit.conf (+74/-0)
tests/scripts/lock-seat-return-session.conf (+6/-0)
tests/scripts/lock-seat.conf (+3/-0)
tests/scripts/lock-session-no-password.conf (+3/-0)
tests/scripts/lock-session-return-session.conf (+6/-0)
tests/scripts/lock-session.conf (+3/-0)
tests/scripts/switch-to-greeter-new-session-logout-new.conf (+3/-0)
tests/scripts/switch-to-greeter-new-session-logout-old.conf (+12/-3)
tests/scripts/switch-to-greeter-new-session.conf (+3/-0)
tests/scripts/switch-to-greeter-return-session-logout.conf (+6/-0)
tests/scripts/switch-to-greeter-return-session.conf (+6/-0)
tests/scripts/switch-to-greeter.conf (+3/-0)
tests/scripts/switch-to-guest.conf (+3/-0)
tests/scripts/switch-to-user-logout.conf (+3/-0)
tests/scripts/switch-to-user-no-password.conf (+3/-0)
tests/scripts/switch-to-user.conf (+3/-0)
tests/scripts/switch-to-users.conf (+6/-0)
tests/scripts/unity-switch.conf (+3/-0)
tests/src/test-runner.c (+55/-13)
tests/test-lock-seat-console-kit (+2/-0)
tests/test-lock-seat-return-session-console-kit (+2/-0)
To merge this branch: bzr merge lp:~robert-ancell/lightdm/session-lock-regression
Reviewer Review Type Date Requested Status
Robert Ancell Approve
PS Jenkins bot continuous-integration Approve
Review via email: mp+179145@code.launchpad.net

Commit message

Fix session locking broken in 1.7.5

To post a comment you must log in.
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :

PASSED: Continuous integration, rev:1752
http://jenkins.qa.ubuntu.com/job/lightdm-ci/153/
Executed test runs:
    SUCCESS: http://jenkins.qa.ubuntu.com/job/lightdm-saucy-amd64-ci/69

Click here to trigger a rebuild:
http://s-jenkins:8080/job/lightdm-ci/153/rebuild

review: Approve (continuous-integration)
Revision history for this message
Robert Ancell (robert-ancell) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'src/seat.c'
--- src/seat.c 2013-07-30 14:04:44 +0000
+++ src/seat.c 2013-08-08 10:11:25 +0000
@@ -45,6 +45,9 @@
45 /* The sessions on this seat */45 /* The sessions on this seat */
46 GList *sessions;46 GList *sessions;
4747
48 /* The last session set to active */
49 Session *active_session;
50
48 /* The session to set active when it starts */51 /* The session to set active when it starts */
49 Session *session_to_activate;52 Session *session_to_activate;
50 53
@@ -179,6 +182,10 @@
179182
180 g_return_if_fail (seat != NULL);183 g_return_if_fail (seat != NULL);
181184
185 /* Unlock this session */
186 if (session != seat->priv->active_session && !IS_GREETER (session))
187 session_unlock (session);
188
182 SEAT_GET_CLASS (seat)->set_active_session (seat, session);189 SEAT_GET_CLASS (seat)->set_active_session (seat, session);
183190
184 /* Stop any greeters */191 /* Stop any greeters */
@@ -195,6 +202,15 @@
195 session_stop (s);202 session_stop (s);
196 }203 }
197 }204 }
205
206 /* Lock previous sessions */
207 if (seat->priv->active_session)
208 {
209 if (session != seat->priv->active_session && !IS_GREETER (seat->priv->active_session))
210 session_lock (seat->priv->active_session);
211 g_object_unref (seat->priv->active_session);
212 }
213 seat->priv->active_session = g_object_ref (session);
198}214}
199215
200Session *216Session *
@@ -503,6 +519,16 @@
503519
504 g_signal_handlers_disconnect_matched (session, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, seat);520 g_signal_handlers_disconnect_matched (session, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, seat);
505 seat->priv->sessions = g_list_remove (seat->priv->sessions, session);521 seat->priv->sessions = g_list_remove (seat->priv->sessions, session);
522 if (session == seat->priv->active_session)
523 {
524 g_object_unref (seat->priv->active_session);
525 seat->priv->active_session = NULL;
526 }
527 if (session == seat->priv->session_to_activate)
528 {
529 g_object_unref (seat->priv->session_to_activate);
530 seat->priv->session_to_activate = NULL;
531 }
506532
507 display_server = session_get_display_server (session);533 display_server = session_get_display_server (session);
508 if (!display_server)534 if (!display_server)
@@ -1535,6 +1561,8 @@
1535 g_signal_handlers_disconnect_matched (session, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, self);1561 g_signal_handlers_disconnect_matched (session, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, self);
1536 }1562 }
1537 g_list_free_full (self->priv->sessions, g_object_unref);1563 g_list_free_full (self->priv->sessions, g_object_unref);
1564 if (self->priv->active_session)
1565 g_object_unref (self->priv->active_session);
1538 if (self->priv->session_to_activate)1566 if (self->priv->session_to_activate)
1539 g_object_unref (self->priv->session_to_activate);1567 g_object_unref (self->priv->session_to_activate);
15401568
15411569
=== modified file 'src/session.c'
--- src/session.c 2013-07-26 02:27:41 +0000
+++ src/session.c 2013-08-08 10:11:25 +0000
@@ -780,9 +780,9 @@
780 g_return_if_fail (session != NULL);780 g_return_if_fail (session != NULL);
781 if (getuid () == 0)781 if (getuid () == 0)
782 {782 {
783 if (login1_is_running ())783 if (session->priv->login1_session)
784 login1_lock_session (session->priv->login1_session);784 login1_lock_session (session->priv->login1_session);
785 if (!session->priv->login1_session)785 else if (session->priv->console_kit_cookie)
786 ck_lock_session (session->priv->console_kit_cookie);786 ck_lock_session (session->priv->console_kit_cookie);
787 }787 }
788}788}
@@ -793,9 +793,9 @@
793 g_return_if_fail (session != NULL);793 g_return_if_fail (session != NULL);
794 if (getuid () == 0)794 if (getuid () == 0)
795 {795 {
796 if (login1_is_running ())796 if (session->priv->login1_session)
797 login1_unlock_session (session->priv->login1_session);797 login1_unlock_session (session->priv->login1_session);
798 if (!session->priv->login1_session)798 else if (session->priv->console_kit_cookie)
799 ck_unlock_session (session->priv->console_kit_cookie);799 ck_unlock_session (session->priv->console_kit_cookie);
800 }800 }
801}801}
802802
=== modified file 'tests/Makefile.am'
--- tests/Makefile.am 2013-07-30 16:11:22 +0000
+++ tests/Makefile.am 2013-08-08 10:11:25 +0000
@@ -106,6 +106,8 @@
106 test-lock-session \106 test-lock-session \
107 test-lock-session-no-password \107 test-lock-session-no-password \
108 test-lock-session-return-session \108 test-lock-session-return-session \
109 test-lock-seat-console-kit \
110 test-lock-seat-return-session-console-kit \
109 test-switch-to-greeter \111 test-switch-to-greeter \
110 test-switch-to-greeter-new-session \112 test-switch-to-greeter-new-session \
111 test-switch-to-greeter-new-session-logout-new \113 test-switch-to-greeter-new-session-logout-new \
@@ -321,7 +323,9 @@
321 scripts/language-env.conf \323 scripts/language-env.conf \
322 scripts/language-no-accounts-service.conf \324 scripts/language-no-accounts-service.conf \
323 scripts/lock-seat.conf \325 scripts/lock-seat.conf \
326 scripts/lock-seat-console-kit.conf \
324 scripts/lock-seat-return-session.conf \327 scripts/lock-seat-return-session.conf \
328 scripts/lock-seat-return-session-console-kit.conf \
325 scripts/lock-session.conf \329 scripts/lock-session.conf \
326 scripts/lock-session-no-password.conf \330 scripts/lock-session-no-password.conf \
327 scripts/lock-session-return-session.conf \331 scripts/lock-session-return-session.conf \
328332
=== added file 'tests/scripts/lock-seat-console-kit.conf'
--- tests/scripts/lock-seat-console-kit.conf 1970-01-01 00:00:00 +0000
+++ tests/scripts/lock-seat-console-kit.conf 2013-08-08 10:11:25 +0000
@@ -0,0 +1,59 @@
1#
2# Check can lock a seat from D-Bus using ConsoleKit
3#
4
5[test-runner-config]
6disable-login1=true
7
8[SeatDefaults]
9autologin-user=have-password1
10user-session=default
11
12#?RUNNER DAEMON-START
13
14# X server starts
15#?XSERVER-0 START VT=7
16
17# Daemon connects when X server is ready
18#?*XSERVER-0 INDICATE-READY
19#?XSERVER-0 INDICATE-READY
20#?XSERVER-0 ACCEPT-CONNECT
21
22# Session starts
23#?SESSION-X-0 START XDG_SEAT=seat0 XDG_VTNR=7 XDG_SESSION_COOKIE=ck-cookie-x:0 USER=have-password1
24#?XSERVER-0 ACCEPT-CONNECT
25#?SESSION-X-0 CONNECT-XSERVER
26
27# Lock the seat
28#?*SESSION-X-0 LOCK-SEAT
29#?SESSION-X-0 LOCK-SEAT
30
31# New X server starts
32#?XSERVER-1 START VT=8
33
34# Daemon connects when X server is ready
35#?*XSERVER-1 INDICATE-READY
36#?XSERVER-1 INDICATE-READY
37#?XSERVER-1 ACCEPT-CONNECT
38
39# Session is locked
40#?CONSOLE-KIT LOCK-SESSION
41
42# Greeter starts
43#?GREETER-X-1 START XDG_SEAT=seat0 XDG_VTNR=8 XDG_SESSION_COOKIE=ck-cookie-x:1
44#?XSERVER-1 ACCEPT-CONNECT
45#?GREETER-X-1 CONNECT-XSERVER
46#?GREETER-X-1 CONNECT-TO-DAEMON
47#?GREETER-X-1 CONNECTED-TO-DAEMON
48#?GREETER-X-1 LOCK-HINT
49
50# Switch to greeter
51#?VT ACTIVATE VT=8
52
53# Cleanup
54#?*STOP-DAEMON
55#?SESSION-X-0 TERMINATE SIGNAL=15
56#?XSERVER-0 TERMINATE SIGNAL=15
57#?GREETER-X-1 TERMINATE SIGNAL=15
58#?XSERVER-1 TERMINATE SIGNAL=15
59#?RUNNER DAEMON-EXIT STATUS=0
060
=== added file 'tests/scripts/lock-seat-return-session-console-kit.conf'
--- tests/scripts/lock-seat-return-session-console-kit.conf 1970-01-01 00:00:00 +0000
+++ tests/scripts/lock-seat-return-session-console-kit.conf 2013-08-08 10:11:25 +0000
@@ -0,0 +1,74 @@
1#
2# Check can lock a seat from D-Bus and can return to it when using ConsoleKit
3#
4
5[test-runner-config]
6disable-login1=true
7
8[SeatDefaults]
9autologin-user=have-password1
10user-session=default
11
12#?RUNNER DAEMON-START
13
14# X server starts
15#?XSERVER-0 START VT=7
16
17# Daemon connects when X server is ready
18#?*XSERVER-0 INDICATE-READY
19#?XSERVER-0 INDICATE-READY
20#?XSERVER-0 ACCEPT-CONNECT
21
22# Session starts
23#?SESSION-X-0 START XDG_SEAT=seat0 XDG_VTNR=7 XDG_SESSION_COOKIE=ck-cookie-x:0 USER=have-password1
24#?XSERVER-0 ACCEPT-CONNECT
25#?SESSION-X-0 CONNECT-XSERVER
26
27# Lock the seat
28#?*SESSION-X-0 LOCK-SEAT
29#?SESSION-X-0 LOCK-SEAT
30
31# New X server starts
32#?XSERVER-1 START VT=8
33
34# Daemon connects when X server is ready
35#?*XSERVER-1 INDICATE-READY
36#?XSERVER-1 INDICATE-READY
37#?XSERVER-1 ACCEPT-CONNECT
38
39# Session is locked
40#?CONSOLE-KIT LOCK-SESSION
41
42# Greeter starts
43#?GREETER-X-1 START XDG_SEAT=seat0 XDG_VTNR=8 XDG_SESSION_COOKIE=ck-cookie-x:1
44#?XSERVER-1 ACCEPT-CONNECT
45#?GREETER-X-1 CONNECT-XSERVER
46#?GREETER-X-1 CONNECT-TO-DAEMON
47#?GREETER-X-1 CONNECTED-TO-DAEMON
48#?GREETER-X-1 LOCK-HINT
49
50# Switch to greeter
51#?VT ACTIVATE VT=8
52
53# Login as existing user
54#?*GREETER-X-1 AUTHENTICATE USERNAME=have-password1
55#?GREETER-X-1 SHOW-PROMPT TEXT="Password:"
56#?*GREETER-X-1 RESPOND TEXT="password"
57#?GREETER-X-1 AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=TRUE
58#?*GREETER-X-1 START-SESSION
59
60# Old session is unlocked
61#?CONSOLE-KIT UNLOCK-SESSION
62
63# Return to session
64#?VT ACTIVATE VT=7
65
66# Greeter and X server stop
67#?GREETER-X-1 TERMINATE SIGNAL=15
68#?XSERVER-1 TERMINATE SIGNAL=15
69
70# Cleanup
71#?*STOP-DAEMON
72#?SESSION-X-0 TERMINATE SIGNAL=15
73#?XSERVER-0 TERMINATE SIGNAL=15
74#?RUNNER DAEMON-EXIT STATUS=0
075
=== modified file 'tests/scripts/lock-seat-return-session.conf'
--- tests/scripts/lock-seat-return-session.conf 2013-07-30 16:11:22 +0000
+++ tests/scripts/lock-seat-return-session.conf 2013-08-08 10:11:25 +0000
@@ -33,6 +33,9 @@
33#?XSERVER-1 INDICATE-READY33#?XSERVER-1 INDICATE-READY
34#?XSERVER-1 ACCEPT-CONNECT34#?XSERVER-1 ACCEPT-CONNECT
3535
36# Session is locked
37#?LOGIN1 LOCK-SESSION
38
36# Greeter starts39# Greeter starts
37#?GREETER-X-1 START XDG_SEAT=seat0 XDG_VTNR=840#?GREETER-X-1 START XDG_SEAT=seat0 XDG_VTNR=8
38#?XSERVER-1 ACCEPT-CONNECT41#?XSERVER-1 ACCEPT-CONNECT
@@ -51,6 +54,9 @@
51#?GREETER-X-1 AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=TRUE54#?GREETER-X-1 AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=TRUE
52#?*GREETER-X-1 START-SESSION55#?*GREETER-X-1 START-SESSION
5356
57# Old session is unlocked
58#?LOGIN1 UNLOCK-SESSION
59
54# Return to session60# Return to session
55#?VT ACTIVATE VT=761#?VT ACTIVATE VT=7
5662
5763
=== modified file 'tests/scripts/lock-seat.conf'
--- tests/scripts/lock-seat.conf 2013-07-30 16:11:22 +0000
+++ tests/scripts/lock-seat.conf 2013-08-08 10:11:25 +0000
@@ -33,6 +33,9 @@
33#?XSERVER-1 INDICATE-READY33#?XSERVER-1 INDICATE-READY
34#?XSERVER-1 ACCEPT-CONNECT34#?XSERVER-1 ACCEPT-CONNECT
3535
36# Session is locked
37#?LOGIN1 LOCK-SESSION
38
36# Greeter starts39# Greeter starts
37#?GREETER-X-1 START XDG_SEAT=seat0 XDG_VTNR=840#?GREETER-X-1 START XDG_SEAT=seat0 XDG_VTNR=8
38#?XSERVER-1 ACCEPT-CONNECT41#?XSERVER-1 ACCEPT-CONNECT
3942
=== modified file 'tests/scripts/lock-session-no-password.conf'
--- tests/scripts/lock-session-no-password.conf 2013-07-30 16:11:22 +0000
+++ tests/scripts/lock-session-no-password.conf 2013-08-08 10:11:25 +0000
@@ -33,6 +33,9 @@
33#?XSERVER-1 INDICATE-READY33#?XSERVER-1 INDICATE-READY
34#?XSERVER-1 ACCEPT-CONNECT34#?XSERVER-1 ACCEPT-CONNECT
3535
36# Session is locked
37#?LOGIN1 LOCK-SESSION
38
36# Greeter starts with session user selected39# Greeter starts with session user selected
37#?GREETER-X-1 START XDG_SEAT=seat0 XDG_VTNR=840#?GREETER-X-1 START XDG_SEAT=seat0 XDG_VTNR=8
38#?XSERVER-1 ACCEPT-CONNECT41#?XSERVER-1 ACCEPT-CONNECT
3942
=== modified file 'tests/scripts/lock-session-return-session.conf'
--- tests/scripts/lock-session-return-session.conf 2013-07-30 16:11:22 +0000
+++ tests/scripts/lock-session-return-session.conf 2013-08-08 10:11:25 +0000
@@ -45,6 +45,9 @@
45# Switch to greeter45# Switch to greeter
46#?VT ACTIVATE VT=846#?VT ACTIVATE VT=8
4747
48# Session is locked
49#?LOGIN1 LOCK-SESSION
50
48# Login as existing user51# Login as existing user
49#?*GREETER-X-1 AUTHENTICATE USERNAME=have-password152#?*GREETER-X-1 AUTHENTICATE USERNAME=have-password1
50#?GREETER-X-1 SHOW-PROMPT TEXT="Password:"53#?GREETER-X-1 SHOW-PROMPT TEXT="Password:"
@@ -52,6 +55,9 @@
52#?GREETER-X-1 AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=TRUE55#?GREETER-X-1 AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=TRUE
53#?*GREETER-X-1 START-SESSION56#?*GREETER-X-1 START-SESSION
5457
58# Existing session is unlocked
59#?LOGIN1 UNLOCK-SESSION
60
55# Return to session61# Return to session
56#?VT ACTIVATE VT=762#?VT ACTIVATE VT=7
5763
5864
=== modified file 'tests/scripts/lock-session.conf'
--- tests/scripts/lock-session.conf 2013-07-30 16:11:22 +0000
+++ tests/scripts/lock-session.conf 2013-08-08 10:11:25 +0000
@@ -33,6 +33,9 @@
33#?XSERVER-1 INDICATE-READY33#?XSERVER-1 INDICATE-READY
34#?XSERVER-1 ACCEPT-CONNECT34#?XSERVER-1 ACCEPT-CONNECT
3535
36# Session is locked
37#?LOGIN1 LOCK-SESSION
38
36# Greeter starts with session user selected39# Greeter starts with session user selected
37#?GREETER-X-1 START XDG_SEAT=seat0 XDG_VTNR=840#?GREETER-X-1 START XDG_SEAT=seat0 XDG_VTNR=8
38#?XSERVER-1 ACCEPT-CONNECT41#?XSERVER-1 ACCEPT-CONNECT
3942
=== modified file 'tests/scripts/switch-to-greeter-new-session-logout-new.conf'
--- tests/scripts/switch-to-greeter-new-session-logout-new.conf 2013-07-30 16:11:22 +0000
+++ tests/scripts/switch-to-greeter-new-session-logout-new.conf 2013-08-08 10:11:25 +0000
@@ -33,6 +33,9 @@
33#?XSERVER-1 INDICATE-READY33#?XSERVER-1 INDICATE-READY
34#?XSERVER-1 ACCEPT-CONNECT34#?XSERVER-1 ACCEPT-CONNECT
3535
36# Session is locked
37#?LOGIN1 LOCK-SESSION
38
36# Greeter starts39# Greeter starts
37#?GREETER-X-1 START XDG_SEAT=seat0 XDG_VTNR=840#?GREETER-X-1 START XDG_SEAT=seat0 XDG_VTNR=8
38#?XSERVER-1 ACCEPT-CONNECT41#?XSERVER-1 ACCEPT-CONNECT
3942
=== modified file 'tests/scripts/switch-to-greeter-new-session-logout-old.conf'
--- tests/scripts/switch-to-greeter-new-session-logout-old.conf 2013-07-30 16:11:22 +0000
+++ tests/scripts/switch-to-greeter-new-session-logout-old.conf 2013-08-08 10:11:25 +0000
@@ -33,6 +33,9 @@
33#?XSERVER-1 INDICATE-READY33#?XSERVER-1 INDICATE-READY
34#?XSERVER-1 ACCEPT-CONNECT34#?XSERVER-1 ACCEPT-CONNECT
3535
36# Session is locked
37#?LOGIN1 LOCK-SESSION
38
36# Greeter starts39# Greeter starts
37#?GREETER-X-1 START XDG_SEAT=seat0 XDG_VTNR=840#?GREETER-X-1 START XDG_SEAT=seat0 XDG_VTNR=8
38#?XSERVER-1 ACCEPT-CONNECT41#?XSERVER-1 ACCEPT-CONNECT
@@ -60,6 +63,15 @@
60#?*SWITCH-TO-USER USERNAME=have-password163#?*SWITCH-TO-USER USERNAME=have-password1
61#?RUNNER SWITCH-TO-USER USERNAME=have-password164#?RUNNER SWITCH-TO-USER USERNAME=have-password1
6265
66# Existing session is unlocked
67#?LOGIN1 UNLOCK-SESSION
68
69# Switch to greeter
70#?VT ACTIVATE VT=7
71
72# Session is locked
73#?LOGIN1 LOCK-SESSION
74
63# Logout of old session75# Logout of old session
64#?*SESSION-X-0 LOGOUT76#?*SESSION-X-0 LOGOUT
65#?XSERVER-0 TERMINATE SIGNAL=1577#?XSERVER-0 TERMINATE SIGNAL=15
@@ -77,9 +89,6 @@
77#?GREETER-X-0 CONNECT-TO-DAEMON89#?GREETER-X-0 CONNECT-TO-DAEMON
78#?GREETER-X-0 CONNECTED-TO-DAEMON90#?GREETER-X-0 CONNECTED-TO-DAEMON
7991
80# Switch to greeter
81#?VT ACTIVATE VT=7
82
83# Cleanup92# Cleanup
84#?*STOP-DAEMON93#?*STOP-DAEMON
85#?GREETER-X-0 TERMINATE SIGNAL=1594#?GREETER-X-0 TERMINATE SIGNAL=15
8695
=== modified file 'tests/scripts/switch-to-greeter-new-session.conf'
--- tests/scripts/switch-to-greeter-new-session.conf 2013-07-30 16:11:22 +0000
+++ tests/scripts/switch-to-greeter-new-session.conf 2013-08-08 10:11:25 +0000
@@ -33,6 +33,9 @@
33#?XSERVER-1 INDICATE-READY33#?XSERVER-1 INDICATE-READY
34#?XSERVER-1 ACCEPT-CONNECT34#?XSERVER-1 ACCEPT-CONNECT
3535
36# Session is locked
37#?LOGIN1 LOCK-SESSION
38
36# Greeter starts39# Greeter starts
37#?GREETER-X-1 START XDG_SEAT=seat0 XDG_VTNR=840#?GREETER-X-1 START XDG_SEAT=seat0 XDG_VTNR=8
38#?XSERVER-1 ACCEPT-CONNECT41#?XSERVER-1 ACCEPT-CONNECT
3942
=== modified file 'tests/scripts/switch-to-greeter-return-session-logout.conf'
--- tests/scripts/switch-to-greeter-return-session-logout.conf 2013-07-30 16:11:22 +0000
+++ tests/scripts/switch-to-greeter-return-session-logout.conf 2013-08-08 10:11:25 +0000
@@ -33,6 +33,9 @@
33#?XSERVER-1 INDICATE-READY33#?XSERVER-1 INDICATE-READY
34#?XSERVER-1 ACCEPT-CONNECT34#?XSERVER-1 ACCEPT-CONNECT
3535
36# Session is locked
37#?LOGIN1 LOCK-SESSION
38
36# Greeter starts39# Greeter starts
37#?GREETER-X-1 START XDG_SEAT=seat0 XDG_VTNR=840#?GREETER-X-1 START XDG_SEAT=seat0 XDG_VTNR=8
38#?XSERVER-1 ACCEPT-CONNECT41#?XSERVER-1 ACCEPT-CONNECT
@@ -50,6 +53,9 @@
50#?GREETER-X-1 AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=TRUE53#?GREETER-X-1 AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=TRUE
51#?*GREETER-X-1 START-SESSION54#?*GREETER-X-1 START-SESSION
5255
56# Session is unlocked
57#?LOGIN1 UNLOCK-SESSION
58
53# Switch to session59# Switch to session
54#?VT ACTIVATE VT=760#?VT ACTIVATE VT=7
5561
5662
=== modified file 'tests/scripts/switch-to-greeter-return-session.conf'
--- tests/scripts/switch-to-greeter-return-session.conf 2013-07-30 16:11:22 +0000
+++ tests/scripts/switch-to-greeter-return-session.conf 2013-08-08 10:11:25 +0000
@@ -33,6 +33,9 @@
33#?XSERVER-1 INDICATE-READY33#?XSERVER-1 INDICATE-READY
34#?XSERVER-1 ACCEPT-CONNECT34#?XSERVER-1 ACCEPT-CONNECT
3535
36# Session is locked
37#?LOGIN1 LOCK-SESSION
38
36# Greeter starts39# Greeter starts
37#?GREETER-X-1 START XDG_SEAT=seat0 XDG_VTNR=840#?GREETER-X-1 START XDG_SEAT=seat0 XDG_VTNR=8
38#?XSERVER-1 ACCEPT-CONNECT41#?XSERVER-1 ACCEPT-CONNECT
@@ -50,6 +53,9 @@
50#?GREETER-X-1 AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=TRUE53#?GREETER-X-1 AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=TRUE
51#?*GREETER-X-1 START-SESSION54#?*GREETER-X-1 START-SESSION
5255
56# Session is unlocked
57#?LOGIN1 UNLOCK-SESSION
58
53# Switch to session59# Switch to session
54#?VT ACTIVATE VT=760#?VT ACTIVATE VT=7
5561
5662
=== modified file 'tests/scripts/switch-to-greeter.conf'
--- tests/scripts/switch-to-greeter.conf 2013-07-30 16:11:22 +0000
+++ tests/scripts/switch-to-greeter.conf 2013-08-08 10:11:25 +0000
@@ -33,6 +33,9 @@
33#?XSERVER-1 INDICATE-READY33#?XSERVER-1 INDICATE-READY
34#?XSERVER-1 ACCEPT-CONNECT34#?XSERVER-1 ACCEPT-CONNECT
3535
36# Session is locked
37#?LOGIN1 LOCK-SESSION
38
36# Greeter starts39# Greeter starts
37#?GREETER-X-1 START XDG_SEAT=seat0 XDG_VTNR=840#?GREETER-X-1 START XDG_SEAT=seat0 XDG_VTNR=8
38#?XSERVER-1 ACCEPT-CONNECT41#?XSERVER-1 ACCEPT-CONNECT
3942
=== modified file 'tests/scripts/switch-to-guest.conf'
--- tests/scripts/switch-to-guest.conf 2013-07-30 15:56:44 +0000
+++ tests/scripts/switch-to-guest.conf 2013-08-08 10:11:25 +0000
@@ -37,6 +37,9 @@
37#?XSERVER-1 INDICATE-READY37#?XSERVER-1 INDICATE-READY
38#?XSERVER-1 ACCEPT-CONNECT38#?XSERVER-1 ACCEPT-CONNECT
3939
40# Session is locked
41#?LOGIN1 LOCK-SESSION
42
40# Switch to session43# Switch to session
41#?VT ACTIVATE VT=844#?VT ACTIVATE VT=8
4245
4346
=== modified file 'tests/scripts/switch-to-user-logout.conf'
--- tests/scripts/switch-to-user-logout.conf 2013-07-30 16:11:22 +0000
+++ tests/scripts/switch-to-user-logout.conf 2013-08-08 10:11:25 +0000
@@ -34,6 +34,9 @@
34#?XSERVER-1 INDICATE-READY34#?XSERVER-1 INDICATE-READY
35#?XSERVER-1 ACCEPT-CONNECT35#?XSERVER-1 ACCEPT-CONNECT
3636
37# Session is locked
38#?LOGIN1 LOCK-SESSION
39
37# Switch to session40# Switch to session
38#?VT ACTIVATE VT=841#?VT ACTIVATE VT=8
3942
4043
=== modified file 'tests/scripts/switch-to-user-no-password.conf'
--- tests/scripts/switch-to-user-no-password.conf 2013-07-30 15:56:44 +0000
+++ tests/scripts/switch-to-user-no-password.conf 2013-08-08 10:11:25 +0000
@@ -34,6 +34,9 @@
34#?XSERVER-1 INDICATE-READY34#?XSERVER-1 INDICATE-READY
35#?XSERVER-1 ACCEPT-CONNECT35#?XSERVER-1 ACCEPT-CONNECT
3636
37# Session is locked
38#?LOGIN1 LOCK-SESSION
39
37# Switch to session40# Switch to session
38#?VT ACTIVATE VT=841#?VT ACTIVATE VT=8
3942
4043
=== modified file 'tests/scripts/switch-to-user.conf'
--- tests/scripts/switch-to-user.conf 2013-07-30 16:11:22 +0000
+++ tests/scripts/switch-to-user.conf 2013-08-08 10:11:25 +0000
@@ -34,6 +34,9 @@
34#?XSERVER-1 INDICATE-READY34#?XSERVER-1 INDICATE-READY
35#?XSERVER-1 ACCEPT-CONNECT35#?XSERVER-1 ACCEPT-CONNECT
3636
37# Session is locked
38#?LOGIN1 LOCK-SESSION
39
37# Greeter starts40# Greeter starts
38#?GREETER-X-1 START XDG_SEAT=seat0 XDG_VTNR=841#?GREETER-X-1 START XDG_SEAT=seat0 XDG_VTNR=8
39#?XSERVER-1 ACCEPT-CONNECT42#?XSERVER-1 ACCEPT-CONNECT
4043
=== modified file 'tests/scripts/switch-to-users.conf'
--- tests/scripts/switch-to-users.conf 2013-07-30 15:56:44 +0000
+++ tests/scripts/switch-to-users.conf 2013-08-08 10:11:25 +0000
@@ -34,6 +34,9 @@
34#?XSERVER-1 INDICATE-READY34#?XSERVER-1 INDICATE-READY
35#?XSERVER-1 ACCEPT-CONNECT35#?XSERVER-1 ACCEPT-CONNECT
3636
37# Session is locked
38#?LOGIN1 LOCK-SESSION
39
37# Switch to session40# Switch to session
38#?VT ACTIVATE VT=841#?VT ACTIVATE VT=8
3942
@@ -57,6 +60,9 @@
57# Switch to session60# Switch to session
58#?VT ACTIVATE VT=961#?VT ACTIVATE VT=9
5962
63# Session is locked
64#?LOGIN1 LOCK-SESSION
65
60# New session starts66# New session starts
61#?SESSION-X-2 START XDG_SEAT=seat0 XDG_VTNR=9 USER=no-password267#?SESSION-X-2 START XDG_SEAT=seat0 XDG_VTNR=9 USER=no-password2
62#?XSERVER-2 ACCEPT-CONNECT68#?XSERVER-2 ACCEPT-CONNECT
6369
=== modified file 'tests/scripts/unity-switch.conf'
--- tests/scripts/unity-switch.conf 2013-07-30 16:11:22 +0000
+++ tests/scripts/unity-switch.conf 2013-08-08 10:11:25 +0000
@@ -41,6 +41,9 @@
41#?XSERVER-1 INDICATE-READY41#?XSERVER-1 INDICATE-READY
42#?XSERVER-1 ACCEPT-CONNECT42#?XSERVER-1 ACCEPT-CONNECT
4343
44# Lock session
45#?LOGIN1 LOCK-SESSION
46
44# Greeter starts47# Greeter starts
45#?GREETER-X-1 START XDG_SEAT=seat0 XDG_VTNR=748#?GREETER-X-1 START XDG_SEAT=seat0 XDG_VTNR=7
46#?XSERVER-1 ACCEPT-CONNECT49#?XSERVER-1 ACCEPT-CONNECT
4750
=== modified file 'tests/src/test-runner.c'
--- tests/src/test-runner.c 2013-07-22 22:21:02 +0000
+++ tests/src/test-runner.c 2013-08-08 10:11:25 +0000
@@ -85,10 +85,11 @@
85 gchar *cookie;85 gchar *cookie;
86 gchar *path;86 gchar *path;
87 guint id;87 guint id;
88 gboolean locked;
88} CKSession;89} CKSession;
89static GList *ck_sessions = NULL;90static GList *ck_sessions = NULL;
90static gint ck_session_index = 0;91static gint ck_session_index = 0;
91static void handle_session_call (GDBusConnection *connection,92static void handle_ck_session_call (GDBusConnection *connection,
92 const gchar *sender,93 const gchar *sender,
93 const gchar *object_path,94 const gchar *object_path,
94 const gchar *interface_name,95 const gchar *interface_name,
@@ -98,13 +99,14 @@
98 gpointer user_data);99 gpointer user_data);
99static const GDBusInterfaceVTable ck_session_vtable =100static const GDBusInterfaceVTable ck_session_vtable =
100{101{
101 handle_session_call,102 handle_ck_session_call,
102};103};
103104
104typedef struct105typedef struct
105{106{
106 gchar *path;107 gchar *path;
107 guint pid;108 guint pid;
109 gboolean locked;
108} Login1Session;110} Login1Session;
109111
110static GList *login1_sessions = NULL;112static GList *login1_sessions = NULL;
@@ -1001,22 +1003,32 @@
1001 g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_FAILED, "No such method: %s", method_name);1003 g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_FAILED, "No such method: %s", method_name);
1002}1004}
10031005
1004
1005/* Shared between CK and Login1 - identical signatures */
1006static void1006static void
1007handle_session_call (GDBusConnection *connection,1007handle_ck_session_call (GDBusConnection *connection,
1008 const gchar *sender,1008 const gchar *sender,
1009 const gchar *object_path,1009 const gchar *object_path,
1010 const gchar *interface_name,1010 const gchar *interface_name,
1011 const gchar *method_name,1011 const gchar *method_name,
1012 GVariant *parameters,1012 GVariant *parameters,
1013 GDBusMethodInvocation *invocation,1013 GDBusMethodInvocation *invocation,
1014 gpointer user_data)1014 gpointer user_data)
1015{1015{
1016 CKSession *session = user_data;
1017
1016 if (strcmp (method_name, "Lock") == 0)1018 if (strcmp (method_name, "Lock") == 0)
1019 {
1020 if (!session->locked)
1021 check_status ("CONSOLE-KIT LOCK-SESSION");
1022 session->locked = TRUE;
1017 g_dbus_method_invocation_return_value (invocation, g_variant_new ("()"));1023 g_dbus_method_invocation_return_value (invocation, g_variant_new ("()"));
1024 }
1018 else if (strcmp (method_name, "Unlock") == 0)1025 else if (strcmp (method_name, "Unlock") == 0)
1026 {
1027 if (session->locked)
1028 check_status ("CONSOLE-KIT UNLOCK-SESSION");
1029 session->locked = FALSE;
1019 g_dbus_method_invocation_return_value (invocation, g_variant_new ("()"));1030 g_dbus_method_invocation_return_value (invocation, g_variant_new ("()"));
1031 }
1020 else1032 else
1021 g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_FAILED, "No such method: %s", method_name);1033 g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_FAILED, "No such method: %s", method_name);
1022}1034}
@@ -1118,6 +1130,36 @@
1118 NULL);1130 NULL);
1119}1131}
11201132
1133static void
1134handle_login1_session_call (GDBusConnection *connection,
1135 const gchar *sender,
1136 const gchar *object_path,
1137 const gchar *interface_name,
1138 const gchar *method_name,
1139 GVariant *parameters,
1140 GDBusMethodInvocation *invocation,
1141 gpointer user_data)
1142{
1143 Login1Session *session = user_data;
1144
1145 if (strcmp (method_name, "Lock") == 0)
1146 {
1147 if (!session->locked)
1148 check_status ("LOGIN1 LOCK-SESSION");
1149 session->locked = TRUE;
1150 g_dbus_method_invocation_return_value (invocation, g_variant_new ("()"));
1151 }
1152 else if (strcmp (method_name, "Unlock") == 0)
1153 {
1154 if (session->locked)
1155 check_status ("LOGIN1 UNLOCK-SESSION");
1156 session->locked = FALSE;
1157 g_dbus_method_invocation_return_value (invocation, g_variant_new ("()"));
1158 }
1159 else
1160 g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_FAILED, "No such method: %s", method_name);
1161}
1162
1121static Login1Session *1163static Login1Session *
1122open_login1_session (GDBusConnection *connection,1164open_login1_session (GDBusConnection *connection,
1123 GVariant *params)1165 GVariant *params)
@@ -1135,7 +1177,7 @@
1135 "</node>";1177 "</node>";
1136 static const GDBusInterfaceVTable login1_session_vtable =1178 static const GDBusInterfaceVTable login1_session_vtable =
1137 {1179 {
1138 handle_session_call,1180 handle_login1_session_call,
1139 };1181 };
11401182
1141 session = g_malloc0 (sizeof (Login1Session));1183 session = g_malloc0 (sizeof (Login1Session));
11421184
=== added file 'tests/test-lock-seat-console-kit'
--- tests/test-lock-seat-console-kit 1970-01-01 00:00:00 +0000
+++ tests/test-lock-seat-console-kit 2013-08-08 10:11:25 +0000
@@ -0,0 +1,2 @@
1#!/bin/sh
2./src/dbus-env ./src/test-runner lock-seat-console-kit test-gobject-greeter
03
=== added file 'tests/test-lock-seat-return-session-console-kit'
--- tests/test-lock-seat-return-session-console-kit 1970-01-01 00:00:00 +0000
+++ tests/test-lock-seat-return-session-console-kit 2013-08-08 10:11:25 +0000
@@ -0,0 +1,2 @@
1#!/bin/sh
2./src/dbus-env ./src/test-runner lock-seat-return-session-console-kit test-gobject-greeter

Subscribers

People subscribed via source and target branches