On Wed, 2009-11-18 at 18:58 +0100, Patrick Ohly wrote:
> I'm also still looking at why the "done" signal is sent more than once.
> I think that shouldn't happen.

And it is really only sent once. The problem was in the test-dbus.py
script. Here's the fix and a more detailed explanation:

commit ac1c3c032ccae55f8697f75341f7becd2c3adfb0
Author: Patrick Ohly <[email protected]>
Date:   Wed Nov 18 22:49:48 2009 +0100

    D-Bus testing: only react to D-Bus signals while the test runs
    
    Registered Python D-Bus signal handlers cannot be removed.
    This had the undesired effect that when running multiple tests,
    old signal handlers where still active and might have undesired
    effects, like calling loop.quit() or recording events multiple
    times (because both the old and new handler are invoked).
    
    To solve this problem, DBusUtil.runTest() sets self.running = True
    while the test is active. All signal handlers must check this
    flag and not do anything if it is False.
    
    Debugging such problems was harder than necessary because recording
    the "quit_events" inside DBusUtil instances had the effect that the
    records of previous signal handlers where not visible in the ensuing,
    failing test.
    
    Therefore this patch also turns the DBusUtil instance variables into
    class variables which are shared by the tests. As a side effect, it is
    no longer necessary to call DBusUtil.__init__. Instead the variables
    are reset in runTest().

Yongsheng, I pushed this and a fix for sending SYNC_DONE at the end of
Session::run() into "pohly". Please review.


-- 
Best Regards, Patrick Ohly

The content of this message is my personal opinion only and although
I am an employee of Intel, the statements I make here in no way
represent Intel's position on the issue, nor am I authorized to speak
on behalf of Intel on this matter.


_______________________________________________
SyncEvolution mailing list
[email protected]
http://lists.syncevolution.org/listinfo/syncevolution

Reply via email to