summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorRobert Ancell <robert.ancell@canonical.com>2012-03-28 16:14:40 +1100
committerRobert Ancell <robert.ancell@canonical.com>2012-03-28 16:14:40 +1100
commit1eaad3ab126f1c5e4abe176e06b44d477e4088c1 (patch)
treee7707f4280a8bb9553192d2757a31f4e213af7af /tests
parent5103712e0707ea8022f34d50d26c4a424e8e3e86 (diff)
downloadlightdm-1eaad3ab126f1c5e4abe176e06b44d477e4088c1.tar.gz
Add test for home directory being created on pam_open_session
Diffstat (limited to 'tests')
-rw-r--r--tests/Makefile.am2
-rw-r--r--tests/scripts/home-dir-on-session.conf30
-rw-r--r--tests/src/libsystem.c7
-rw-r--r--tests/src/test-runner.c2
-rwxr-xr-xtests/test-home-dir-on-session2
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