diff options
author | Robert Ancell <robert.ancell@canonical.com> | 2012-03-28 16:14:40 +1100 |
---|---|---|
committer | Robert Ancell <robert.ancell@canonical.com> | 2012-03-28 16:14:40 +1100 |
commit | 1eaad3ab126f1c5e4abe176e06b44d477e4088c1 (patch) | |
tree | e7707f4280a8bb9553192d2757a31f4e213af7af /tests | |
parent | 5103712e0707ea8022f34d50d26c4a424e8e3e86 (diff) | |
download | lightdm-1eaad3ab126f1c5e4abe176e06b44d477e4088c1.tar.gz |
Add test for home directory being created on pam_open_session
Diffstat (limited to 'tests')
-rw-r--r-- | tests/Makefile.am | 2 | ||||
-rw-r--r-- | tests/scripts/home-dir-on-session.conf | 30 | ||||
-rw-r--r-- | tests/src/libsystem.c | 7 | ||||
-rw-r--r-- | tests/src/test-runner.c | 2 | ||||
-rwxr-xr-x | tests/test-home-dir-on-session | 2 |
5 files changed, 43 insertions, 0 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am index 11e35486..4e8d306f 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -80,6 +80,7 @@ TESTS = \ test-login-session-crash \ test-login-xserver-crash \ test-home-dir-on-authenticate \ + test-home-dir-on-session \ test-plymouth-active-vt \ test-plymouth-inactive-vt \ test-plymouth-no-seat \ @@ -164,6 +165,7 @@ EXTRA_DIST = \ scripts/group-membership.conf \ scripts/headless.conf \ scripts/home-dir-on-authenticate.conf \ + scripts/home-dir-on-session.conf \ scripts/keyboard-layout.conf \ scripts/language.conf \ scripts/language-no-accounts-service.conf \ diff --git a/tests/scripts/home-dir-on-session.conf b/tests/scripts/home-dir-on-session.conf new file mode 100644 index 00000000..0431bf19 --- /dev/null +++ b/tests/scripts/home-dir-on-session.conf @@ -0,0 +1,30 @@ +# +# Check works for users who have their home directory created when the session is opened +# + +[LightDM] +minimum-display-number=50 + +[SeatDefaults] +autologin-user=make-home-dir + +#?RUNNER DAEMON-START + +# X server starts +#?XSERVER :50 START +#?XSERVER :50 INDICATE-READY + +# LightDM connects to X server +#?XSERVER :50 ACCEPT-CONNECT + +# Session starts +#?SESSION :50 START USER=make-home-dir +#?XSERVER :50 ACCEPT-CONNECT +#?SESSION :50 CONNECT-XSERVER + +# Cleanup +#?*STOP-DAEMON +# Don't know what order they will terminate +#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15) +#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15) +#?RUNNER DAEMON-EXIT STATUS=0 diff --git a/tests/src/libsystem.c b/tests/src/libsystem.c index 929bf339..df219fbe 100644 --- a/tests/src/libsystem.c +++ b/tests/src/libsystem.c @@ -728,6 +728,13 @@ pam_open_session (pam_handle_t *pamh, int flags) if (pamh == NULL) return PAM_SYSTEM_ERR; + if (strcmp (pamh->user, "make-home-dir") == 0) + { + struct passwd *entry; + entry = getpwnam (pamh->user); + g_mkdir_with_parents (entry->pw_dir, 0755); + } + return PAM_SUCCESS; } diff --git a/tests/src/test-runner.c b/tests/src/test-runner.c index 4694278e..7220661d 100644 --- a/tests/src/test-runner.c +++ b/tests/src/test-runner.c @@ -1358,6 +1358,8 @@ main (int argc, char **argv) {"have-session", "", TRUE, "Session User", "alternative", NULL, NULL, NULL, 1012}, /* This account has the home directory mounted on login */ {"mount-home-dir", "", FALSE, "Mounted Home Dir User", NULL, NULL, NULL, NULL, 1013}, + /* This account has the home directory created when the session starts */ + {"make-home-dir", "", FALSE, "Make Home Dir User", NULL, NULL, NULL, NULL, 1025}, /* This account is denied access */ {"denied", "", TRUE, "Denied User", NULL, NULL, NULL, NULL, 1014}, /* This account has expired */ diff --git a/tests/test-home-dir-on-session b/tests/test-home-dir-on-session new file mode 100755 index 00000000..30a34b4f --- /dev/null +++ b/tests/test-home-dir-on-session @@ -0,0 +1,2 @@ +#!/bin/sh +./src/dbus-env ./src/test-runner home-dir-on-session test-gobject-greeter |