Re: [Evolution-hackers] "make check" failing in the e-d-s gnome-2-32

2011-06-15 Thread Murray Cumming
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

2011-06-15 Thread Raul Gutierrez Segales
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

2011-06-15 Thread Matthew Barnes
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

2011-06-15 Thread Milan Crha
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