Both comma separated lists may now contain regular expressions, which
is very useful to ignore or skip one test for all data categories, for
example.
Because tests names did not have special characters in them, previous
values still work as before for a literal match against just one test.
Added the necessary autotools rules to use pcre in the src binaries
and libsyncevolution. It's unconditionally required now, which makes
it possible to add code depending on it without having to worry about
the case without pcre.
The alternative to pcre with its C++ binding would have been
boost::Xpressive. pcre was chosen because it has UTF-8 support and is
more common.
boost::regex introduces an undesirable library dependency. The C POSIX
regex code has no C++ binding and does not support easy replacement.
README was updated accordingly.
The distinction between vcard21 and vcard30 became mute in the Evolution
backend a while ago. Both tests ended up using the vCard 3.0 Evolution
tests data and the default uri for each server. This patch removes
the vCard 2.1 special case.
It also renames the tests and test data to reflect that they always
were Evolution specific. The new naming convention, also applied
to file, QtContacts, KCalExtended, XMLRPC, Maemo and Akonadi backends, is
now <backend>_contact/event/task/memo, with eds/file/qt/kcal/maemo/kde
as backend names.
The reasoning is:
- results in unique string (in particular no overlap with
backend type names), easier to search for
- underscore already used before (in contrast to hyphen)
- no plural-s to keep the name shorter
The Akonadi backend should be using its own test data instead of
the Evolution ones.
This patch adds the necessary autotools rules a) to use README.rst
as README in distribution archives and b) to build a syncevolution.1
man page out of it.
The later depends rst2man. --with-rst2man can be used to force man page
creation on or off. Without an explicit choice, it is only built when
the tool is found.
Version and compile date are inserted automatically.
This uses the new combined client/server Synthesis engine. When
building shared modules, the engine is opened dynamically only
while needed, thus reducing overall memory consumption.
The HTTP server is implemented in Python, using the the 'twisted'
server framework because it can use the same glib event loop as the
D-Bus binding. This allows us to keep the same event loop running
forever and react to both kinds of events.
The server takes a base url (including host name and port)
and a default configuration as name. The host name is currently
ignored. It could be used to bind to a specific interface.
The path is what a client has to use as part of his sync URL
to synchronize against the default configuration. In addition
the client can add another path to select that as his server
configuration.
For example, if the script is called with
http://localhost:9000/syncevolution default
then syncURL = http://localhost:9000/syncevolution will synchronize
against the configuration called "default". With syncURL =
http://localhost:9000/syncevolution/my_server, it will
synchronize against "my_server".
Install head files to a standard path, the remaining dependencies are
synthesis and boost
client-test is portable when ENABLE_MODULES is defined, no longer link to
backends libraries.
Add --enable-developer-mode, in which mode the backend scan path will be
under current build directory for development purposes.
The only way that I found not to execute a test was not to register
it in CPPUnit. FilterTest() does this by replacing a valid test
or test group with a dummy one, SkipTest, which just prints the
test name and that it is skipped.
Registering tests has to be intercepted at multiple levels:
- CPPUNIT_TEST in test suites
- ADD_TEST in ClientTest
- addTest in ClientTest
Not currently intercepted are complete test suites (CPPUNIT_TEST_SUITE).
The main purpose of this patch is to avoid running the time consuming
suspend and interrupt tests, but this feature might also be useful for
other tests, which is why it was implemented in a more general way.
The environment variable SYNCEVOLUTION_DEBUG is checked by
LogRedirect itself (instead of in its caller) so that all
users of the class behave identically. The value of the variable
currently doesn't matter. Later it might also be used to enable
or disable specific debugging aspects.
Configure didn't check correctly for "glib": it invoked glib-config
but didn't notice when that command was missing. Removed that
check as it has been superseeded by "glib-2.0" anyway.
Boost wasn't checked for at all, although the Boost header files are
no longer bundled.
libecal and libebook are now obligatory unless explicitly disabled.
This catches a common mistake made by users: previously syncevolution
would compile, but without Evolution support. The drawback is that
on platforms without Evolution, support for it now must be disabled
explicitly.
Removed the "encoding" source option. It was of dubious usefulness
with Funambol and has meaning with Synthesis at all.
Removed dead code in EvolutionSyncConfig.
Added "enableWBXML" sync option. WBXML is used by default, but for
debugging disabling it might be useful: dumping WBXML doesn't seem
to work reliably.
Most Client::Sync tests use the default encoding, usually WBXML unless
changed via CLIENT_TEST_XML=1. Client::Sync::*::testItemsXML always
uses XML and Client::Sync::*::testItems always WBXML.
When --with-synthesis-src is used, then the Synthesis source code is compiled
automatically and included in a .tar.gz.
Added some missing EXTRA_DIST files.
The new TransportAgent base class supports sending a message and waiting
for a reply. Implementations which block in either the send() (CurlTransportAgent)
or the wait() (SoupTransportAgent) call are possible.
The default implementation is compiled into libsyncevolution. configure
picks libsoup if available, otherwise libcurl. The default can be changed
via --enable-libcurl/libsoup, including not compiling any transport. Normally
that triggers a configure error because it leads to an unusable syncevolution
binary.
Derived EvolutionSyncClients can change the default via createTransportAgent().
Copying SyncEvolution settings into the corresponding
Synthesis properties is implemented. A "syncevolution.xml"
with the client configuration must be in the current
directory. Currently it contains no configuration
for SyncEvolution data backends, only for SDK_textdb
addressbook.
As there is no synthesis.pc yet, use SYNTHESIS_CFLAGS=-Ifoo/include
and SYNTHESIS_LIBS=-Lfoo/lib -lsynthesissdk where foo is the
installation prefix of the Synthesis SDK.
configure checks out the right source automatically. Subversion
and git are supported. When given an existing directory with sources,
out-of-tree compilation is used instead of making a copy first.
git-svn-id: https://zeitsenke.de/svn/SyncEvolution/trunk@744 15ad00c4-1369-45f4-8270-35d70d36bdcd
This is a first step towards deriving SQLiteContactSource from a sync source base
class which does change tracking.
git-svn-id: https://zeitsenke.de/svn/SyncEvolution/trunk@483 15ad00c4-1369-45f4-8270-35d70d36bdcd
loglevel is configurable
- fixed off-by-one counting of months in backup directory names
- only one example configuration per server, users typically do not
need the _1/2 suffices and the testing system no longer has to be
configured manually either
- documented the switch from the original SyncEvolution testing to its
successor, the generic Funambol C++ client testing framework
git-svn-id: https://zeitsenke.de/svn/SyncEvolution/trunk@362 15ad00c4-1369-45f4-8270-35d70d36bdcd