------------------------------------------------------------
revno: 1556
committer: Dmitrijs Ledkovs <[email protected]>
branch nick: upstart
timestamp: Wed 2013-11-06 02:59:19 +0000
message:
  Actually run test_umask against a fresh session init, in it's own 
XDG_RUNTIME_DIR.
  Since session init needs to create sub-folders, use 0077 umask under test.
modified:
  util/tests/test_initctl.c


--
lp:upstart
https://code.launchpad.net/~upstart-devel/upstart/trunk

Your team Upstart Reviewers is subscribed to branch lp:upstart.
To unsubscribe from this branch go to 
https://code.launchpad.net/~upstart-devel/upstart/trunk/+edit-subscription
=== modified file 'util/tests/test_initctl.c'
--- util/tests/test_initctl.c	2013-11-05 16:15:19 +0000
+++ util/tests/test_initctl.c	2013-11-06 02:59:19 +0000
@@ -11972,6 +11972,8 @@
 test_umask (void)
 {
 	char             confdir[PATH_MAX];
+	char             dirname[PATH_MAX];
+	nih_local char  *orig_xdg_runtime_dir = NULL;
 	char             logdir[PATH_MAX];
 	pid_t            upstart_pid = 0;
 	nih_local char  *logfile = NULL;
@@ -11980,14 +11982,27 @@
 	size_t           length;
 	int              ret;
 	mode_t           original_umask;
-	mode_t           test_umask = 0111;
+	mode_t           test_umask = 0077;
 	mode_t           default_umask = 022;
 
-        TEST_FILENAME (confdir);
-        TEST_EQ (mkdir (confdir, 0755), 0);
-
-        TEST_FILENAME (logdir);
-        TEST_EQ (mkdir (logdir, 0755), 0);
+
+	/* Take care to avoid disrupting users environment by saving and
+	 * restoring this variable (assuming the tests all pass...).
+	 */
+	orig_xdg_runtime_dir = getenv ("XDG_RUNTIME_DIR");
+	if (orig_xdg_runtime_dir)
+		orig_xdg_runtime_dir = NIH_MUST (nih_strdup (NULL, orig_xdg_runtime_dir));
+
+	TEST_FILENAME (dirname);
+	TEST_EQ (mkdir (dirname, 0755), 0);
+	TEST_EQ (setenv ("XDG_RUNTIME_DIR", dirname, 1), 0);
+
+	TEST_FILENAME (confdir);
+	TEST_EQ (mkdir (confdir, 0755), 0);
+	TEST_EQ (setenv ("UPSTART_CONFDIR", confdir, 1), 0);
+
+	TEST_FILENAME (logdir);
+	TEST_EQ (mkdir (logdir, 0755), 0);
 
 	original_umask = umask (test_umask);
 
@@ -12056,8 +12071,15 @@
 	/* Restore */
 	(void)umask (original_umask);
 
-        assert0 (rmdir (confdir));
-        assert0 (rmdir (logdir));
+	if (orig_xdg_runtime_dir) {
+		/* restore */
+		setenv ("XDG_RUNTIME_DIR", orig_xdg_runtime_dir, 1);
+	} else {
+		assert0 (unsetenv ("XDG_RUNTIME_DIR"));
+	}
+
+	assert0 (rmdir (confdir));
+	assert0 (rmdir (logdir));
 }
 
 void
@@ -12073,8 +12095,8 @@
 
 	TEST_GROUP ("show_config");
 
-        TEST_FILENAME (dirname);
-        TEST_EQ (mkdir (dirname, 0755), 0);
+	TEST_FILENAME (dirname);
+	TEST_EQ (mkdir (dirname, 0755), 0);
 
 	/* Use the "secret" interface */
 	TEST_EQ (setenv ("UPSTART_CONFDIR", dirname, 1), 0);

-- 
upstart-devel mailing list
[email protected]
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/upstart-devel

Reply via email to