syncevolution/src
Patrick Ohly 6c972c4684 testing: parallel runtests.py
Testing on one platform can only be sped up further by parallelizing
it. Each action started by runtests.py may potentially run in parallel
to other actions, if it either does not need files in the home
directory (like checking out source) or can be run in its own, private
home directory.

The new --home-template parameter specifies the location of a home
directory that runtests.py can copy to create these private home
directory of each test. Each action is run in a fork of the main
runtests.py, so env and working directory changes are confined to that
fork and do not affect other actions.

When --home-template is given, runtests.py will also set up a new home
directory and point to it with HOME,
XDG_CACHE/CONFIG/DATA_HOME. Because test-dbus.py and testpim.py use a
non-standard layout of the XDG dirs without directories hidden by the
leading dot, runtests.py must move the standard directories to conform
with the other scripts' expectation.

testpim.py itself must be more flexible and allow running with a root
for the XDG dirs that is not called "temp-testpim". To allow parallel
tests, GNOME keyrings must be located in XDG_DATA_HOME, which is
supported since gnome-keyring 3.6. On older distros, parallel testing
does not work because gnome-keyring-daemon would always look in the
home directory as specified in /etc/passwd, which we cannot override.
testpim.py must not delete the keyrings when cleaning up the XDG dirs
for a test.

Locking Murphy resources and allocating jobs from GNU make jobserver
gets moved into a separate script which wraps the actual execution of
the action. Some change would have been necessary anyway (we cannot
connect to D-Bus and then fork) and the new approach is cleaner. It
ensures that cut-and-paste of the action command line into a shell
will only run with the necessary Murphy resource locked. Previously,
it might have conflicted with a running test.

As a new feature, test names as passed to resources.py can be mapped
to actual resource names via RESOURCE_<test name> env
variables. Useful for tests with different names which use the same
resources (currently DAViCal for the DAV server tests).
2014-02-03 14:30:45 +01:00
..
backends EDS: fix false clang warning 2014-01-17 16:15:16 +01:00
dbus testing: parallel runtests.py 2014-02-03 14:30:45 +01:00
gdbus cppcheck: suppress warnings 2014-01-17 16:15:16 +01:00
gdbusxx cppcheck: suppress warnings 2014-01-17 16:15:16 +01:00
gnome-bluetooth GNOME Bluetooth: fix false (?) buffer overflow 2014-01-17 16:15:16 +01:00
gtk-ui GTK-UIs: avoid unnecessary variable initialization 2014-01-17 16:15:15 +01:00
gtk3-ui GTK-UIs: avoid unnecessary variable initialization 2014-01-17 16:15:15 +01:00
syncevo ForkExec: ignore unexpected SIGKILL 2014-01-17 16:15:16 +01:00
synthesis-includes autotools: --disable-core --enable-gui => build only sync-ui and its D-Bus lib 2010-03-23 19:04:06 +01:00
templates templates: don't store username/password for SyncEvolution client 2013-10-01 09:28:38 +02:00
async.patch patch switches to async version of the Evolution API 2007-02-22 19:33:21 +00:00
client-test-app.cpp config: user name -> identity 2013-09-27 08:59:13 -07:00
README.h added missing copyright and license headers 2009-05-11 16:31:17 +02:00
README.templates Merge remote branch 'origin/syncevolution-0-9-branch' 2009-11-30 21:41:53 +01:00
shlibs.local reverted to 0.7 packaging 2008-07-03 19:56:15 +00:00
src.am testing: update packaging and testing of pre-compiled binaries 2014-01-17 16:07:58 +01:00
syncevo-local-sync.cpp local sync: execute 'syncevo-local-sync' on child side, communicate via D-Bus 2012-01-20 13:38:49 +01:00
syncevolution.cpp Logging: thread-safe 2013-05-06 16:28:13 +02:00
testcases.am testing: update packaging and testing of pre-compiled binaries 2014-01-17 16:07:58 +01:00
valgrind.supp ObexTransportAgent: Fix valgrind warnings (MB#10091) 2010-03-12 06:33:13 -08:00

The configuration templates in "templates" get installed into
$(datadir)/syncevolution/templates.

When adding/changing a new server, then only enter the properties
which need to be changed here so that the default values can
be used for the remaining properties.

An icon can be added here for servers. The file name must start with
"icon".

Server configurations must be kept in sync in three different places:
- here (if a server is installed as files)
- in SyncEvolutionConfig.cpp's EvolutionSyncConfig::createServerTemplate()
- in SyncEvolutionCmdline.cpp's test server configs
- in test/test-dbus.py testGetConfigsTemplates()

Note that server icons must come with a suitable license that allows
redistribution.