Instead of having a Cmdline and relaying some calls to it (parse(),
configWasModified()), CmdlineWrapper should derive from Cmdline,
because that will make those (and all future Cmdline) calls available
without having to write bridge code.
The test uses a local sync config with just one address book. It
checks the right ordering of stdout/stderr output by merging both into
one stream. Checking D-Bus signals during the sync could (should?!)
be added.
"Comparison impossible" was incorrectly printed after a successful
comparison on the target side of local sync.
The reason is that SIGCHLD SIG_IGN prevented reading the synccompare
return code. That code was probably added to prevent zombies when
syncevo-local-sync dies before it reads the return code of its
children.
Removing the SIGCHLD SIG_IGN fixes synccompare output issue. A test
for the sync output will be committed next - the issue was found while
writing the test.
Code for handling zombies still needs to be added to all long-running
process (client-test, syncevo-dbus-server).
If, and only if, SyncEvolution is compiled with module support,
then the error message will include information about the
loaded modules. Covered by checking the expected error with a regex
that has that additional information as an optional clause.
The code which iterates over watches used a freed list entry when the
watch callback removed the watch itself. Fixed by moving to the next
list element before invoking the callback. This still doesn't fix the
issue if the callback removes exactly the next list element.
The --luids parameters were not sent correctly to the
syncevo-dbus-server, the default when --daemon=no wasn't given. As a
result the operation was applied to all items instead of just the
selected ones.
The syncevo-dbus-server, in contrast to the Cmdline C++ class, always
uses a keyring and then only returns "-" instead of the real password.
ScheduleWorldConfig() is no longer a global function.
Looking into config.h is one way of making the test optional. That'll
work for the nightly testing. A cleaner approach might be to look at
the output of backend=?.
The Python createFiles() split at all occurences of a colon, instead
of just at the first one. That threw away all property values in the
vCard test data of testItemOperations.
The "if True" was used for debugging the fallback code. The check for
availability was broken, it needs to look at unittest.TestCase. Now
the code uses the fallback only if necessary, as originally intended.
The old ~/.sync4j config must be created in the simulated home
directory and $HOME of syncevo-dbus-server/syncevolution must be set
to that directory. The latter cannot be done unconditionally (some
tests may depend on a functional EDS), so a new "own_home" flag
was added.
If we pass False to runCmdline's expectSuccess then the test should
fail, because we expected failure. Previously only checking if
application succeeded when expected was done.