Make tests use local GConf config and store.
authorTravis Reitter <travis.reitter@collabora.co.uk>
Fri, 14 Jan 2011 22:50:43 +0000 (14:50 -0800)
committerRaul Gutierrez Segales <raul.gutierrez.segales@collabora.co.uk>
Fri, 1 Apr 2011 20:42:01 +0000 (21:42 +0100)
This avoids reading or writing the user's GConf store and lets us start from a
consistent state when running tests (required for repeatability).

configure.ac
tests/data/Makefile.am
tests/data/gconf.path.in [new file with mode: 0644]
tests/folks/Makefile.am

index 15c4def..6c51708 100644 (file)
@@ -361,6 +361,7 @@ AC_CONFIG_FILES([
     po/Makefile.in
     tests/Makefile
     tests/data/Makefile
+    tests/data/gconf.path
     tests/folks/Makefile
     tests/key-file/Makefile
     tests/telepathy/Makefile
index a2b9838..ced9376 100644 (file)
@@ -2,4 +2,18 @@ EXTRA_DIST = \
        backend-store-all.ini \
        $(NULL)
 
+clean-gconf:
+       rm -rf gconf.d
+
+clean-local: clean-gconf
+
+check: clean-gconf
+
+GITIGNOREFILES = \
+       gconf.d \
+       gconf.path \
+       $(NULL)
+
+.PHONY: clean-gconf clean-local
+
 -include $(top_srcdir)/git.mk
diff --git a/tests/data/gconf.path.in b/tests/data/gconf.path.in
new file mode 100644 (file)
index 0000000..36b92cf
--- /dev/null
@@ -0,0 +1,51 @@
+# These settings set up gconf in a sandbox for our tests for a few reasons:
+#
+#  1. So we don't read or mangle the $USER's gconf settings
+#
+#  2. To have a consistent state every time we run the tests for
+#     repeatability
+#
+# Note that we still source the system settings to hopefully play nicely
+# with unusual (yet valid) set-ups. We can't source /etc/gconf/2/path directly
+# since it will pull in various config paths in $(HOME).
+#
+# This is based on the default /etc/gconf/2/path
+###########################################################################
+
+######################
+# 1. Forced settings #
+######################
+
+# Settings forced by the local administrator
+xml:readonly:/etc/gconf/gconf.xml.mandatory
+
+# Other forced sources imagined by the local administrator
+include /etc/gconf/2/local-mandatory.path
+
+#######################
+# 2. User Preferences #
+#######################
+
+# our in-tree writeable directory for these tests
+xml:readwrite:@abs_top_srcdir@/tests/data/gconf.d
+
+# mandatory path for desktop-profiles
+include $(ENV_MANDATORY_PATH)
+
+# default path for desktop-profiles
+include $(ENV_DEFAULTS_PATH)
+
+######################
+# 3. System defaults #
+######################
+
+# Other default sources imagined by the local administrator
+include /etc/gconf/2/local-defaults.path
+
+# System administrator's defaults. This source also serves as a legacy
+# source for packages not using a recent dh_gconf, or for applications
+# installed by hand.
+xml:readonly:/etc/gconf/gconf.xml.defaults
+
+# Upstream application defaults
+xml:readonly:/var/lib/gconf/defaults
index 4f22112..b3111ac 100644 (file)
@@ -48,6 +48,7 @@ noinst_PROGRAMS = \
 SESSION_CONF = $(top_builddir)/tests/lib/telepathy/contactlist/session.conf
 backend_store_key_file=$(top_srcdir)/tests/data/backend-store-all.ini
 TESTS_ENVIRONMENT = \
+       GCONF_DEFAULT_SOURCE_PATH=@abs_top_srcdir@/tests/data/gconf.path \
        FOLKS_BACKEND_PATH=$(BACKEND_UNINST_PATH) \
        FOLKS_BACKEND_STORE_KEY_FILE_PATH=$(backend_store_key_file) \
        $(RUN_WITH_PRIVATE_BUS) \