Re: [Evolution-hackers] "make check" failing in the e-d-s gnome-2-32
On Thu, 2011-06-09 at 14:03 +0100, Raul Gutierrez Segales wrote: [snip] > Matthew Barnes wrote: > > You could probably get away with just using a date stamp instead of > > random characters for XX. The key is really for each address book > > to have its own unique ESource ID. The attached patch uses mktemp to create a randomly-named tmp directory. [snip] > > To really automate the whole thing, the test environment is gonna have > > to set up some kind of private D-Bus session and launch the address book > > service prior to running the client-side tests, and then clean up after > > itself. I think that's possible but it's a bit beyond my expertise at > > the moment. > > > > You can kinda see why I've been dragging my feet about fixing the tests. > > Haven't had enough spare cycles to really do it properly. > > For the e-d-s backend in libfolks (not merged into master yet) we do the > following for our tests: > > - set XDG_DATA_HOME, XDG_CACHE_HOME and XDG_CONFIG_HOME to a temp dir > - start new session bus > - run tests > - clean up temp dir > > Relevant files: > > http://cgit.collabora.com/git/user/rgs/folks/tree/tests/eds/Makefile.am?h=eds-0.5 > http://cgit.collabora.com/git/user/rgs/folks/tree/tests/tools/with-session-bus-eds.sh?h=eds-0.5 > http://cgit.collabora.com/git/user/rgs/folks/tree/tests/tools/eds.sh?h=eds-0.5 Many thanks for that. I've taken the relevant bits for e-d-s - see the attached patch against the gnome-2-32 branch. If this is OK, I can try to do this for the master branch. It seems to work, though make doesn't tell me more about what's happening with each test than "PASSED" so I am not really sure that anything much is happening. This sets the XDG_* variables, but doesn't seem to start the address book service, right? Or maybe that happens automatically via activation, though I worry that that would require "make install" before "make check". One test still fails for me, either with this: ** (process:5762): WARNING **: failed to remove book; Cannot remove book: Failed to remove file '(null)': Bad address FAIL: test-ebook-stress-factory--single-book or this: (process:6466): libebook-WARNING **: e-book.c:3095: cannot get book from factory: GDBus.Error:org.freedesktop.DBus.Error.NoReply: Message did not receive a reply (timeout by message bus) ** ERROR **: failed to create addressbook: `local:/tmp/ebook-test-LBFVWV/': GDBus.Error:org.freedesktop.DBus.Error.NoReply: Message did not receive a reply (timeout by message bus) Trace/breakpoint trap FAIL: test-ebook-stress-factory--single-book -- murr...@murrayc.com www.murrayc.com www.openismus.com >From 3fb4984fa7f353ac7fe2726b557dd3536419026a Mon Sep 17 00:00:00 2001 From: Murray Cumming Date: Wed, 15 Jun 2011 13:15:07 +0200 Subject: [PATCH] * addressbook/tests/: Add a tools/ directory with .sh files from libfolks/tests/tools/, to let us start and stop a private D-Bus session, and set XDG_* environment variables for local use of EDS, when running tests. * addressbook/tests/ebook/Makefile.am: Set TESTS_ENVIRONMENT to run the tests with the private D-Bus session. --- addressbook/tests/Makefile.am |2 +- addressbook/tests/ebook/Makefile.am |7 ++ addressbook/tests/tools/Makefile.am |5 + addressbook/tests/tools/dbus-session.sh | 114 +++ addressbook/tests/tools/eds.sh | 25 + addressbook/tests/tools/with-session-bus-eds.sh | 44 + configure.ac|1 + 7 files changed, 197 insertions(+), 1 deletions(-) create mode 100644 addressbook/tests/tools/Makefile.am create mode 100644 addressbook/tests/tools/dbus-session.sh create mode 100644 addressbook/tests/tools/eds.sh create mode 100755 addressbook/tests/tools/with-session-bus-eds.sh diff --git a/addressbook/tests/Makefile.am b/addressbook/tests/Makefile.am index 591bdff..36ae876 100644 --- a/addressbook/tests/Makefile.am +++ b/addressbook/tests/Makefile.am @@ -1,3 +1,3 @@ -SUBDIRS = vcard ebook +SUBDIRS = tools vcard ebook -include $(top_srcdir)/git.mk diff --git a/addressbook/tests/ebook/Makefile.am b/addressbook/tests/ebook/Makefile.am index 32c8e40..3671344 100644 --- a/addressbook/tests/ebook/Makefile.am +++ b/addressbook/tests/ebook/Makefile.am @@ -22,6 +22,13 @@ TEST_LIBS = \ libebook-test-utils.la \ $(NULL) +RUN_WITH_PRIVATE_BUS = $(top_srcdir)/addressbook/tests/tools/with-session-bus-eds.sh + +TESTS_ENVIRONMENT = \ + $(RUN_WITH_PRIVATE_BUS) \ + --session \ + -- + # Should be kept ordered approximately from least to most difficult/complex TESTS = \ test-ebook-remove \ diff --git a/addressbook/tests/tools/Makefile.am b/addressbook/tests/tools/Makefile.am new file mode 100644 index 000..6abf3bc --- /dev/null +++ b/addressbook/tests/tools/Makefile.am @@ -0,0 +1,5 @@ +EXTRA_DIST = \ + with-session-bus.sh \ + dbus-session.sh + +-include $(top_srcdir)/git.mk diff --git a/
Re: [Evolution-hackers] "make check" failing in the e-d-s gnome-2-32
Le mercredi 15 juin 2011 à 13:39 +0200, Murray Cumming a écrit : > On Thu, 2011-06-09 at 14:03 +0100, Raul Gutierrez Segales wrote: > [snip] > > Matthew Barnes wrote: > > > You could probably get away with just using a date stamp instead of > > > random characters for XX. The key is really for each address book > > > to have its own unique ESource ID. > > The attached patch uses mktemp to create a randomly-named tmp > directory. > > [snip] > > > To really automate the whole thing, the test environment is gonna have > > > to set up some kind of private D-Bus session and launch the address book > > > service prior to running the client-side tests, and then clean up after > > > itself. I think that's possible but it's a bit beyond my expertise at > > > the moment. > > > > > > You can kinda see why I've been dragging my feet about fixing the tests. > > > Haven't had enough spare cycles to really do it properly. > > > > For the e-d-s backend in libfolks (not merged into master yet) we do the > > following for our tests: > > > > - set XDG_DATA_HOME, XDG_CACHE_HOME and XDG_CONFIG_HOME to a temp dir > > - start new session bus > > - run tests > > - clean up temp dir > > > > Relevant files: > > > > http://cgit.collabora.com/git/user/rgs/folks/tree/tests/eds/Makefile.am?h=eds-0.5 > > http://cgit.collabora.com/git/user/rgs/folks/tree/tests/tools/with-session-bus-eds.sh?h=eds-0.5 > > http://cgit.collabora.com/git/user/rgs/folks/tree/tests/tools/eds.sh?h=eds-0.5 > > Many thanks for that. I've taken the relevant bits for e-d-s - see the > attached patch against the gnome-2-32 branch. If this is OK, I can try > to do this for the master branch. > > It seems to work, though make doesn't tell me more about what's > happening with each test than "PASSED" so I am not really sure that > anything much is happening. > > This sets the XDG_* variables, but doesn't seem to start the address > book service, right? Or maybe that happens automatically via activation, > though I worry that that would require "make install" before "make > check". Right - its D-Bus activated on the newly launched session bus. I am guessing what we'd need is a .service file to point to the e-addressbook-factory binary inside of e-d-s' source directory. We could point the newly launched dbus-daemon to a special directory of .service files via a stanza in a custom d-bus config file. Cheers, Raúl ___ evolution-hackers mailing list evolution-hackers@gnome.org To change your list options or unsubscribe, visit ... http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] "make check" failing in the e-d-s gnome-2-32
On Wed, 2011-06-15 at 16:04 +0100, Raul Gutierrez Segales wrote: > Right - its D-Bus activated on the newly launched session bus. I am > guessing what we'd need is a .service file to point to the > e-addressbook-factory binary inside of e-d-s' source directory. > > We could point the newly launched dbus-daemon to a special directory > of .service files via a stanza in a custom d-bus config > file. Couldn't the test script just launch it explicitly before running any test programs? Then you don't have to deal with service files at all. $(top_builddir)/addressbook/libedata-book/e-addressbook-factory -r The -r (or --keep-running) is something I added fairly recently for my own testing. It prevents the daemon from automatically shutting down when the last client connection is closed. Then it's just a matter of sending the daemon a SIGTERM when tests are complete. ___ evolution-hackers mailing list evolution-hackers@gnome.org To change your list options or unsubscribe, visit ... http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] "make check" failing in the e-d-s gnome-2-32
On Wed, 2011-06-15 at 11:47 -0400, Matthew Barnes wrote: > $(top_builddir)/addressbook/libedata-book/e-addressbook-factory -r > > The -r (or --keep-running) is something I added fairly recently for my > own testing. It prevents the daemon from automatically shutting down > when the last client connection is closed. Then it's just a matter of > sending the daemon a SIGTERM when tests are complete. Hi, there is 10 seconds delay for the automatic shutdown, and time between starting each test may not be that long, it would be quite surprising if so, then I'd rather suggest not using -r, because it's a good feedback whether everything passed really successfully (actually, whether tests are written correctly and whether they are freeing all what they should), because the factory may close itself when tests are completed. I used this feedback when working on EClient tests, and I discovered few leaks with its help. Bye, Milan ___ evolution-hackers mailing list evolution-hackers@gnome.org To change your list options or unsubscribe, visit ... http://mail.gnome.org/mailman/listinfo/evolution-hackers