Hi,

For a while now I've been working on porting the syncevo-dbus-server
to use the GIO dbus implementation, GDBus.  This is a configure time
option that can be explicitly set using the --with-gio-gdbus flag or,
if no flag is given, looks for an adequate version of GIO and, if
found, builds with GIO GDBus.

The work is taking place on the gio-gdbus branch. The code changes in
the dbus/server/ files have only been made to make things work with
both implementations. The GIO GDBus implmentation lives in the
src/gdbusxx directory.

Work is now being done to correct failures that the test-dbus.py
script bring up. Currently there are no more errors but 23 failures.
This is compared to 11 failures when running the test-dbus.py script
on the master branch.

One side issue... Late last week, I ran into an issue when using the
-O0 gcc flag. It was generating invalid code from the
MethodHandler::add method. With the other optimization levels this
doesn't occur. I'm not sure if this should be considered an issue as
it seems to be a known issue[1] in GCC.

Here are a list of the failures that are unique to each dbus implementation.

==============================================================
                     :: GIO GDBus only::
==============================================================
FAIL TestConnection.testCredentialsRight - send correct credentials
FAIL TestConnection.testCredentialsWrong - send invalid credentials
FAIL TestConnection.testKillInactive - block server with client A,
then let client B connect twice
FAIL TestConnection.testStartSync - send a valid initial SyncML message
FAIL TestConnection.testStartSyncTwice - send the same SyncML message
twice, starting two sessions
FAIL TestConnection.testTimeoutSync - start a sync, then wait for
server to detect that we stopped replying
FAIL TestDBusServerTerm.testNoTerm - D-Bus server must stay around during calls
FAIL TestDBusSession.testSecondSession - a second session should not
run unless the first one stops
FAIL testDBusSyncError.testSyncNoConfig - Executes a real sync with no
corresponding config.
FAIL TestLocalSync.testConcurrency - D-Bus server must remain
responsive while sync runs
FAIL TestLocalSync.testSync - run a simple slow sync between local dirs
FAIL TestSessionAPIsDummy.testAutoSyncLocalConfigError - test that
auto-sync is triggered for local sync, fails due to permanent config
error here
FAIL TestSessionAPIsDummy.testAutoSyncLocalSuccess - test that
auto-sync is done successfully for local sync between file backends
FAIL TestSessionAPIsDummy.testAutoSyncNetworkFailure - test that
auto-sync is triggered, fails due to (temporary?!) network error here
FAIL TestSessionAPIsDummy.testGetConfigWithTempConfig -  test the
config is gotten for a new temporary config.
FAIL TestSessionAPIsDummy.testRestoreByRef - restore data before or
after a given session

==============================================================
                     :: Bluez GDBus only::
==============================================================
FAIL TestDBusServerPresence.testPresenceSignal - check Server.Presence signal
FAIL TestDBusServerPresence.testServerCheckPresence - check
Server.CheckPresence()
FAIL TestDBusServerPresence.testSessionCheckPresence - check
Session.CheckPresence()


And here are the failures that both implementations have in common.

==============================================================
                     :: Common issues::
==============================================================
FAIL TestFileNotify.testRestart - set up auto sync, then check that
server restarts
FAIL TestSessionAPIsDummy.testGetConfigWithTempConfig -  test the
config is gotten for a new temporary config.
FAIL TestSessionAPIsDummy.testInteractivePassword -  test the info
request is correctly working for password
FAIL TestSessionAPIsDummy.testUpdateConfigTemp -  test the config is
just temporary updated but no effect in storage.
FAIL TestSessionAPIsReal.testSync - run a real sync with default
server and test status list and progress number
FAIL TestSessionAPIsReal.testSyncSecondSession - ask for a second
session that becomes ready after a real sync
FAIL TestSessionAPIsReal.testSyncStatusAbort -  test status is set
correctly when the session is aborted
FAIL TestSessionAPIsReal.testSyncStatusSuspend -  test status is set
correctly when the session is suspended

Cheers,
Chris

[1] http://blog.flameeyes.eu/2010/06/14/mailbox-does-gcc-miscompile-at-o0
_______________________________________________
SyncEvolution mailing list
[email protected]
http://lists.syncevolution.org/listinfo/syncevolution

Reply via email to