platform/upstream/folks.git
11 years agoPass the --driver version to valadoc to minimize complications.
Travis Reitter [Fri, 7 Jun 2013 16:11:04 +0000 (09:11 -0700)]
Pass the --driver version to valadoc to minimize complications.

This ensures that we're building the library with the same version of Vala
that valadoc uses

11 years agoUse correct @return instead of @returns (which breaks valadoc)
Travis Reitter [Fri, 7 Jun 2013 00:08:19 +0000 (17:08 -0700)]
Use correct @return instead of @returns (which breaks valadoc)

11 years agoBump libebook requirement to un-break GIR bindings.
Travis Reitter [Thu, 6 Jun 2013 23:01:48 +0000 (16:01 -0700)]
Bump libebook requirement to un-break GIR bindings.

E.BookClient.connect() had been annotated to return void so this should fix
the issue.

11 years agobackends: eds: make the personna store backend more 'async'
Lionel Landwerlin [Mon, 13 May 2013 20:22:02 +0000 (21:22 +0100)]
backends: eds: make the personna store backend more 'async'

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=700253

11 years agoCorrectly check for existence of Zeitgeist.
Travis Reitter [Fri, 26 Apr 2013 00:45:42 +0000 (17:45 -0700)]
Correctly check for existence of Zeitgeist.

11 years agoCorrect the terminology in Zeitgeist check failure
Travis Reitter [Wed, 24 Apr 2013 18:22:15 +0000 (11:22 -0700)]
Correct the terminology in Zeitgeist check failure

11 years agoRemove autodependency on zeitgeist
Maciej Piechotka [Sat, 20 Apr 2013 11:32:19 +0000 (13:32 +0200)]
Remove autodependency on zeitgeist

11 years agobuild fix: include folks-generics in docs arguments
Travis Reitter [Mon, 22 Apr 2013 23:21:37 +0000 (16:21 -0700)]
build fix: include folks-generics in docs arguments

11 years agoAdd warnings (normally fatal) on use of archaic C features
Simon McVittie [Thu, 11 Apr 2013 10:53:41 +0000 (11:53 +0100)]
Add warnings (normally fatal) on use of archaic C features

We don't want these even in C code generated by Vala, and certainly not
in hand-written C code.

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=697354
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
11 years agoEnsure that the C bits of TestCase are pre-declared in a header
Simon McVittie [Thu, 11 Apr 2013 11:05:08 +0000 (12:05 +0100)]
Ensure that the C bits of TestCase are pre-declared in a header

This lets us verify that their Vala and C ABIs are the same: if they
are not, compilation will fail.

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=697354
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
11 years agoDeclare internal function folks_persona_store_set_is_user_set_default()
Simon McVittie [Fri, 12 Apr 2013 11:20:43 +0000 (12:20 +0100)]
Declare internal function folks_persona_store_set_is_user_set_default()

As explained in the comment, I can't find any better way to do this.
Implicit declarations are Bad, so we should be making them into errors
by default.

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=697354
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
[added a comment as requested -smcv]
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
11 years agoInclude ERROR_CFLAGS everywhere we compile C code
Simon McVittie [Mon, 8 Apr 2013 10:50:38 +0000 (11:50 +0100)]
Include ERROR_CFLAGS everywhere we compile C code

AM_CFLAGS was missing from a couple of foo_CFLAGS variables (it isn't
"inherited" automatically), so add that too.

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=697354
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
11 years agoRe-brand ERROR_CFLAGS to C_ERROR_CFLAGS
Simon McVittie [Mon, 8 Apr 2013 10:43:25 +0000 (11:43 +0100)]
Re-brand ERROR_CFLAGS to C_ERROR_CFLAGS

These are flags that we only use when compiling hand-written C code,
mostly originating from telepathy-glib. We can't be that strict with
the C code generated by Vala, because it's full of questionable things
(which the Vala compiler verifies are OK, but the C compiler still warns
about).

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=697354
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
11 years agoTpfPersonaStore: make _supported_fields, _supported_fields_ro private
Simon McVittie [Thu, 11 Apr 2013 10:03:26 +0000 (11:03 +0100)]
TpfPersonaStore: make _supported_fields, _supported_fields_ro private

Making them "internal" means we end up #include'ing small-set.h, which
we don't install, so nothing can be built against the installed
libfolks-telepathy. Nothing outside this file uses those members
directly anyway.

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=697542
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
11 years agoupdate Simplified Chinese (zh_CN) translation
Wylmer Wang [Sat, 6 Apr 2013 08:37:15 +0000 (16:37 +0800)]
update Simplified Chinese (zh_CN) translation

11 years agoDeclare folks_small_set_copy properly
Simon McVittie [Thu, 4 Apr 2013 17:30:18 +0000 (18:30 +0100)]
Declare folks_small_set_copy properly

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=687161
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
11 years agotests: clear out various D-Bus-related variables
Simon McVittie [Fri, 5 Apr 2013 13:06:09 +0000 (14:06 +0100)]
tests: clear out various D-Bus-related variables

The actual terminal in gnome-terminal 3.8 is an activatable service,
so it has DBUS_STARTER_ADDRESS in its environment. telepathy-glib prefers
DBUS_STARTER_ADDRESS over DBUS_SESSION_BUS_ADDRESS, but GTestDBus
doesn't clear or set the former, only the latter; so we end up trying to
use the real bus when run under a recent gnome-terminal.

See also <https://bugs.freedesktop.org/show_bug.cgi?id=63119>.

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=697261
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
[added FIXME comment about #697348]
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
11 years agoall tests: disable non-local GIO VFS backends, such as gvfs
Simon McVittie [Thu, 4 Apr 2013 14:39:42 +0000 (15:39 +0100)]
all tests: disable non-local GIO VFS backends, such as gvfs

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=697261
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
11 years agotracker tests: do not request starting all Tracker services
Simon McVittie [Thu, 4 Apr 2013 14:35:12 +0000 (15:35 +0100)]
tracker tests: do not request starting all Tracker services

We don't care about tracker-miner-fs etc. for these tests; all we want
to do is stop any running Tracker stuff. D-Bus service activation will
ensure that we get the necessary services when they're needed, without
starting the unnecessary ones.

(This fixes the Tracker tests on a system without tracker-miner-fs.)

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=697261
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
11 years agoUse SmallSet.copy() where it makes sense
Simon McVittie [Wed, 3 Apr 2013 17:12:23 +0000 (18:12 +0100)]
Use SmallSet.copy() where it makes sense

It isn't more than fractionally faster in tests/eds/perf, but might help.

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=687161
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
11 years agoAdd fast-path iteration for SmallSet
Simon McVittie [Thu, 28 Mar 2013 14:46:55 +0000 (14:46 +0000)]
Add fast-path iteration for SmallSet

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=687161
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
11 years agofolks, backends: use "small sets" instead of hash sets most of the time
Simon McVittie [Thu, 4 Apr 2013 12:00:53 +0000 (13:00 +0100)]
folks, backends: use "small sets" instead of hash sets most of the time

Notable exceptions are:

* sets of personas that are, or might be, the entire set from a backend
  (possible future refinement: use a SmallSet if there aren't many)

* sets of potentially many Individuals (likewise)

* the object cache (potentially pretty large)

* debug stuff (not relevant for performance)

* the set of IM addresses being matched (we want to keep this O(1),
  but it should be a GHashTable)

This speeds up tests/eds/perf by around 5%.

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=687161
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
[squashed in responses to review -smcv]
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
11 years agoFolks.SmallSet: add and test
Simon McVittie [Thu, 4 Apr 2013 11:58:50 +0000 (12:58 +0100)]
Folks.SmallSet: add and test

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=687161
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
[squashed in responses to review -smcv]
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
11 years agocontactlist: copy .deps to the same place as .vapi if necessary
Simon McVittie [Wed, 3 Apr 2013 17:49:23 +0000 (18:49 +0100)]
contactlist: copy .deps to the same place as .vapi if necessary

valac specifically expects to find them in the same place: it's not
enough to have them both in the search path.

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=697188
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
11 years agoCompile tp-lowlevel.vapi before libfolks_telepathy_la_vala.stamp
Simon McVittie [Wed, 3 Apr 2013 15:52:38 +0000 (16:52 +0100)]
Compile tp-lowlevel.vapi before libfolks_telepathy_la_vala.stamp

The make rules generated by Automake are all done in terms of a "stamp"
file in the $(srcdir), so if we want to give it more dependencies,
we need to do the same. This fixes a clean out-of-tree build.

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=697188
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
11 years agoDo not explicitly link libfolks-internal.la into things
Simon McVittie [Tue, 2 Apr 2013 18:00:02 +0000 (19:00 +0100)]
Do not explicitly link libfolks-internal.la into things

libfolks.la embeds a copy of libfolks-internal.la, so every public
(or internal) symbol in libfolks-internal.la is available in
libfolks.la, even if linked with -Wl,--no-copy-dt-needed-entries.

If libfolks-internal.la defines a GObject type, then linking two copies
of it is actively harmful, because they can't both be registered with the
type system.

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=687161
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
11 years agobackends: when adding a persona by details, do not assume HashSet
Simon McVittie [Tue, 2 Apr 2013 17:30:13 +0000 (18:30 +0100)]
backends: when adding a persona by details, do not assume HashSet

All we need is a Set, so we shouldn't need to cast this strictly.

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=687161
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
11 years agoBy default, do debug output iff at least one debug domain is enabled
Simon McVittie [Tue, 2 Apr 2013 16:53:36 +0000 (17:53 +0100)]
By default, do debug output iff at least one debug domain is enabled

Previously, debug output (and expensive checks that are enabled alongside
debug output) was always enabled unless explicitly disabled, but
Philip noted that this was not intentional.

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=687161
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
11 years agoIndividualAggregator: assert and assume that _link_map[key][i] != null
Simon McVittie [Thu, 28 Mar 2013 12:17:38 +0000 (12:17 +0000)]
IndividualAggregator: assert and assume that _link_map[key][i] != null

The link map's type is non-nullable, and when we add individuals
to the link map we do so through a function that does not allow
a null argument, so we don't need to sprinkle (!) casts around.

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=687161
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
11 years agoIndividualAggregator: use a GHashTable<string,GPtrArray> for the link map
Simon McVittie [Wed, 27 Mar 2013 16:20:55 +0000 (16:20 +0000)]
IndividualAggregator: use a GHashTable<string,GPtrArray> for the link map

The link map is a hot path, particularly when matching multiple copies
of the same contact. Speed this up.

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=687161
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
11 years agoAdded Basque language\nAdded 'eu' (Basque) to LINGUAS
Inaki Larranaga Murgoitio [Tue, 2 Apr 2013 08:40:38 +0000 (10:40 +0200)]
Added Basque language\nAdded 'eu' (Basque) to LINGUAS

11 years agoEdsf.PersonaStore: defer contacts-complete like contacts-added
Simon McVittie [Tue, 26 Mar 2013 19:13:46 +0000 (19:13 +0000)]
Edsf.PersonaStore: defer contacts-complete like contacts-added

Otherwise, we signal quiescence while not actually quiescent: our
initial batch of contacts could still be coming in.

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=696659
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
11 years agoRemove a remnant of the avatar coming from the environment
Simon McVittie [Mon, 25 Mar 2013 17:28:44 +0000 (17:28 +0000)]
Remove a remnant of the avatar coming from the environment

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=690830
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
11 years agoSet up tests' backend paths in Vala code
Simon McVittie [Tue, 26 Mar 2013 18:15:00 +0000 (18:15 +0000)]
Set up tests' backend paths in Vala code

One less thing in TESTS_ENVIRONMENT.

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=690830
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
11 years agoNEWS: updated to include eds non-blocking change processing
Patrick Ohly [Tue, 26 Mar 2013 15:53:02 +0000 (16:53 +0100)]
NEWS: updated to include eds non-blocking change processing

11 years agoeds: avoid blocking event processing
Patrick Ohly [Thu, 21 Feb 2013 18:31:38 +0000 (19:31 +0100)]
eds: avoid blocking event processing

When there are many incoming D-Bus change notifications, processing of
other D-Bus messages can be delayed considerably. This commit is a
first step towards solving this by caching the change notifications
and processing them with lower priority in a glib idle callback.

Ordering of the changes relative to each other is preserved, so
semantically this is the same as immediate processing.

The worst-case scenario is when contacts get added one-by-one to EDS
address books while folks is running, because then each change
triggers one D-Bus signal. With 2000 contacts and four address books
on a fast laptop, the process hosting folks became unresponsive for
137s. The patch reduced that to 0.1s. The downside is an increase of
total test runtime of 4%.

In the scenario where data is already in EDS when folks starts, the
patch reduced response time from 2.3s to 0.2s.

See https://bugs.freedesktop.org/show_bug.cgi?id=60851#c6 for details.

11 years agoEDS testing: allow EDS to add additional phone parameters
Patrick Ohly [Mon, 25 Mar 2013 14:39:33 +0000 (15:39 +0100)]
EDS testing: allow EDS to add additional phone parameters

When EDS is compiled with libphonenumber support, it automatically
computes a normalized E.164 representation of each phone number and
returns it as an additional X-EVOLUTION-E164 parameter.

This broke the strict phone_fd.equals check in set-phones, because it
compared against a PhoneFieldDetails without that parameter. Now the
test only looks for a phone number with "1234" as value and checks for
the expected type after returning from the event loop.

11 years agotesting: avoid false warning
Patrick Ohly [Mon, 25 Mar 2013 13:37:26 +0000 (14:37 +0100)]
testing: avoid false warning

When FOLKS_BACKEND_PATH is set to the build dirs during testing, the
"content type of '%s' appears to be '%s' which looks suspicious. Have
you installed shared-mime-info?" warning gets triggered repeatedly,
because these dirs contain all kinds of files (executables, compiler
dependency files, etc.) which are not expected in the normal install
location.

This is annoying when running a test with "make <test>.gdb" because
gdb stops on a glib trace point for each warning. Therefore disable
the warning when FOLKS_BACKEND_PATH is set. Extending the whitelist
has the drawback that it might not catch all files that can appear
there in the future.

11 years agotesting: do not require telepathy
Patrick Ohly [Mon, 25 Mar 2013 13:30:48 +0000 (14:30 +0100)]
testing: do not require telepathy

Previously, all testing was disabled when the Telepathy backend was
disabled. That is too strict. For example, the EDS backend tests can
work without it.

Only the core folks tests and of course the Telepathy tests depend on
the Telepathy backend and thus must be disabled when that backend is
disabled.

Adding the TP backend path to the FOLKS_BACKEND_PATH env variable
must be conditional, otherwise there are errors about not finding that
.so file when running the other tests.

11 years agoUpdated kn translations
Shankar Prasad [Mon, 25 Mar 2013 17:44:36 +0000 (23:14 +0530)]
Updated kn translations

11 years agoFix comment for get_built_test_data()
Simon McVittie [Wed, 20 Mar 2013 18:54:51 +0000 (18:54 +0000)]
Fix comment for get_built_test_data()

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=696104
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
11 years agoUpdated Telugu Translations
Krishnababu Krothapalli [Mon, 25 Mar 2013 09:43:40 +0000 (15:13 +0530)]
Updated Telugu Translations

11 years agoCompleted for Malayalam
Ani Peter [Mon, 25 Mar 2013 05:28:42 +0000 (10:58 +0530)]
Completed  for Malayalam

11 years agoL10N: Updated Persian Translation
Arash Mousavi [Sat, 23 Mar 2013 15:22:34 +0000 (19:52 +0430)]
L10N: Updated Persian Translation

11 years agoUpdated Russian translation
Yuri Myasoedov [Sat, 23 Mar 2013 13:22:57 +0000 (17:22 +0400)]
Updated Russian translation

11 years agoUpdated Odia Language along with FUEL implementation
ManojKumar Giri [Fri, 22 Mar 2013 13:42:47 +0000 (19:12 +0530)]
Updated Odia Language along with FUEL implementation

11 years agoUpdated Marathi Translations
Sandeep Sheshrao Shedmake [Fri, 22 Mar 2013 10:34:09 +0000 (16:04 +0530)]
Updated Marathi Translations

11 years agoTamil Translations Updated
Shantha kumar [Fri, 22 Mar 2013 09:16:26 +0000 (14:46 +0530)]
Tamil Translations Updated

11 years agohindi translation
Rajesh Ranjan [Thu, 21 Mar 2013 07:52:03 +0000 (13:22 +0530)]
hindi translation

11 years agoAdd missing setlocale calls to helper binaries
Simon McVittie [Wed, 20 Mar 2013 18:37:54 +0000 (18:37 +0000)]
Add missing setlocale calls to helper binaries

11 years agoAdd a performance test for contacts in e-d-s
Simon McVittie [Mon, 18 Mar 2013 20:28:20 +0000 (20:28 +0000)]
Add a performance test for contacts in e-d-s

11 years agoeds test: add some helper programs for performance testing
Simon McVittie [Wed, 20 Mar 2013 16:42:35 +0000 (16:42 +0000)]
eds test: add some helper programs for performance testing

11 years agoSimplify tests that can time out
Simon McVittie [Wed, 20 Mar 2013 16:03:14 +0000 (16:03 +0000)]
Simplify tests that can time out

There are basically two patterns:

* something should stop the main loop within n seconds; if not, that's
  failure (this is now loop_run_with_timeout)
* run the main loop for n seconds, then check whether things we wanted
  to happen happened (this is now loop_run_with_non_fatal_timeout)

The latter is basically a bug in itself; I'm not going to fix that
right now, but I did mark it as deprecated.

In both cases, we want to adjust the timeout for running under Valgrind
or Callgrind, which makes everything slow.

11 years agobuild: ensure libtp-test-contactlist is built before its dependents
Travis Reitter [Wed, 20 Mar 2013 19:43:23 +0000 (12:43 -0700)]
build: ensure libtp-test-contactlist is built before its dependents

Autotools somehow wasn't picking up the dependencies correctly, so this
forces it to build the support library first.

As the comment says, there's probably a better fix but time is precious.

11 years agoNEWS for locale bits
Simon McVittie [Wed, 20 Mar 2013 16:59:03 +0000 (16:59 +0000)]
NEWS for locale bits

11 years agoTestCase: set locale from the environment
Simon McVittie [Wed, 20 Mar 2013 11:34:37 +0000 (11:34 +0000)]
TestCase: set locale from the environment

This fixes an annoyance I'd had for a while: UTF-8 arrows etc.
in debug messages came out as "?", because until we call setlocale()
we're in the C locale, whose character set is ASCII (and some layer
of library responds by transcoding our strings into ASCII).

With this change, running the tests in en_GB.UTF-8 results in
Unicode arrows and more comprehensible output.

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=696179
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
11 years agofolks-inspect, folks-import: initialize localization from the environment
Simon McVittie [Wed, 20 Mar 2013 11:27:21 +0000 (11:27 +0000)]
folks-inspect, folks-import: initialize localization from the environment

Otherwise, $LANG etc. are ignored and we stay in the C locale.

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=696179
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
11 years agoUpdated Korean translation
Seong-ho Cho [Wed, 20 Mar 2013 15:02:03 +0000 (00:02 +0900)]
Updated Korean translation

11 years agoAdd support for running tests under callgrind as well as memcheck
Simon McVittie [Wed, 20 Mar 2013 13:41:23 +0000 (13:41 +0000)]
Add support for running tests under callgrind as well as memcheck

Bug https://bugzilla.gnome.org/show_bug.cgi?id=696104
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
[... and document it in HACKING in response to review -smcv]
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
11 years agoEdsTest.Backend: add contacts as a batch, not one at a time
Simon McVittie [Fri, 15 Mar 2013 18:22:38 +0000 (18:22 +0000)]
EdsTest.Backend: add contacts as a batch, not one at a time

This should make it much quicker to add contacts in bulk.

Bug https://bugzilla.gnome.org/show_bug.cgi?id=696104
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
11 years agoEdsTest.Backend: use an array for contacts
Simon McVittie [Fri, 15 Mar 2013 18:15:59 +0000 (18:15 +0000)]
EdsTest.Backend: use an array for contacts

This means we don't have to worry about whether prepending is faster
than appending, or about Vala getting confused about ownership in
linked lists.

Bug https://bugzilla.gnome.org/show_bug.cgi?id=696104
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
11 years agoEdsTest.Backend: clear up more thoroughly after tests
Simon McVittie [Tue, 19 Mar 2013 14:22:04 +0000 (14:22 +0000)]
EdsTest.Backend: clear up more thoroughly after tests

Bug https://bugzilla.gnome.org/show_bug.cgi?id=690830
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
[redundant line removed in response to review -smcv]
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
11 years agoAdd infrastructure for finding test data files, and use it for avatars
Simon McVittie [Tue, 19 Mar 2013 17:06:03 +0000 (17:06 +0000)]
Add infrastructure for finding test data files, and use it for avatars

Again, I've speculatively added support for a FOLKS_TESTS_INSTALLED
variable, because one day I'd like "make installcheck" to work.

Bug https://bugzilla.gnome.org/show_bug.cgi?id=690830
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
11 years agoSimplify how we get PACKAGE_DATADIR
Simon McVittie [Tue, 19 Mar 2013 16:55:44 +0000 (16:55 +0000)]
Simplify how we get PACKAGE_DATADIR

DATA_DIR and PACKAGE_DATADIR appear to have been intended to both be
${prefix}/share/folks, but due to a typo (sharedir vs. shareddir)
DATA_DIR was actually defined to an empty string. Neither is actually
used anywhere at the moment.

Bug https://bugzilla.gnome.org/show_bug.cgi?id=690830
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
11 years agoNEWS: describe the change to tools' locale search path
Simon McVittie [Wed, 20 Mar 2013 10:51:08 +0000 (10:51 +0000)]
NEWS: describe the change to tools' locale search path

11 years agotools: use the right locale directory
Simon McVittie [Tue, 19 Mar 2013 16:53:36 +0000 (16:53 +0000)]
tools: use the right locale directory

I happened to notice that they're misusing $(pkgdatadir) - $(pkgdatadir)
is $(datadir)/$(PACKAGE), i.e. typically /usr/share/folks, but
localization is installed to $(localedir), typically /usr/share/locale.

This resulted in the tools looking in /opt/gnome-3.8/share/folks/locale
in my installation, instead of the correct /opt/gnome-3.8/share/locale.

11 years agoAdd infrastructure to run helper test binaries
Simon McVittie [Mon, 18 Mar 2013 19:34:17 +0000 (19:34 +0000)]
Add infrastructure to run helper test binaries

I've included basic infrastructure to run them from an installed
path instead of the builddir, because there seems to be considerable
interest in that at the moment.

Bug https://bugzilla.gnome.org/show_bug.cgi?id=690830
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
[document capture_stdout in response to review -smcv]
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
11 years agoIn tests that do not rely on with-session-bus*.sh, use a transient $HOME
Simon McVittie [Tue, 19 Mar 2013 12:43:21 +0000 (12:43 +0000)]
In tests that do not rely on with-session-bus*.sh, use a transient $HOME

This is one more way in which we can avoid touching the user's
real files.

Bug https://bugzilla.gnome.org/show_bug.cgi?id=690830
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
[use "this." in response to review -smcv]
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
11 years agoRun Telepathy test cases under GTestDBus instead of with-session-bus.sh
Simon McVittie [Tue, 19 Mar 2013 12:25:42 +0000 (12:25 +0000)]
Run Telepathy test cases under GTestDBus instead of with-session-bus.sh

Bug https://bugzilla.gnome.org/show_bug.cgi?id=690830
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
11 years agoRun libsocialweb tests under GTestDBus instead of with-session-bus.sh
Simon McVittie [Tue, 19 Mar 2013 12:23:34 +0000 (12:23 +0000)]
Run libsocialweb tests under GTestDBus instead of with-session-bus.sh

Bug https://bugzilla.gnome.org/show_bug.cgi?id=690830
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
11 years agoLibsocialwebTest.Backend: clean up object registrations in tear_down()
Simon McVittie [Tue, 19 Mar 2013 12:03:57 +0000 (12:03 +0000)]
LibsocialwebTest.Backend: clean up object registrations in tear_down()

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=690830
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
[more comments in response to review -smcv]
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
11 years agoLibsocialwebTest: don't try to keep ownership of name through tear_down()
Simon McVittie [Fri, 15 Mar 2013 15:35:51 +0000 (15:35 +0000)]
LibsocialwebTest: don't try to keep ownership of name through tear_down()

This is a step towards replacing with-session-bus*.sh with GTestDBus,
which cleans up our D-Bus connection while the test is still running.
If we do that without this change, then the NameLost callback is triggered
when we get disconnected from D-Bus, causing an assertion failure.

This also should reduce circular references, by making sure closures
that contain "this" get cleaned up.

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=690830
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
11 years agoAdd infrastructure to run tests under GTestDBus
Simon McVittie [Wed, 20 Mar 2013 10:36:26 +0000 (10:36 +0000)]
Add infrastructure to run tests under GTestDBus

For now, all library TestCase subclasses except the one for key-files
override this back to "do nothing" and rely on being run under
with-session-bus.sh, because I haven't checked whether they survive
having the D-Bus session bus disconnected from under them.

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=690830
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
[added comments about the undesirable dbus-1 dependency -smcv]
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
11 years ago[l10n] Updated Italian translation.
Gianvito Cavasoli [Tue, 19 Mar 2013 21:58:10 +0000 (22:58 +0100)]
[l10n] Updated Italian translation.

11 years ago[l10n] Added Tadjik translation
Victor Ibragimov [Tue, 19 Mar 2013 21:33:55 +0000 (22:33 +0100)]
[l10n] Added Tadjik translation

11 years agoall Makefiles: don't ignore or clean .c files not corresponding to Vala
Simon McVittie [Mon, 18 Mar 2013 19:01:59 +0000 (19:01 +0000)]
all Makefiles: don't ignore or clean .c files not corresponding to Vala

This will become more important if we use C to implement fast-paths
and faster data structures.

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=695381
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
11 years agoTestCase: avoid circular refs between GTest and this
Simon McVittie [Mon, 18 Mar 2013 19:00:43 +0000 (19:00 +0000)]
TestCase: avoid circular refs between GTest and this

Instead of running tests via the Adaptor inner class, run them via
a C helper that takes a weak ref to the TestCase. This relies on the
caller keeping a ref to the TestCase until after Test.run() - but I
recently converted the tests to do exactly that, so that's OK.

Adding a debug message which prints this.ref_count to final_tear_down()
reveals that some of our regression tests still leak the TestCase, but
many don't now.

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=695381
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
11 years agoAll tests: switch to a calling convention that does not rely on leaking
Simon McVittie [Mon, 18 Mar 2013 12:52:40 +0000 (12:52 +0000)]
All tests: switch to a calling convention that does not rely on leaking

The standard main() used in each test relied on the fact that
get_suite() kept a ref to the TestCase subclass instance, which would
be stored in the global variables of the GTest infrastructure,
resulting in the TestCase never being freed and its final_teardown()
never being executed.

That's undesirable if final_teardown() is going to do something
significant, like terminating a temporary session bus. As a first
step towards that, run the tests with the TestCase subclass instance
globally referenced (so that the version passed to GTest can eventually
be a weak reference), and explicitly run final_tear_down() so that
even if there is a ref leak (as there is now), it gets executed.

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=695381
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
11 years agoFor symmetry, nullify sets in tear_down() if created in set_up()
Simon McVittie [Mon, 18 Mar 2013 12:36:18 +0000 (12:36 +0000)]
For symmetry, nullify sets in tear_down() if created in set_up()

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=695381
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
11 years agoAssert that each D-Bus test case is run in its intended environment
Simon McVittie [Mon, 18 Mar 2013 19:10:57 +0000 (19:10 +0000)]
Assert that each D-Bus test case is run in its intended environment

This is a safety check so we don't trash the user's real home directory.

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=695381
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
[added a comment as per pwithnall's review -smcv]
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
11 years agoDocument recently-added TestCase subclasses
Simon McVittie [Mon, 18 Mar 2013 12:06:00 +0000 (12:06 +0000)]
Document recently-added TestCase subclasses

They currently assume that they will be wrapped in with-session-bus*.sh.

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=695381
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
11 years agoLibsocialwebTest.TestCase: defer creation of lsw_backend until set_up()
Simon McVittie [Thu, 14 Mar 2013 15:50:06 +0000 (15:50 +0000)]
LibsocialwebTest.TestCase: defer creation of lsw_backend until set_up()

Also destroy it in tear_down(), for symmetry. Since there are only two
LSW test cases and neither of them has more than one test, we don't
need to worry much about compatibility - it's easy to check.

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=695381
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
11 years agotests: limit backends via the environment a bit more directly
Simon McVittie [Thu, 14 Mar 2013 15:48:26 +0000 (15:48 +0000)]
tests: limit backends via the environment a bit more directly

This makes it more obvious what's enabled and what isn't. We want to
make sure that only the intended backends are enabled, because those
are the ones for which we've done enough environmental setup
(D-Bus, etc.) to make sure they don't "leak out" into the user's
real data.

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=695381
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
11 years agoMake EdsTest.TestCase.eds_backend nullable
Simon McVittie [Thu, 14 Mar 2013 14:53:13 +0000 (14:53 +0000)]
Make EdsTest.TestCase.eds_backend nullable

It's null outside the period from set_up() to tear_down().

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=695381
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
11 years agoReduce hard-coding of e-d-s address book names
Simon McVittie [Thu, 14 Mar 2013 14:40:14 +0000 (14:40 +0000)]
Reduce hard-coding of e-d-s address book names

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=695381
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
11 years agoAdd subclasses for each category of TestCase
Simon McVittie [Mon, 18 Mar 2013 11:53:21 +0000 (11:53 +0000)]
Add subclasses for each category of TestCase

Move small amounts of initialization (just the low-hanging fruit)
into each subclass. Folks.TestCase is now reserved for tests that
don't need any backends or additional services at all.

In the process, make TpTestsBackend.tear_down() idempotent, so it's OK
if we call it repeatedly.

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=695381
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
11 years agoUpdated Latvian translation
Rūdolfs Mazurs [Sun, 17 Mar 2013 18:26:33 +0000 (20:26 +0200)]
Updated Latvian translation

11 years agoUpdated Danish translation
Ask H. Larsen [Sun, 17 Mar 2013 07:26:21 +0000 (08:26 +0100)]
Updated Danish translation

11 years agoUpdated Hungarian translation
Balázs Úr [Fri, 15 Mar 2013 10:51:40 +0000 (11:51 +0100)]
Updated Hungarian translation

11 years agoUpdated Portuguese translation and converted to New Spelling (Novo AO)
Duarte Loreto [Fri, 15 Mar 2013 01:27:32 +0000 (01:27 +0000)]
Updated Portuguese translation and converted to New Spelling (Novo AO)

11 years ago[l10n] Updated Catalan (Valencian) translation
Carles Ferrando [Thu, 14 Mar 2013 23:24:19 +0000 (00:24 +0100)]
[l10n] Updated Catalan (Valencian) translation

11 years ago[l10n] Updated Catalan translation
Gil Forcada [Thu, 14 Mar 2013 23:24:17 +0000 (00:24 +0100)]
[l10n] Updated Catalan translation

11 years agoUpdated gujarati file
Sweta Kothari [Thu, 14 Mar 2013 06:09:57 +0000 (11:39 +0530)]
Updated gujarati file

11 years agoupdate NEWS
Simon McVittie [Wed, 13 Mar 2013 12:30:35 +0000 (12:30 +0000)]
update NEWS

11 years agoBackendStore: provide an easier way to limit backends via environment
Simon McVittie [Fri, 8 Mar 2013 15:02:25 +0000 (15:02 +0000)]
BackendStore: provide an easier way to limit backends via environment

If FOLKS_BACKENDS_ALLOWED is set, it's a space-, comma- or
colon-separated list of backends to allow, or "all". If unset, the
default is "all". Backends not in the list are disabled, even if the
keyfile says they ought to be enabled.

If FOLKS_BACKENDS_DISABLED is set, it's a space-, comma- or
colon-separated list of additional backends to disable.

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=695381
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
11 years agoTestCase: fix indentation
Simon McVittie [Tue, 12 Mar 2013 14:33:06 +0000 (14:33 +0000)]
TestCase: fix indentation

Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
11 years agocollection comparators: optimize the case of empty collections
Simon McVittie [Tue, 12 Mar 2013 15:27:32 +0000 (15:27 +0000)]
collection comparators: optimize the case of empty collections

Comparing integers is a lot faster than constructing one or more
GObjects to iterate over the hash table. This saves about 3% of the
user CPU time needed to deal with 2049 simple e-d-s Google contacts,
each with one email address and no phone numbers etc.

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=695648
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
11 years agoDon't do manual memory management for libsocialweb Contact structs
Simon McVittie [Tue, 12 Mar 2013 17:06:31 +0000 (17:06 +0000)]
Don't do manual memory management for libsocialweb Contact structs

GObject (and hence Vala) already knows how to memory-manage a Contact,
because it's a boxed type. Trying to do our own memory-management
anyway results in an occasional (50%?) double-free and crash.

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=695719
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
11 years agoupdate NEWS
Simon McVittie [Tue, 12 Mar 2013 17:16:18 +0000 (17:16 +0000)]
update NEWS

11 years agoAlways append to AM_VALAFLAGS, don't replace
Simon McVittie [Tue, 12 Mar 2013 13:50:56 +0000 (13:50 +0000)]
Always append to AM_VALAFLAGS, don't replace

This avoids losing --target-glib=2.24 (from configure.ac) in certain
test modules.

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=695628
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>