1) extract test results from many result files and combine them
into a xml format file to summary each unit test status
2) use 'compare.xsl' to compare two days' result and generate
comparison result
3) generate more visiable html output file by nightly result
and comparison result to make tracking regressions easily
If 'BYMONTHDAY' of 'RRULE' is not presented in 'monthly', funambol
will generate a 'BYMONTHDAY' part automatically. They all should
be correct. So change the cases to avoid this difference.
cases patches (Bug#3009)
1. Add new suppressions to synccompare for vcard21, ical20, itodo20 and
text.
2. Add README.mobical for mobical interoperability test results
3. Add 3 test patches for vcard21, ical20, itodo20
Mobical.net always initiates a slow sync mode when it
has no any data for a typed information. Do not check
sync mode when setting this environment variable as
'1', 't' or 'T'.
The NEWS item for 0.9 summarizes the changes in the
0.9 release cycle and documents the most important
known issues.
For ScheduleWorld the missing resume feature
is mentioned.
The Synthesis Engine doesn't count these items because Synthesis wants
the engine to count only items deleted by the remote side. For our
statistics this looks a bit unrealistic (items before sync + added - deleted
does not add up to items after sync), so we now track items deleted
locally and use that number instead of the Synthesis statistics for deleted
items when we know that it is not complete.
In the command line, we show detailed statistics. In the GUI, it shows
up as part of the locally applied changes.
The new testComplexRefreshFromServerSemantic test covers this particular
aspect of the statistics.
Instead of calling rm, simply keep the file. This might be useful
when running a single test. When running multiple tests, tee will
overwrite the old one.
ScheduleWorld has a 'client delete' wins over 'server update' policy. Mark didn't
sound like he wanted to change this, so document this potentially dangerous behavior.
This test checks whether the server a) creates no duplicates
during a slow sync (also covered by testManyItems) and b) correctly
associates the client's item with its own copy.
As described in Bugzilla #4703, the ScheduleWorld server currently
has a problem with the later (for contacts) and fails to delete
the item on the client, apparently because it doesn't remember the
LUID correctly. It also fails this test for text because it creates
duplicates.
First, the test really shouldn't fail. Need to investigate why it does on
one test platform. Second, it was applied to all test runs, overwriting
the desired value of CLIENT_TEST_FAILURE for that run.
Photos somewhere between 40KB (okay) and 80KB (dropped) are silently
dropped by the server. Documented this behavior in README.google and
the NEWS for 0.9 final, as we cannot do anything else about it.
These files used to contain the complete sync session
output. Now they contain just the user-visible output,
so don't compress anymore because that doesn't save much
space and makes the files harder to read.
In this mode, Client::Sync is replaced with
just Client::Sync::<first source>::testItems.
This assumes that all servers support WBXML
with our test data.
Only contacts in vCard 2.1 are tested. Several
failures are ignored because Google does not support
them:
* refresh from client
* one-way from client
* XML format
These tests are run although we know that they
fail, just in case that at some point they start
to work.
vcard30::testCopy used to fail because adding new clients forced
unexpected slow syncs on all other clients. This should be fixed
now, so the FAILURES entry could be removed.
ignore some properties that google server will get lost
not comparing PHOTO encoded data because google always return jpg format
Ignore value mismatch in FN, NOTE, ORG and TEL
Add google specific case to workaround a test failure because of delele failed
to clean the previous data (A know issue in server)
slightly change a test case to workaround google
google server can not delete cleanly; if a later test sends a contact with the
same N field, the server will trigger a client side update which is not
expected.
These scripts are used by the regular testing.
valgrindcheck.sh checks that valgrind didn't print
any output while running a program, dbus-session.sh
creates a D-Bus session for running a program
(necessary starting with GNOME 2.26 if D-Bus is not
running yet and there's no X).
For weird reasons that I don't have the patience to analyze running
the client-test wrapper script as generated by libtool fails
to set up the search path for libsyncevolution.so. It works
for syncevolution.
As a workaround let's simply set LD_LIBRARY_PATH ourselves, regardless
whether it is needed.
These tests are both slow and tend to fail with these servers
because of deficiencies in the servers. Disabled these tests
as discussed in Bugzilla #4282.
distcheck is useful to ensure that all files are distributed,
the result builds and cleans up properly. Doing this with
building of the GUI is important to avoid surprises during
packaging.
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.
This is currently broken because opening the default system
addressbook depends on e_cal_new_system_memos(), which is
not available in all Evolution versions.
It could be added, but first we should sort out issue #3732.
- when libsoup is used (as on Moblin), the configure script sets
a default search for the SSLServerCertificates option which works
on Debian and Red Hat:
/etc/ssl/certs/ca-certificates.crt:/usr/share/ssl/certs/ca-bundle.crt
- with libcurl the library's own default is used; SSLServerCertificates
is empty, but can be set to override the default
- libsoup enables checking when either SSLVerifyServer or SSLVerifyHost
is on (does not support more control over checking), refuses to work
if no CA certificates file was found
- libcurl supports both strict checking (both options on) and less
strict checking (only check certificate, but not hostname)
Did real sync tests (ical20 + vcard30 testItems) with Ubuntu 8.04,
valgrind valgrind-3.4.1.SVN-9098-1883, 64 bit mode. Some issues in
libsynthesis could be fixed, others (like writing uninitialized
data into binfiles) hopefully can be ignored.
Catch fatal signals (SIGSEGV, SIGABRT, SIGBUS) and in the signal
handler, flush and process output.
Flushing is done each time redirection is removed and thus
also catches output that is pending in either C or C++ output
streams during a normal application shutdown.
The abort-redirect test program covers such a scenario. It does
a double free, which depending on libc causes a segfault or
error message. The source is in "test" (like the rest of the
test programs) while the binary is built with "make abort-redirect"
in "src". It would be nicer if the test folder was a subdirectory of
src and wouldn't require its own Makefile, but that's a different issues...
Note that glib's double free report is written to the console
regardless whether stdout/stderr redirection is enabled. It seems
that glibc does not use FDs 1 or 2 for that, redirecting them in
the shell has no effect either. Catching the signal and flushing
is useful nevertheless.
Tested with local tests (Client::Source SyncEvolution), valgrind 3.4.1.SVN-9098-1883,
Evolution 2.22.3.1, on Ubuntu 8.04 in 64 bit mode. Some stack backtraces were
slightly different, some problems are new. None seem to be caused by us.
This patch fully automates all work when running make inside the
src directory. It achieves that by not letting make check dependencies.
Instead shell commands check what needs to be updated. By using
touch with the patched file as reference, the regenerated patch
is never newer than it, thus cycles of repeatedly writing files
is avoided.
One drawback is that client-test is needlessly rebuilt, because
it now depends on a phony target. This is not optimal, but better
than not rebuilding files that have to be rebuild, as before.
Without that information, the wrong files are compared, leading to false
test failures. Because getItems() is also called indirectly via import(),
this change ripples through several functions.
We were using the same set of test cases for different server, this
is a bit limited; now importItem will first check a server specific
test case file and will fallback to the general case file if failed.
The makefile is also changed.
With the links to our and Funambol's bug tracker it is easier
for someone who only has the README to verify what the current
status is. The ACTION issue was not mentioned in the README.
Funambol Server gets lost some properties of icalendar2.0:
'URL', 'ATTENDEE', 'RECURRENCE-ID'
The parameter 'CN' of the property 'ORGANIZER' is lost by server.
Also, it adds a new property 'REPEAT'.
Funambol server has a length limitation for 'DESCRIPTION' property. If item is larger
than the limitation, the rest part will be lost. Add the environment variable
"CLIENT_TEST_MAX_ITEMSIZE" to allow controlling this size
Add README.funambol for funambol interoperability test information. These include Funambol
server information, desired test types, known properties got lost by server, known failures
Five properties are missed by Funambol, so synccompare doesn't compare these
properties. These include UID, SEQUENCE, TRANSP, LAST-MODIFIED, X-EVOLUTION-ALARM-UID.
Both EvolutionSyncSource::backupData() (implemented for the memo source
in the TrackingSyncSource base class) and Client::Source::text::testImport
must dump items in the native format, the one which is used for restore
and for the test cases. See Bugzilla #3967 and #3929.
This broke during the 0.9 development cycle, but wasn't detected during
automated testing because the necessary tests weren't enabled for
the "text" source until recently.
Now createItem() is passed a hint what the desired format is. "raw"
is used for backup and testing.
Also removed obsolete exportData() call in EvolutionCalendarSource.
This was used before introducing the newer backupData() call.
The test failed because it showed duplicate X-MANAGER/... properties.
This was a result of adding those a few commits earlier. Now synccompare
checks whether there are such redundant properties and removes
them.
Without that method most of the tests couldn't be done and combined
tests (Client::Sync::vcard30_ical20_itodo20_text::testCopy) failed
with an assertion.
All of the predefined tests share the same methods, so moved them
into the general section. Backends which need something else have
to override the defaults or unset them, if nothing works.
These properties are supported in addition to, not instead of, the
traditional X-EVOLUTION- variants. This is done by sending both
property variants to a SyncML server and accepting both when parsing
a vCard. When parsing, X-EVOLUTION- takes precendency over the normal
X- one, which is only relevant in case that they differ.
This is necessary for Funambol, which added support for normal X-
variants in the 7.x server release. ScheduleWorld accepts both
and still works (tested).
When working with the Funambol engine, 0 meant "default values",
which were reasonably large for message size and unlimited for object
size.
After migrating to Synthesis and enabling these limits again, 0 has
no special meaning and is rounded up to some very small numbers. These
limits were too small for some items, therefore the settings used by
tests by default were bumped up to 128KB for message size (should
keep the overall message number fairly small) and 1GB for individual
items (basically unlimited again).
The test didn't actually cause a conflict as originally intended because at
one point client A instead of client B was synced.
The result of the conflict resolution wasn't checked thoroughly enough: only
the number of items on the client was checked to determine whether items
were duplicated. Now the test also compares the actual data on client A and B
to find out whether they are in sync.
With ScheduleWorld, it was found that in some cases (VEVENT with new and
different properties added by both clients), the client which
caused the conflict was not updated (Bugzilla #2036). Catching this
required some changes in the test data.
Just to be sure, a refresh-from-server requests the actual data on the
server. This will detect cases where the server modifies the data, but
then updates neither client A nor B.
Config::testcases_server had no useful purpose. The extra dump()
method became redundant because the EvolutionSyncSource API *always*
returns "native" items and thus the generic method works fine.
The default server config in SyServ Demo 3.2.0.26 only supports
vCalendar 1.0 without UID. Suppressing the UID comparison is an
oversimplification, but helps to get the Client::Sync::ical20::testCopy
test to work - at least for me.
Instead of sending the summary, only the empty description was sent.
Now the summary is sent. This has the effect that on a full round-trip,
the summary gets duplicated as part of the description. synccompare
was adapted to not complain about this for the newly added testcase
for this: the script also duplicates the summary.
This cannot be avoided because notes are exchanged as plain text
which cannot distinguish between summary and description.
During a refresh-from-client sync, the server has to delete all items
that it currently has before adding those sent by the client. This
new test covers that. It complements the testRefreshSemantic test,
which did that for the other direction and thus was renamed to
testRefreshFromClientSemantic.
The server also needs to tell other clients to delete the items
that were deleted this way during a refresh-from-client. This is
not currently tested.
As with the previous change from AGPLv3 to LGPL v2.1, this is covered
by copyright ownership and/or the Funambol contributor agreement.
The motivation for adding v3 is greater flexibility regarding
reusing the code in other places and relicensing it.
Comparison was missing altogether. Items were not imported as text/calendar
because the type wasn't set. Creating new items didn't work because <<REVISION>>
was in the wrong place: it needs to be in the DESCRIPTION, so that SUMMARY and first
line of DESCRIPTION remain identical (expected by some peers and our own sync source).
Evolution 2.24.5 adds this. It can be ignored because we are not
sending it out like that (Synthesis engine matches it against the
imported libical time zones, which don't have this suffix), thus
our peers won't have a problem with it.
The Synthesis engine transforms COUNT into UNTIL clauses. This
is semantically not quite the same, but for viewing the events the result is
identical (verified in Evolution).
Instead of passing an invalid reply into the Synthesis engine where
it triggers an obscure (WB)XML parser error in the SyncML Toolkit,
check the content type and dump a non-(WB)XML reply into our own log,
then abort with a "transport failed" error.
libsoup already aborted because of the non-200 server status. Now it
also dumps the message in that case.
The Synthesis time zone handling has some issues with this. The 2006
rule set is detected, but then replaced by the different 2007 rule
set.
Reported to Synthesis, removing the test case in the meantime.
This reverts commit dd22cd12d4.
The original test cases can be restored because libsynthesis now
knows about libical time zone definitions and preserves then.
Some of the other Evolution specific tests are not supported yet;
those will be simplified separately.
update-copyright.sh can be used to add copyright remarks for the current
year. It finds the authors who made a change in each file and adds/updates
their copyright remark. Intel employees are grouped under "Intel Corporation".
This is permitted by the Funambol contributor agreement (copy
is in doc/Sync4jContribution.pdf). It reduces the license mix
and allows distributing synccompare without special precautions.
The previous approach did not sort values. It was inefficient (multiple s// passes).
With multiple EXDATE properties it is also easier to find added/removed ones.
Bugzilla 1334 and 1336 trigger item rewriting which is okay, but
shows up in the automated testing as failure:
- different time zone definitions
- RRULE UNTIL->COUNT
That's okay, but to avoid the automated test failure I replaced
the test cases with the output of testConversion. Revert this
when the issues above are solved in a better way!
Evolution vcard21 source defines testcases/vcard30.vcf as its native
test case file. For vcard21::testConversion we must use vcard21.vcf instead
because that is the format used for encoding the items.
Note that the test doesn't pass because synccompare does not support
old-style vcard and vcalendar encoding: line breaks aren't handled
correctly etc.
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.
Use the ClientTest::compare() helper function and change it so that
it invokes "synccompare", as needed when using it in SyncEvolution.
Improved it so that it prints the synccompare command after a failure
and adds a line break before it.
The conversion test checks whether information is lost and/or modified
when converting the test items into the field list defined in the Synthesis
XML config. For that it converts into the field list and back, then compares
against the original test item file with synccompare.
Because a valid Synthesis session is necessary, this test hooks into
running a sync session via a callback that is triggered by the first
Synthesis progress event. It then aborts the session without contacting
the server.
boost::bind() with a reference should have worked (?), but didn't:
the bound function did not update the variable it was bound to.
Using a pointer worked.
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 logdir is now overridden so that all files (client.log, message
dumps, Synthesis logs) are written in a subdirectory names after
the current test. A <test>.log file captures all output written
outside of the sync itself.
The file is named after the current test, with : replaced by underscores.
This gets all log message outside of sync sessions. Those are still written into
separate files whose name needs to be adapted.
File names now only contain a single underscore instead of
multiple ones. The compare functions can be called so that they
return the result instead of throwing an assertion (useful for
doing multiple comparisons and then checking the result).
The synccompare Perl script is told to print the file names
that it is comparing.
Works for different situations (client has changes, server has
changes, both have changes) as well as for disconnects after every
single message in the synchronization. Uses the same infrastructure
as the other Client::Sync tests and therefore can be used to test
normal clients.
Only adding new items on client or server is currently implemented:
Client::Sync::vcard21::Retry::testInterruptResumeServerAdd
Client::Sync::vcard21::Retry::testInterruptResumeClientAdd
Results are not yet compared against outcome of uninterrupted
sync.
- the parent events accidentally had a RECURRENCE-ID, which turned them into
specific instances
- clarified that some of the tests are too strict: child items without a parent
are problematic and not necessarily supported by client (Evolution) and server
(ScheduleWorld) => these tests can be disabled via -DLINKED_ITEMS_RELAXED_SEMANTIC=0
git-svn-id: https://core.forge.funambol.org/svn/core/top-level/trunk/3x/client-api/native@25438 e8e8ed6c-164c-0410-afcf-9e9a7c7d8c10
There are two reasons for this change:
- the new API call would not be covered otherwise
- it is required for testing detached recurrences, because sources
might be forced to delete children together with the parent;
this caused the loop to fail prematurely
git-svn-id: https://core.forge.funambol.org/svn/core/top-level/trunk/3x/client-api/native@25437 e8e8ed6c-164c-0410-afcf-9e9a7c7d8c10
Two VEVENTs were added to ical20.ics where one represents
the main event with recurrence rule and the other an exception
from the meeting series.
The new Sync::Source::ical20::testLinkedItems test covers
various different operations involving such two related VEVENTs
(adding in arbitrary order, updating/deleting one or both events, etc.).
git-svn-id: https://core.forge.funambol.org/svn/core/top-level/trunk/3x/client-api/native@24122 e8e8ed6c-164c-0410-afcf-9e9a7c7d8c10
LocalTests::testChanges() now also checks some more sequences of add/update and add/delete/add.
SyncTests::testManyItems() can generate large messages, which fails with the Synthesis
server because it expects clients to obey the message size limit. Run test with fixed,
small enough limit as workaround.
git-svn-id: https://core.forge.funambol.org/svn/core/top-level/branches/b_v65/3x/client-api/native@21859 e8e8ed6c-164c-0410-afcf-9e9a7c7d8c10
CLIENT_TEST_SERVER=funambol|scheduleworld|egroupware|synthesis
Enables code which simplifies the text files just like
certain well-known servers do. This is useful for testing
to ignore the data loss introduced by these servers or (for
users) to simulate the effect of these servers on their data.
CLIENT_TEST_CLIENT=evolution|addressbook (Mac OS X/iPhone)
Same as for servers this replicates the effect of storing
data in the clients.
CLIENT_TEST_LEFT_NAME="before sync"
CLIENT_TEST_RIGHT_NAME="after sync"
CLIENT_TEST_REMOVED="removed during sync"
CLIENT_TEST_ADDED="added during sync"
Setting these variables changes the default legend
print above the left and right file during a
comparison.
CLIENT_TEST_COMPARISON_FAILED=1
Overrides the default error code when changes are found.
git-svn-id: https://core.forge.funambol.org/svn/core/top-level/branches/b_v65/3x/client-api/native@20792 e8e8ed6c-164c-0410-afcf-9e9a7c7d8c10
BEGIN:VCARD BEGIN:VCARD
N:Doe;John N:Doe;John
ADR;TYPE=HOME:Test Box #1;;Test Drive ADR;TYPE=HOME:Test Box #1;;Test Drive
1;Test Village;Lower Test County;123 1;Test Village;Lower Test County;123
45;Testovia 45;Testovia
ADR;TYPE=PARCEL:Test Box #3;;Test Dri | ADR;TYPE=HOME:Test Box #3;;Test Drive
ve 3;Test Megacity;Test County;12347; | 3;Test Megacity;Test County;12347;Ne
New Testonia | w Testonia
ADR;TYPE=WORK:Test Box #2;;Test Drive ADR;TYPE=WORK:Test Box #2;;Test Drive
2;Test Town;Upper Test County;12346; 2;Test Town;Upper Test County;12346;
Old Testovia Old Testovia
BDAY:2006-01-08 BDAY:2006-01-08
CALURI:calender <
CATEGORIES:TEST CATEGORIES:TEST
EMAIL;TYPE=HOME;X-EVOLUTION-UI-SLOT=2 | EMAIL:john.doe@other.world
:john.doe@home.priv | EMAIL;TYPE=HOME:john.doe@home.priv
EMAIL;TYPE=WORK;X-EVOLUTION-UI-SLOT=1 | EMAIL;TYPE=WORK:john.doe@work.com
:john.doe@work.com <
EMAIL;X-EVOLUTION-UI-SLOT=3:john.doe@ <
other.world <
EMAIL;X-EVOLUTION-UI-SLOT=4:john.doe@ <
yet.another.world <
FBURL:free/busy <
NICKNAME:user1 NICKNAME:user1
NOTE:This is a test case which uses a NOTE:This is a test case which uses a
lmost all Evolution fields. lmost all Evolution fields.
ORG:Test Inc.;Testing ORG:Test Inc.;Testing
ROLE:professional test case ROLE:professional test case
TEL;TYPE=CAR;X-EVOLUTION-UI-SLOT=7:ca | TEL;TYPE=CAR:car 7
r 7 | TEL;TYPE=CELL:mobile 3
TEL;TYPE=CELL;X-EVOLUTION-UI-SLOT=3:m | TEL;TYPE=FAX;TYPE=HOME:homefax 5
obile 3 | TEL;TYPE=FAX;TYPE=WORK:businessfax 4
TEL;TYPE=FAX;TYPE=HOME;X-EVOLUTION-UI | TEL;TYPE=HOME:home 2
-SLOT=5:homefax 5 | TEL;TYPE=PAGER:pager 6
TEL;TYPE=FAX;TYPE=WORK;X-EVOLUTION-UI | TEL;TYPE=PREF:primary 8
-SLOT=4:businessfax 4 | TEL;TYPE=WORK:business 1
TEL;TYPE=HOME;X-EVOLUTION-UI-SLOT=2:h <
ome 2 <
TEL;TYPE=PAGER;X-EVOLUTION-UI-SLOT=6: <
pager 6 <
TEL;TYPE=PREF;X-EVOLUTION-UI-SLOT=8:p <
rimary 8 <
TEL;TYPE=WORK;X-EVOLUTION-UI-SLOT=1:b <
usiness 1 <
TITLE:Senior Tester TITLE:Senior Tester
URL:http://john.doe.com URL:http://john.doe.com
VERSION:3.0 VERSION:3.0
X-AIM;X-EVOLUTION-UI-SLOT=1:AIM JOHN <
X-EVOLUTION-ANNIVERSARY:2006-01-09 <
X-EVOLUTION-ASSISTANT:John Doe Junior <
X-EVOLUTION-BLOG-URL:web log <
X-EVOLUTION-FILE-AS:Doe\, John X-EVOLUTION-FILE-AS:Doe\, John
X-EVOLUTION-MANAGER:John Doe Senior <
X-EVOLUTION-SPOUSE:Joan Doe <
X-EVOLUTION-VIDEO-URL:chat <
X-GROUPWISE;X-EVOLUTION-UI-SLOT=4:GRO <
UPWISE DOE <
X-ICQ;X-EVOLUTION-UI-SLOT=3:ICQ JD <
X-YAHOO;X-EVOLUTION-UI-SLOT=2:YAHOO J <
DOE <
END:VCARD END:VCARD
-------------------------------------------------------------------------------
BEGIN:VCARD BEGIN:VCARD
N:breaks;line N:breaks;line
ADR;TYPE=HOME:;Address Line 2\nAddres | ADR;TYPE=HOME:;;Address Line 1
s Line 3;Address Line 1 <
NICKNAME:user7 NICKNAME:user7
NOTE:This test case uses line breaks. NOTE:This test case uses line breaks.
This is line 1.\nLine 2.\n\nLine bre This is line 1.\nLine 2.\n\nLine bre
aks in vcard 2.1 are encoded as =0D=0 aks in vcard 2.1 are encoded as =0D=0
A.\nThat means the = has to be encode A.\nThat means the = has to be encode
d itself... d itself...
VERSION:3.0 VERSION:3.0
X-EVOLUTION-FILE-AS:breaks\, line X-EVOLUTION-FILE-AS:breaks\, line
END:VCARD END:VCARD
git-svn-id: https://core.forge.funambol.org/svn/core/top-level/branches/b_v65/3x/client-api/native@20761 e8e8ed6c-164c-0410-afcf-9e9a7c7d8c10
The branch 'Funambol' contains code developed by Patrick
Ohly in the Funambol Subversion repository and contributed
to Funambol as part of the Funambol Contributor Agreement.
It will be merged back into the SyncEvolution repository,
which is allowed by that agreement because
Funambol grants to you [the contributor] a non-exclusive, perpetual, irrevocable, worldwide, royalty free,
transferable copyright license to reproduce, prepare derivative works of, distribute
(internally and externally, in object code and, if included in Your Contributions, source
code form), use, publicly perform and publicly display Your Contributions, with the right
to sublicense all of these rights through multiple tiers of sublicensees.
CALOBJ_MOD_THIS for parent items caused problems. A *long* delay after
a sync was needed, otherwise the Connector returned garbage during
further accesses (e.g., old child event instead of the updated one).
Some code cleanup (creating ItemID from LUID).
Temporarily forked the client test (introduced update items for child/parent,
relaxed semantic selectable at runtime).
git-svn-id: https://zeitsenke.de/svn/SyncEvolution/trunk@719 15ad00c4-1369-45f4-8270-35d70d36bdcd
The API documentation of these calls doesn't say so explicitly, but it
seems that a combination of g_object_unref()/g_free()/g_list_free() is
necessary. Rewrote the eptr smart pointer so that different deleter
functions can be selected as template parameters.
git-svn-id: https://zeitsenke.de/svn/SyncEvolution/trunk@521 15ad00c4-1369-45f4-8270-35d70d36bdcd
The files were originally created for:
sys = Debian Etch
evo = Evolution trunk ~ 2.22
client = Funambol C++ client library post 6.5
git-svn-id: https://zeitsenke.de/svn/SyncEvolution/trunk@520 15ad00c4-1369-45f4-8270-35d70d36bdcd
- the new checkinstall --docdir=: syntax is used to avoid adding the name twice
- description-pak was not created and thus missing from package
git-svn-id: https://zeitsenke.de/svn/SyncEvolution/trunk@476 15ad00c4-1369-45f4-8270-35d70d36bdcd