testManyItems now checks that the statistics are correct. This
is based on the assumption that all active sources use the same
number of test items.
The new testManyDeletes triggers a problem with 222 loop detection:
when the message to the server contains many deletes, the server
may require so many reply messages, that the client has to send
5 Alert 222 messages in a row and incorrectly treats this as a loop
that has to be aborted.
Previously the error code of the underlying program was
returned if non-zero. 1 was returned when the program
succeeded and valgrind found a problem.
Now the script always checks for valgrind problems and
returns 100 when one is found.
This change was originally committed a while back to the
runtest.py used in the nightly testing. Now we are merging
it back to the public runtest.py.
This patch adds the "Resend" test to various _SKIP and
_FAILURES lists and adds CLIENT_TEST_RESEND_TIMEOUT and
CLIENT_TEST_INTERRUPT_AT.
The long and unreadable environment strings for client-test
are now in the Python code as multiple independent strings
which get concatenated by Python:
function("foo"
"bar")
checkinstall *does* work on a Debian system, even under fakeroot.
The trick is to make /usr/src/rpm/RPMS writable for normal users.
The Makefile then copies the resulting .rpm back to the current
working directory.
The "lpia" (Low Power Intel Architecture) .debs are our normal
x86 binaries packaged with a different architecture name. The check
whether runtests.py was building for x86 broke when moving to an
64 bit bost. It must be run inside the build environment.
Originally, testing against Mobical led to the conclusion that
'PHOTO' is compressed by server but still be correct
and checking of the PHOTO property was disabled in synccompare.
Later it was found that there were decoding (Mobical
not standard compliant) and encoding (libsynthesis not
compliant when folding was off) issues (MB#6668), fixed in
libsynthesis now.
Automated testing no longer falls over a modified PHOTO property.
Either the compression is not triggered for this photo, or
something has changed. In any case, this patch enables comparison
of the PHOTO property again, because that is necessary to cover
these encoding issues.
When the installation is in the standard location, pkg-config won't
print -I and -L options. The "redirect into DESTDIR via sed" trick
depended on that, meaning that the files were not found during the
nightly build.
Now -I and -L for the DESTDIR dirs is added explicitly. LD_LIBRARY_PATH
also has to be set, for libsmltk to be found.
The nightly builds use -j to parallelize the builds. This
had the effect that the recursive "$(MAKE) install installcheck"
also ran the two targets in parallel, although install must
be done first. Now invoke the recursive make twice, first
for install and then installcheck.
'priority' values have different interpretations in vCalendar1.0
and iCalendar2.0. Add scripts to do this conversion
to make it consistent.
There are 4 places to handle this kind of conversion:
receiving from server, sending to server, reading from
client backend, and writing to client backend.
For client backend reading and writing, implement a default
behavior in m_afterReadScript and m_beforeWriteScript. Users
could override 'getSynthesisInfo' to customize its own behaviors.
Also users could use default scripts and append its own
implementations in m_afterReadScript and m_beforeWriteScript.
Note that it is possible to lose some information for
priority value.
SynthesisInfo has 2 members m_incomingScript and m_outgointScript
which are used for beforewritescript and afterreadscript.
This could make code confusing. Change their names
First, installcheck does not imply install. Packaging must
ask for both.
Second, installcheck of header files and libs must be aware
of DESTDIR. src/syncevo/installcheck-local.sh patches the -I and -L
parameters so that it includes the DESTDIR passed to it.
Third, "distbin" overwrites "prefix", which breaks this. Don't
try installcheck as part of that target.
A zero retry interval was accepted and had the effect that
each message send was aborted immediately. This clearly is
not a useful configuration, so now a value of zero is interpreted
as "don't resend".
Also clarified that interval and duration are specified in
seconds.
The revised range checking only detected negative values on 64 bit
because in that case, the negative input was interpreted as
very large positive value by strtoul(). On 32 bit it was accepted.
Added an explicit check for the undesired negative input, by looking
for a leading - sign.
Two more functions which have to be intercepted to avoid hard
dependencies on libecal or libical.
Because this is something which is likely to come up again
in the future, this patch also adds a "installcheck-local" for
undesired dependencies on libical/ecal/ebook/edataserver.
This check is triggered when building binary packages by using
"installcheck" instead of "install". It intentionally checks
.so files in the build directory, to catch problems even in
libs which are not currently installed.
Creating a new configuration in sync-ui left all sources enabled,
which meant problems for other clients doing a "sync all" if
some sources were not supported locally.
Set "sync = none" for sources that are not supported when modifying
a configuration.
WORK and HOME phone numbers imported from Google were not displayed
in Evolution because the expected VOICE flag was missing. Editing
the contact in Evolution fixed that. Now SyncEvolution itself adds
this when importing into Evolution, regardless who sent the contact.
Negative values silently disabled message resending. This was
not documented and thus unexpected, so trigger an error for
this kind of values now (using the new type checking for
integer values).
To disable the feature users would have to use very large
integer numbers (not documented, but kind of obvious I hope).
The old check used istringstream >> type as check, which
happened to accept invalid input like -1 for an unsigned
type. Now strol() strtoul() are used to do the conversion,
with the full range of error checking possible with those
functions:
for unsigned: "-1" => range error
for int: "10000000000" => range error
"", "x" => decimal value expected
"10x" => unexpected trailing non-whitespace characters: x