/* perf.c generated by valac 0.26.2.1-1f25, the Vala compiler
 * generated from perf.vala, do not modify */

/*
 * Copyright © 2011 Collabora Ltd.
 * Copyright © 2013 Intel Corporation
 *
 * This library is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as published by
 * the Free Software Foundation, either version 2.1 of the License, or
 * (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * along with this library.  If not, see <http://www.gnu.org/licenses/>.
 *
 * Authors:
 *    Raul Gutierrez Segales <raul.gutierrez.segales@collabora.co.uk>
 *    Simon McVittie <simon.mcvittie@collabora.co.uk>
 */

#include <glib.h>
#include <glib-object.h>
#include <eds-test.h>
#include <folks-test.h>
#include <stdlib.h>
#include <string.h>
#include <gio/gio.h>
#include <folks/folks.h>
#include <gee.h>
#include <float.h>
#include <math.h>


#define TYPE_PERF_TESTS (perf_tests_get_type ())
#define PERF_TESTS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PERF_TESTS, PerfTests))
#define PERF_TESTS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PERF_TESTS, PerfTestsClass))
#define IS_PERF_TESTS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PERF_TESTS))
#define IS_PERF_TESTS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PERF_TESTS))
#define PERF_TESTS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PERF_TESTS, PerfTestsClass))

typedef struct _PerfTests PerfTests;
typedef struct _PerfTestsClass PerfTestsClass;
typedef struct _PerfTestsPrivate PerfTestsPrivate;
#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
typedef struct _PerfTestsAggregateData PerfTestsAggregateData;
typedef struct _Block1Data Block1Data;
#define _g_main_loop_unref0(var) ((var == NULL) ? NULL : (var = (g_main_loop_unref (var), NULL)))
#define _g_free0(var) (var = (g_free (var), NULL))
typedef struct _PerfTestsTestOneIndividualData PerfTestsTestOneIndividualData;
typedef struct _Block2Data Block2Data;
typedef struct _PerfTestsTestOnePersonaData PerfTestsTestOnePersonaData;
typedef struct _Block3Data Block3Data;
#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);

struct _PerfTests {
	EdsTestTestCase parent_instance;
	PerfTestsPrivate * priv;
};

struct _PerfTestsClass {
	EdsTestTestCaseClass parent_class;
};

struct _PerfTestsAggregateData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	PerfTests* self;
	FolksIndividualAggregator* result;
	gdouble _tmp0_;
	FolksBackendStore* store;
	FolksBackendStore* _tmp1_;
	FolksBackendStore* _tmp2_;
	gdouble _tmp3_;
	FolksBackendStore* _tmp4_;
	FolksBackend* eds;
	FolksBackendStore* _tmp5_;
	FolksBackend* _tmp6_;
	FolksBackend* _tmp7_;
	gdouble _tmp8_;
	FolksBackend* _tmp9_;
	gdouble _tmp10_;
	FolksIndividualAggregator* aggregator;
	FolksIndividualAggregator* _tmp11_;
	FolksIndividualAggregator* _tmp12_;
	gdouble _tmp13_;
	FolksIndividualAggregator* _tmp14_;
	GError * _inner_error_;
};

struct _Block1Data {
	int _ref_count_;
	PerfTests* self;
	GAsyncResult* _result_;
	GMainLoop* loop;
};

struct _PerfTestsTestOneIndividualData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	PerfTests* self;
	gchar* id;
	FolksIndividualAggregator* aggregator;
	FolksIndividualAggregator* _tmp0_;
	GeeMap* map;
	FolksIndividualAggregator* _tmp1_;
	GeeMap* _tmp2_;
	GeeMap* _tmp3_;
	GeeMap* _tmp4_;
	FolksIndividual* individual;
	FolksIndividualAggregator* _tmp5_;
	const gchar* _tmp6_;
	FolksIndividual* _tmp7_;
	FolksIndividual* _tmp8_;
	const gchar* _tmp9_;
	FolksIndividual* _tmp10_;
	const gchar* _tmp11_;
	const gchar* _tmp12_;
	gdouble elapsed;
	gdouble _tmp13_;
	gdouble _tmp14_;
	gdouble _tmp15_;
	GeeMap* _tmp16_;
	gint _tmp17_;
	gint _tmp18_;
	GError * _inner_error_;
};

struct _Block2Data {
	int _ref_count_;
	PerfTests* self;
	GAsyncResult* _result_;
	GMainLoop* loop;
};

struct _PerfTestsTestOnePersonaData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	PerfTests* self;
	gchar* uid;
	FolksIndividualAggregator* aggregator;
	FolksIndividualAggregator* _tmp0_;
	GeeMap* map;
	GeeMap* _tmp1_;
	GeeMap* _tmp2_;
	GeeMap* _tmp3_;
	gdouble _tmp4_;
	GeeMap* _tmp5_;
	gint _tmp6_;
	gint _tmp7_;
	gchar* backend_name;
	gchar* persona_store_id;
	gchar* persona_id;
	const gchar* _tmp8_;
	gchar* _tmp9_;
	gchar* _tmp10_;
	gchar* _tmp11_;
	FolksBackendStore* backend_store;
	FolksBackendStore* _tmp12_;
	FolksBackend* backend;
	FolksBackendStore* _tmp13_;
	const gchar* _tmp14_;
	FolksBackend* _tmp15_;
	FolksBackend* _tmp16_;
	GeeMap* persona_stores;
	FolksBackend* _tmp17_;
	GeeMap* _tmp18_;
	GeeMap* _tmp19_;
	GeeMap* _tmp20_;
	FolksPersonaStore* persona_store;
	GeeMap* _tmp21_;
	const gchar* _tmp22_;
	gpointer _tmp23_;
	FolksPersonaStore* _tmp24_;
	GeeMap* personas;
	FolksPersonaStore* _tmp25_;
	GeeMap* _tmp26_;
	GeeMap* _tmp27_;
	GeeMap* _tmp28_;
	FolksPersona* persona;
	GeeMapIterator* iter;
	GeeMap* _tmp29_;
	GeeMapIterator* _tmp30_;
	GeeMapIterator* _tmp31_;
	gboolean _tmp32_;
	GeeMapIterator* _tmp33_;
	gpointer _tmp34_;
	FolksPersona* _tmp35_;
	const gchar* _tmp36_;
	const gchar* _tmp37_;
	const gchar* _tmp38_;
	FolksPersona* _tmp39_;
	FolksIndividual* individual;
	FolksPersona* _tmp40_;
	FolksIndividual* _tmp41_;
	FolksIndividual* _tmp42_;
	FolksIndividual* _tmp43_;
	FolksIndividual* _tmp44_;
	const gchar* _tmp45_;
	FolksPersona* _tmp46_;
	FolksIndividual* _tmp47_;
	FolksIndividual* _tmp48_;
	const gchar* _tmp49_;
	const gchar* _tmp50_;
	gdouble elapsed;
	gdouble _tmp51_;
	gdouble _tmp52_;
	gdouble _tmp53_;
	GeeMap* _tmp54_;
	gint _tmp55_;
	gint _tmp56_;
	GError * _inner_error_;
};

struct _Block3Data {
	int _ref_count_;
	PerfTests* self;
	GAsyncResult* _result_;
	GMainLoop* loop;
};


static gpointer perf_tests_parent_class = NULL;

GType perf_tests_get_type (void) G_GNUC_CONST;
enum  {
	PERF_TESTS_DUMMY_PROPERTY
};
PerfTests* perf_tests_new (void);
PerfTests* perf_tests_construct (GType object_type);
static void _perf_tests_test (PerfTests* self);
static void __perf_tests_test_folks_test_case_test_method (gpointer self);
static void _perf_tests_test_twice (PerfTests* self);
static void __perf_tests_test_twice_folks_test_case_test_method (gpointer self);
static void _perf_tests_test_preprepared (PerfTests* self);
static void __perf_tests_test_preprepared_folks_test_case_test_method (gpointer self);
static void _perf_tests_test_preprepared_one (PerfTests* self);
static void __perf_tests_test_preprepared_one_folks_test_case_test_method (gpointer self);
static void _perf_tests_test_preprepared_one_persona (PerfTests* self);
static void __perf_tests_test_preprepared_one_persona_folks_test_case_test_method (gpointer self);
static void _perf_tests_test_clones (PerfTests* self);
static void __perf_tests_test_clones_folks_test_case_test_method (gpointer self);
static void _perf_tests_test_clones_one (PerfTests* self);
static void __perf_tests_test_clones_one_folks_test_case_test_method (gpointer self);
static void _perf_tests_test_clones_one_persona (PerfTests* self);
static void __perf_tests_test_clones_one_persona_folks_test_case_test_method (gpointer self);
static void _perf_tests_add_500 (PerfTests* self);
static void perf_tests_real_set_up (FolksTestCase* base);
static void _perf_tests_aggregate_data_free (gpointer _data);
static void _perf_tests_aggregate (PerfTests* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
static FolksIndividualAggregator* _perf_tests_aggregate_finish (PerfTests* self, GAsyncResult* _res_, GError** error);
static gboolean _perf_tests_aggregate_co (PerfTestsAggregateData* _data_);
static void _perf_tests_aggregate_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
static FolksIndividualAggregator* _perf_tests_run_aggregate (PerfTests* self);
static Block1Data* block1_data_ref (Block1Data* _data1_);
static void block1_data_unref (void * _userdata_);
static void __lambda4_ (Block1Data* _data1_, GObject* obj, GAsyncResult* res);
static void ___lambda4__gasync_ready_callback (GObject* source_object, GAsyncResult* res, gpointer self);
static void _perf_tests_test_one_individual_data_free (gpointer _data);
static void _perf_tests_test_one_individual (PerfTests* self, const gchar* id, GAsyncReadyCallback _callback_, gpointer _user_data_);
static void _perf_tests_test_one_individual_finish (PerfTests* self, GAsyncResult* _res_, GError** error);
static gboolean _perf_tests_test_one_individual_co (PerfTestsTestOneIndividualData* _data_);
static void _perf_tests_test_one_individual_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
static void _perf_tests_run_test_one_individual (PerfTests* self, const gchar* id, GError** error);
static Block2Data* block2_data_ref (Block2Data* _data2_);
static void block2_data_unref (void * _userdata_);
static void __lambda5_ (Block2Data* _data2_, GObject* obj, GAsyncResult* res);
static void ___lambda5__gasync_ready_callback (GObject* source_object, GAsyncResult* res, gpointer self);
static void _perf_tests_test_one_persona_data_free (gpointer _data);
static void _perf_tests_test_one_persona (PerfTests* self, const gchar* uid, GAsyncReadyCallback _callback_, gpointer _user_data_);
static void _perf_tests_test_one_persona_finish (PerfTests* self, GAsyncResult* _res_, GError** error);
static gboolean _perf_tests_test_one_persona_co (PerfTestsTestOnePersonaData* _data_);
static void _perf_tests_test_one_persona_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
static void _perf_tests_run_test_one_persona (PerfTests* self, const gchar* id, GError** error);
static Block3Data* block3_data_ref (Block3Data* _data3_);
static void block3_data_unref (void * _userdata_);
static void __lambda6_ (Block3Data* _data3_, GObject* obj, GAsyncResult* res);
static void ___lambda6__gasync_ready_callback (GObject* source_object, GAsyncResult* res, gpointer self);
static void perf_tests_real_tear_down (FolksTestCase* base);
gint _vala_main (gchar** args, int args_length1);
static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);


static void __perf_tests_test_folks_test_case_test_method (gpointer self) {
#line 31 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_perf_tests_test ((PerfTests*) self);
#line 300 "perf.c"
}


static void __perf_tests_test_twice_folks_test_case_test_method (gpointer self) {
#line 33 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_perf_tests_test_twice ((PerfTests*) self);
#line 307 "perf.c"
}


static void __perf_tests_test_preprepared_folks_test_case_test_method (gpointer self) {
#line 34 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_perf_tests_test_preprepared ((PerfTests*) self);
#line 314 "perf.c"
}


static void __perf_tests_test_preprepared_one_folks_test_case_test_method (gpointer self) {
#line 36 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_perf_tests_test_preprepared_one ((PerfTests*) self);
#line 321 "perf.c"
}


static void __perf_tests_test_preprepared_one_persona_folks_test_case_test_method (gpointer self) {
#line 37 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_perf_tests_test_preprepared_one_persona ((PerfTests*) self);
#line 328 "perf.c"
}


static void __perf_tests_test_clones_folks_test_case_test_method (gpointer self) {
#line 43 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_perf_tests_test_clones ((PerfTests*) self);
#line 335 "perf.c"
}


static void __perf_tests_test_clones_one_folks_test_case_test_method (gpointer self) {
#line 44 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_perf_tests_test_clones_one ((PerfTests*) self);
#line 342 "perf.c"
}


static void __perf_tests_test_clones_one_persona_folks_test_case_test_method (gpointer self) {
#line 45 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_perf_tests_test_clones_one_persona ((PerfTests*) self);
#line 349 "perf.c"
}


PerfTests* perf_tests_construct (GType object_type) {
	PerfTests * self = NULL;
	gboolean _tmp0_ = FALSE;
	gboolean _tmp1_ = FALSE;
#line 29 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	self = (PerfTests*) eds_test_test_case_construct (object_type, "PerfTests");
#line 31 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	folks_test_case_add_test ((FolksTestCase*) self, "unprepared", __perf_tests_test_folks_test_case_test_method, g_object_ref (self), g_object_unref);
#line 32 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	folks_test_case_add_test ((FolksTestCase*) self, "again", __perf_tests_test_folks_test_case_test_method, g_object_ref (self), g_object_unref);
#line 33 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	folks_test_case_add_test ((FolksTestCase*) self, "twice", __perf_tests_test_twice_folks_test_case_test_method, g_object_ref (self), g_object_unref);
#line 34 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	folks_test_case_add_test ((FolksTestCase*) self, "pre-prepared", __perf_tests_test_preprepared_folks_test_case_test_method, g_object_ref (self), g_object_unref);
#line 36 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	folks_test_case_add_test ((FolksTestCase*) self, "pre-prepared-one-individual", __perf_tests_test_preprepared_one_folks_test_case_test_method, g_object_ref (self), g_object_unref);
#line 37 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	folks_test_case_add_test ((FolksTestCase*) self, "pre-prepared-one-persona", __perf_tests_test_preprepared_one_persona_folks_test_case_test_method, g_object_ref (self), g_object_unref);
#line 40 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_tmp1_ = g_test_perf ();
#line 40 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	if (_tmp1_) {
#line 40 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp0_ = TRUE;
#line 377 "perf.c"
	} else {
		const gchar* _tmp2_ = NULL;
#line 41 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp2_ = g_getenv ("FOLKS_TESTS_SLOW");
#line 41 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp0_ = _tmp2_ != NULL;
#line 384 "perf.c"
	}
#line 40 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	if (_tmp0_) {
#line 43 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		folks_test_case_add_test ((FolksTestCase*) self, "clones", __perf_tests_test_clones_folks_test_case_test_method, g_object_ref (self), g_object_unref);
#line 44 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		folks_test_case_add_test ((FolksTestCase*) self, "clones-one-individual", __perf_tests_test_clones_one_folks_test_case_test_method, g_object_ref (self), g_object_unref);
#line 45 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		folks_test_case_add_test ((FolksTestCase*) self, "clones-one-persona", __perf_tests_test_clones_one_persona_folks_test_case_test_method, g_object_ref (self), g_object_unref);
#line 394 "perf.c"
	} else {
#line 49 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		g_message ("perf.vala:49: %s", "skipping slow tests, run with -m perf or " "FOLKS_TESTS_SLOW=1 to enable");
#line 398 "perf.c"
	}
#line 27 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	return self;
#line 402 "perf.c"
}


PerfTests* perf_tests_new (void) {
#line 27 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	return perf_tests_construct (TYPE_PERF_TESTS);
#line 409 "perf.c"
}


static void _perf_tests_add_500 (PerfTests* self) {
	gdouble _tmp11_ = 0.0;
	GError * _inner_error_ = NULL;
#line 56 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	g_return_if_fail (self != NULL);
#line 58 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	g_test_timer_start ();
#line 420 "perf.c"
	{
		gchar* _tmp0_ = NULL;
		gchar* _tmp1_ = NULL;
		gchar* _tmp2_ = NULL;
		gchar* _tmp3_ = NULL;
		EdsTestBackend* _tmp4_ = NULL;
		const gchar* _tmp5_ = NULL;
		const gchar* _tmp6_ = NULL;
		gchar* _tmp7_ = NULL;
		gchar** _tmp8_ = NULL;
		gchar** _tmp9_ = NULL;
		gint _tmp9__length1 = 0;
#line 62 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp0_ = g_strdup ("eds/helper-create-many-contacts");
#line 62 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp1_ = g_strdup ("-n");
#line 62 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp2_ = g_strdup ("500");
#line 62 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp3_ = g_strdup ("-u");
#line 62 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp4_ = ((EdsTestTestCase*) self)->eds_backend;
#line 62 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp5_ = eds_test_backend_get_address_book_uid (G_TYPE_CHECK_INSTANCE_CAST (_tmp4_, EDS_TEST_TYPE_BACKEND, EdsTestBackend));
#line 62 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp6_ = _tmp5_;
#line 62 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp7_ = g_strdup (_tmp6_);
#line 62 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp8_ = g_new0 (gchar*, 5 + 1);
#line 62 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp8_[0] = _tmp0_;
#line 62 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp8_[1] = _tmp1_;
#line 62 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp8_[2] = _tmp2_;
#line 62 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp8_[3] = _tmp3_;
#line 62 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp8_[4] = _tmp7_;
#line 62 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp9_ = _tmp8_;
#line 62 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp9__length1 = 5;
#line 62 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		folks_test_utils_run_test_helper_sync (_tmp9_, 5, NULL, &_inner_error_);
#line 62 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp9_ = (_vala_array_free (_tmp9_, _tmp9__length1, (GDestroyNotify) g_free), NULL);
#line 62 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 471 "perf.c"
			goto __catch0_g_error;
		}
	}
	goto __finally0;
	__catch0_g_error:
	{
		GError* e = NULL;
		const gchar* _tmp10_ = NULL;
#line 60 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		e = _inner_error_;
#line 60 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_inner_error_ = NULL;
#line 69 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp10_ = e->message;
#line 69 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		g_error ("perf.vala:69: %s", _tmp10_);
#line 60 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_g_error_free0 (e);
#line 490 "perf.c"
	}
	__finally0:
#line 60 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 60 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
#line 60 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		g_clear_error (&_inner_error_);
#line 60 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		return;
#line 501 "perf.c"
	}
#line 72 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_tmp11_ = g_test_timer_elapsed ();
#line 72 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	g_message ("perf.vala:72: %.6f Finished adding contacts", _tmp11_);
#line 507 "perf.c"
}


static void perf_tests_real_set_up (FolksTestCase* base) {
	PerfTests * self;
#line 75 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	self = (PerfTests*) base;
#line 77 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	FOLKS_TEST_CASE_CLASS (perf_tests_parent_class)->set_up ((FolksTestCase*) G_TYPE_CHECK_INSTANCE_CAST (self, EDS_TEST_TYPE_TEST_CASE, EdsTestTestCase));
#line 78 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_perf_tests_add_500 (self);
#line 519 "perf.c"
}


static void _perf_tests_aggregate_data_free (gpointer _data) {
	PerfTestsAggregateData* _data_;
	_data_ = _data;
#line 25 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_g_object_unref0 (_data_->result);
#line 25 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_g_object_unref0 (_data_->self);
#line 25 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	g_slice_free (PerfTestsAggregateData, _data_);
#line 532 "perf.c"
}


static gpointer _g_object_ref0 (gpointer self) {
#line 25 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	return self ? g_object_ref (self) : NULL;
#line 539 "perf.c"
}


static void _perf_tests_aggregate (PerfTests* self, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	PerfTestsAggregateData* _data_;
	PerfTests* _tmp0_ = NULL;
#line 25 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_ = g_slice_new0 (PerfTestsAggregateData);
#line 25 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, _perf_tests_aggregate);
#line 25 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, _perf_tests_aggregate_data_free);
#line 25 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_tmp0_ = _g_object_ref0 (self);
#line 25 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->self = _tmp0_;
#line 25 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_perf_tests_aggregate_co (_data_);
#line 558 "perf.c"
}


static FolksIndividualAggregator* _perf_tests_aggregate_finish (PerfTests* self, GAsyncResult* _res_, GError** error) {
	FolksIndividualAggregator* result;
	PerfTestsAggregateData* _data_;
#line 25 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
#line 25 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		return NULL;
#line 569 "perf.c"
	}
#line 25 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
#line 25 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	result = _data_->result;
#line 25 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->result = NULL;
#line 25 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	return result;
#line 579 "perf.c"
}


static void _perf_tests_aggregate_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	PerfTestsAggregateData* _data_;
#line 88 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_ = _user_data_;
#line 88 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_source_object_ = source_object;
#line 88 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_res_ = _res_;
#line 88 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_perf_tests_aggregate_co (_data_);
#line 593 "perf.c"
}


static gboolean _perf_tests_aggregate_co (PerfTestsAggregateData* _data_) {
#line 82 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	switch (_data_->_state_) {
#line 82 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		case 0:
#line 602 "perf.c"
		goto _state_0;
#line 82 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		case 1:
#line 606 "perf.c"
		goto _state_1;
#line 82 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		case 2:
#line 610 "perf.c"
		goto _state_2;
#line 82 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		case 3:
#line 614 "perf.c"
		goto _state_3;
#line 82 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		case 4:
#line 618 "perf.c"
		goto _state_4;
#line 82 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		case 5:
#line 622 "perf.c"
		goto _state_5;
		default:
#line 82 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		g_assert_not_reached ();
#line 627 "perf.c"
	}
	_state_0:
#line 84 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	g_test_timer_start ();
#line 86 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp0_ = 0.0;
#line 86 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp0_ = g_test_timer_elapsed ();
#line 86 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	g_message ("perf.vala:86: %.6f Preparing backend store", _data_->_tmp0_);
#line 87 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp1_ = NULL;
#line 87 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp1_ = folks_backend_store_dup ();
#line 87 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->store = _data_->_tmp1_;
#line 88 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp2_ = NULL;
#line 88 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp2_ = _data_->store;
#line 88 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_state_ = 1;
#line 88 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	folks_backend_store_prepare (_data_->_tmp2_, _perf_tests_aggregate_ready, _data_);
#line 88 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	return FALSE;
#line 654 "perf.c"
	_state_1:
#line 88 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	folks_backend_store_prepare_finish (_data_->_tmp2_, _data_->_res_);
#line 90 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp3_ = 0.0;
#line 90 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp3_ = g_test_timer_elapsed ();
#line 90 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	g_message ("perf.vala:90: %.6f Loading backends", _data_->_tmp3_);
#line 91 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp4_ = NULL;
#line 91 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp4_ = _data_->store;
#line 91 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_state_ = 2;
#line 91 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	folks_backend_store_load_backends (_data_->_tmp4_, _perf_tests_aggregate_ready, _data_);
#line 91 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	return FALSE;
#line 674 "perf.c"
	_state_2:
#line 91 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	folks_backend_store_load_backends_finish (_data_->_tmp4_, _data_->_res_, &_data_->_inner_error_);
#line 91 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	if (G_UNLIKELY (_data_->_inner_error_ != NULL)) {
#line 91 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
#line 91 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		g_error_free (_data_->_inner_error_);
#line 91 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_g_object_unref0 (_data_->store);
#line 91 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		if (_data_->_state_ == 0) {
#line 91 "/opt/gnome3/source/folks/tests/eds/perf.vala"
			g_simple_async_result_complete_in_idle (_data_->_async_result);
#line 690 "perf.c"
		} else {
#line 91 "/opt/gnome3/source/folks/tests/eds/perf.vala"
			g_simple_async_result_complete (_data_->_async_result);
#line 694 "perf.c"
		}
#line 91 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		g_object_unref (_data_->_async_result);
#line 91 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		return FALSE;
#line 700 "perf.c"
	}
#line 93 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp5_ = NULL;
#line 93 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp5_ = _data_->store;
#line 93 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp6_ = NULL;
#line 93 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp6_ = folks_backend_store_dup_backend_by_name (_data_->_tmp5_, "eds");
#line 93 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->eds = _data_->_tmp6_;
#line 94 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp7_ = NULL;
#line 94 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp7_ = _data_->eds;
#line 94 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_vala_assert (_data_->_tmp7_ != NULL, "eds != null");
#line 96 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp8_ = 0.0;
#line 96 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp8_ = g_test_timer_elapsed ();
#line 96 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	g_message ("perf.vala:96: %.6f Waiting for EDS backend", _data_->_tmp8_);
#line 97 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp9_ = NULL;
#line 97 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp9_ = _data_->eds;
#line 97 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_state_ = 3;
#line 97 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	folks_test_utils_backend_prepare_and_wait_for_quiescence (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp9_, FOLKS_TYPE_BACKEND, FolksBackend), _perf_tests_aggregate_ready, _data_);
#line 97 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	return FALSE;
#line 734 "perf.c"
	_state_3:
#line 97 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	folks_test_utils_backend_prepare_and_wait_for_quiescence_finish (_data_->_res_, &_data_->_inner_error_);
#line 97 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	if (G_UNLIKELY (_data_->_inner_error_ != NULL)) {
#line 97 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
#line 97 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		g_error_free (_data_->_inner_error_);
#line 97 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_g_object_unref0 (_data_->eds);
#line 97 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_g_object_unref0 (_data_->store);
#line 97 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		if (_data_->_state_ == 0) {
#line 97 "/opt/gnome3/source/folks/tests/eds/perf.vala"
			g_simple_async_result_complete_in_idle (_data_->_async_result);
#line 752 "perf.c"
		} else {
#line 97 "/opt/gnome3/source/folks/tests/eds/perf.vala"
			g_simple_async_result_complete (_data_->_async_result);
#line 756 "perf.c"
		}
#line 97 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		g_object_unref (_data_->_async_result);
#line 97 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		return FALSE;
#line 762 "perf.c"
	}
#line 99 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp10_ = 0.0;
#line 99 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp10_ = g_test_timer_elapsed ();
#line 99 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	g_message ("perf.vala:99: %.6f Preparing aggregator", _data_->_tmp10_);
#line 100 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp11_ = NULL;
#line 100 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp11_ = folks_individual_aggregator_dup ();
#line 100 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->aggregator = _data_->_tmp11_;
#line 101 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp12_ = NULL;
#line 101 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp12_ = _data_->aggregator;
#line 101 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_state_ = 4;
#line 101 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	folks_individual_aggregator_prepare (_data_->_tmp12_, _perf_tests_aggregate_ready, _data_);
#line 101 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	return FALSE;
#line 786 "perf.c"
	_state_4:
#line 101 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	folks_individual_aggregator_prepare_finish (_data_->_tmp12_, _data_->_res_, &_data_->_inner_error_);
#line 101 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	if (G_UNLIKELY (_data_->_inner_error_ != NULL)) {
#line 101 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
#line 101 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		g_error_free (_data_->_inner_error_);
#line 101 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_g_object_unref0 (_data_->aggregator);
#line 101 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_g_object_unref0 (_data_->eds);
#line 101 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_g_object_unref0 (_data_->store);
#line 101 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		if (_data_->_state_ == 0) {
#line 101 "/opt/gnome3/source/folks/tests/eds/perf.vala"
			g_simple_async_result_complete_in_idle (_data_->_async_result);
#line 806 "perf.c"
		} else {
#line 101 "/opt/gnome3/source/folks/tests/eds/perf.vala"
			g_simple_async_result_complete (_data_->_async_result);
#line 810 "perf.c"
		}
#line 101 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		g_object_unref (_data_->_async_result);
#line 101 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		return FALSE;
#line 816 "perf.c"
	}
#line 103 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp13_ = 0.0;
#line 103 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp13_ = g_test_timer_elapsed ();
#line 103 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	g_message ("perf.vala:103: %.6f Waiting for aggregator", _data_->_tmp13_);
#line 104 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp14_ = NULL;
#line 104 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp14_ = _data_->aggregator;
#line 104 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_state_ = 5;
#line 104 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	folks_test_utils_aggregator_prepare_and_wait_for_quiescence (_data_->_tmp14_, _perf_tests_aggregate_ready, _data_);
#line 104 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	return FALSE;
#line 834 "perf.c"
	_state_5:
#line 104 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	folks_test_utils_aggregator_prepare_and_wait_for_quiescence_finish (_data_->_res_, &_data_->_inner_error_);
#line 104 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	if (G_UNLIKELY (_data_->_inner_error_ != NULL)) {
#line 104 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
#line 104 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		g_error_free (_data_->_inner_error_);
#line 104 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_g_object_unref0 (_data_->aggregator);
#line 104 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_g_object_unref0 (_data_->eds);
#line 104 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_g_object_unref0 (_data_->store);
#line 104 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		if (_data_->_state_ == 0) {
#line 104 "/opt/gnome3/source/folks/tests/eds/perf.vala"
			g_simple_async_result_complete_in_idle (_data_->_async_result);
#line 854 "perf.c"
		} else {
#line 104 "/opt/gnome3/source/folks/tests/eds/perf.vala"
			g_simple_async_result_complete (_data_->_async_result);
#line 858 "perf.c"
		}
#line 104 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		g_object_unref (_data_->_async_result);
#line 104 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		return FALSE;
#line 864 "perf.c"
	}
#line 106 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->result = _data_->aggregator;
#line 106 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_g_object_unref0 (_data_->eds);
#line 106 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_g_object_unref0 (_data_->store);
#line 106 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	if (_data_->_state_ == 0) {
#line 106 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		g_simple_async_result_complete_in_idle (_data_->_async_result);
#line 876 "perf.c"
	} else {
#line 106 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		g_simple_async_result_complete (_data_->_async_result);
#line 880 "perf.c"
	}
#line 106 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	g_object_unref (_data_->_async_result);
#line 106 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	return FALSE;
#line 82 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_g_object_unref0 (_data_->aggregator);
#line 82 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_g_object_unref0 (_data_->eds);
#line 82 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_g_object_unref0 (_data_->store);
#line 82 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	if (_data_->_state_ == 0) {
#line 82 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		g_simple_async_result_complete_in_idle (_data_->_async_result);
#line 896 "perf.c"
	} else {
#line 82 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		g_simple_async_result_complete (_data_->_async_result);
#line 900 "perf.c"
	}
#line 82 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	g_object_unref (_data_->_async_result);
#line 82 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	return FALSE;
#line 906 "perf.c"
}


static Block1Data* block1_data_ref (Block1Data* _data1_) {
#line 109 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	g_atomic_int_inc (&_data1_->_ref_count_);
#line 109 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	return _data1_;
#line 915 "perf.c"
}


static void block1_data_unref (void * _userdata_) {
	Block1Data* _data1_;
	_data1_ = (Block1Data*) _userdata_;
#line 109 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	if (g_atomic_int_dec_and_test (&_data1_->_ref_count_)) {
#line 924 "perf.c"
		PerfTests* self;
#line 109 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		self = _data1_->self;
#line 109 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_g_main_loop_unref0 (_data1_->loop);
#line 109 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_g_object_unref0 (_data1_->_result_);
#line 109 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_g_object_unref0 (self);
#line 109 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		g_slice_free (Block1Data, _data1_);
#line 936 "perf.c"
	}
}


static void __lambda4_ (Block1Data* _data1_, GObject* obj, GAsyncResult* res) {
	PerfTests* self;
	GAsyncResult* _tmp0_ = NULL;
	GAsyncResult* _tmp1_ = NULL;
#line 114 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	self = _data1_->self;
#line 114 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	g_return_if_fail (res != NULL);
#line 116 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_tmp0_ = res;
#line 116 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_tmp1_ = _g_object_ref0 (_tmp0_);
#line 116 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_g_object_unref0 (_data1_->_result_);
#line 116 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data1_->_result_ = _tmp1_;
#line 117 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	g_main_loop_quit (_data1_->loop);
#line 959 "perf.c"
}


static void ___lambda4__gasync_ready_callback (GObject* source_object, GAsyncResult* res, gpointer self) {
#line 114 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	__lambda4_ (self, source_object, res);
#line 114 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	block1_data_unref (self);
#line 968 "perf.c"
}


static FolksIndividualAggregator* _perf_tests_run_aggregate (PerfTests* self) {
	FolksIndividualAggregator* result = NULL;
	Block1Data* _data1_;
	GMainLoop* _tmp0_ = NULL;
	GError * _inner_error_ = NULL;
#line 109 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 109 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data1_ = g_slice_new0 (Block1Data);
#line 109 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data1_->_ref_count_ = 1;
#line 109 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data1_->self = g_object_ref (self);
#line 111 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data1_->_result_ = NULL;
#line 112 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_tmp0_ = g_main_loop_new (NULL, FALSE);
#line 112 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data1_->loop = _tmp0_;
#line 114 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_perf_tests_aggregate (self, ___lambda4__gasync_ready_callback, block1_data_ref (_data1_));
#line 120 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	folks_test_utils_loop_run_with_timeout (_data1_->loop, 60);
#line 121 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_vala_assert (_data1_->_result_ != NULL, "result != null");
#line 997 "perf.c"
	{
		FolksIndividualAggregator* _tmp1_ = NULL;
		FolksIndividualAggregator* _tmp2_ = NULL;
		FolksIndividualAggregator* _tmp3_ = NULL;
#line 125 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp2_ = _perf_tests_aggregate_finish (self, G_TYPE_CHECK_INSTANCE_CAST (_data1_->_result_, g_async_result_get_type (), GAsyncResult), &_inner_error_);
#line 125 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp1_ = _tmp2_;
#line 125 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 1008 "perf.c"
			goto __catch1_g_error;
		}
#line 125 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp3_ = _tmp1_;
#line 125 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp1_ = NULL;
#line 125 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		result = _tmp3_;
#line 125 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_g_object_unref0 (_tmp1_);
#line 125 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		block1_data_unref (_data1_);
#line 125 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_data1_ = NULL;
#line 125 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		return result;
#line 1025 "perf.c"
	}
	goto __finally1;
	__catch1_g_error:
	{
		GError* e = NULL;
		GQuark _tmp4_ = 0U;
		const gchar* _tmp5_ = NULL;
		gint _tmp6_ = 0;
		const gchar* _tmp7_ = NULL;
#line 123 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		e = _inner_error_;
#line 123 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_inner_error_ = NULL;
#line 129 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp4_ = e->domain;
#line 129 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp5_ = g_quark_to_string (_tmp4_);
#line 129 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp6_ = e->code;
#line 129 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp7_ = e->message;
#line 129 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		g_error ("perf.vala:129: %s #%d: %s", _tmp5_, _tmp6_, _tmp7_);
#line 123 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_g_error_free0 (e);
#line 1051 "perf.c"
	}
	__finally1:
#line 123 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	block1_data_unref (_data1_);
#line 123 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data1_ = NULL;
#line 123 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
#line 123 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	g_clear_error (&_inner_error_);
#line 123 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	return NULL;
#line 1064 "perf.c"
}


static void _perf_tests_test (PerfTests* self) {
	FolksIndividualAggregator* aggregator = NULL;
	FolksIndividualAggregator* _tmp0_ = NULL;
	GeeMap* map = NULL;
	FolksIndividualAggregator* _tmp1_ = NULL;
	GeeMap* _tmp2_ = NULL;
	GeeMap* _tmp3_ = NULL;
	GeeMap* _tmp4_ = NULL;
	GeeMapIterator* iter = NULL;
	FolksIndividualAggregator* _tmp5_ = NULL;
	GeeMap* _tmp6_ = NULL;
	GeeMap* _tmp7_ = NULL;
	GeeMapIterator* _tmp8_ = NULL;
	gdouble _tmp9_ = 0.0;
	GeeMap* _tmp10_ = NULL;
	gint _tmp11_ = 0;
	gint _tmp12_ = 0;
	gdouble elapsed = 0.0;
	gdouble _tmp23_ = 0.0;
	GeeMap* _tmp24_ = NULL;
	gint _tmp25_ = 0;
	gint _tmp26_ = 0;
#line 139 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	g_return_if_fail (self != NULL);
#line 141 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_tmp0_ = _perf_tests_run_aggregate (self);
#line 141 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	aggregator = _tmp0_;
#line 143 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_tmp1_ = aggregator;
#line 143 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_tmp2_ = folks_individual_aggregator_get_individuals (_tmp1_);
#line 143 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_tmp3_ = _tmp2_;
#line 143 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_tmp4_ = _g_object_ref0 (_tmp3_);
#line 143 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	map = _tmp4_;
#line 144 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_tmp5_ = aggregator;
#line 144 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_tmp6_ = folks_individual_aggregator_get_individuals (_tmp5_);
#line 144 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_tmp7_ = _tmp6_;
#line 144 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_tmp8_ = gee_map_map_iterator (_tmp7_);
#line 144 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	iter = _tmp8_;
#line 146 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_tmp9_ = g_test_timer_elapsed ();
#line 146 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_tmp10_ = map;
#line 146 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_tmp11_ = gee_map_get_size (_tmp10_);
#line 146 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_tmp12_ = _tmp11_;
#line 146 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	g_message ("perf.vala:146: %.6f Aggregated into %d individuals", _tmp9_, _tmp12_);
#line 149 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	while (TRUE) {
#line 1128 "perf.c"
		GeeMapIterator* _tmp13_ = NULL;
		gboolean _tmp14_ = FALSE;
		GeeMapIterator* _tmp15_ = NULL;
		gpointer _tmp16_ = NULL;
		gchar* _tmp17_ = NULL;
		GeeMapIterator* _tmp18_ = NULL;
		gpointer _tmp19_ = NULL;
		FolksIndividual* _tmp20_ = NULL;
		const gchar* _tmp21_ = NULL;
		const gchar* _tmp22_ = NULL;
#line 149 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp13_ = iter;
#line 149 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp14_ = gee_map_iterator_next (_tmp13_);
#line 149 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		if (!_tmp14_) {
#line 149 "/opt/gnome3/source/folks/tests/eds/perf.vala"
			break;
#line 1147 "perf.c"
		}
#line 150 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp15_ = iter;
#line 150 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp16_ = gee_map_iterator_get_key (_tmp15_);
#line 150 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp17_ = (gchar*) _tmp16_;
#line 150 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp18_ = iter;
#line 150 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp19_ = gee_map_iterator_get_value (_tmp18_);
#line 150 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp20_ = (FolksIndividual*) _tmp19_;
#line 150 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp21_ = folks_name_details_get_full_name ((FolksNameDetails*) _tmp20_);
#line 150 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp22_ = _tmp21_;
#line 150 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		g_debug ("perf.vala:150: %s → %s", _tmp17_, _tmp22_);
#line 150 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_g_object_unref0 (_tmp20_);
#line 150 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_g_free0 (_tmp17_);
#line 1171 "perf.c"
	}
#line 152 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_tmp23_ = g_test_timer_elapsed ();
#line 152 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	elapsed = _tmp23_;
#line 153 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_tmp24_ = map;
#line 153 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_tmp25_ = gee_map_get_size (_tmp24_);
#line 153 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_tmp26_ = _tmp25_;
#line 153 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	g_test_minimized_result (elapsed, "%.6f Total time to iterate %d individuals", elapsed, _tmp26_);
#line 139 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_g_object_unref0 (iter);
#line 139 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_g_object_unref0 (map);
#line 139 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_g_object_unref0 (aggregator);
#line 1191 "perf.c"
}


static void _perf_tests_test_one_individual_data_free (gpointer _data) {
	PerfTestsTestOneIndividualData* _data_;
	_data_ = _data;
#line 25 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_g_free0 (_data_->id);
#line 25 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_g_object_unref0 (_data_->self);
#line 25 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	g_slice_free (PerfTestsTestOneIndividualData, _data_);
#line 1204 "perf.c"
}


static void _perf_tests_test_one_individual (PerfTests* self, const gchar* id, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	PerfTestsTestOneIndividualData* _data_;
	PerfTests* _tmp0_ = NULL;
	const gchar* _tmp1_ = NULL;
	gchar* _tmp2_ = NULL;
#line 25 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_ = g_slice_new0 (PerfTestsTestOneIndividualData);
#line 25 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, _perf_tests_test_one_individual);
#line 25 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, _perf_tests_test_one_individual_data_free);
#line 25 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_tmp0_ = _g_object_ref0 (self);
#line 25 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->self = _tmp0_;
#line 25 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_tmp1_ = id;
#line 25 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_tmp2_ = g_strdup (_tmp1_);
#line 25 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_g_free0 (_data_->id);
#line 25 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->id = _tmp2_;
#line 25 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_perf_tests_test_one_individual_co (_data_);
#line 1233 "perf.c"
}


static void _perf_tests_test_one_individual_finish (PerfTests* self, GAsyncResult* _res_, GError** error) {
	PerfTestsTestOneIndividualData* _data_;
#line 25 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
#line 25 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		return;
#line 1243 "perf.c"
	}
#line 25 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
#line 1247 "perf.c"
}


static void _perf_tests_test_one_individual_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	PerfTestsTestOneIndividualData* _data_;
#line 163 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_ = _user_data_;
#line 163 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_source_object_ = source_object;
#line 163 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_res_ = _res_;
#line 163 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_perf_tests_test_one_individual_co (_data_);
#line 1261 "perf.c"
}


static gboolean _perf_tests_test_one_individual_co (PerfTestsTestOneIndividualData* _data_) {
#line 161 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	switch (_data_->_state_) {
#line 161 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		case 0:
#line 1270 "perf.c"
		goto _state_0;
#line 161 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		case 1:
#line 1274 "perf.c"
		goto _state_1;
#line 161 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		case 2:
#line 1278 "perf.c"
		goto _state_2;
		default:
#line 161 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		g_assert_not_reached ();
#line 1283 "perf.c"
	}
	_state_0:
#line 163 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_state_ = 1;
#line 163 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_perf_tests_aggregate (_data_->self, _perf_tests_test_one_individual_ready, _data_);
#line 163 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	return FALSE;
#line 1292 "perf.c"
	_state_1:
#line 163 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp0_ = NULL;
#line 163 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp0_ = _perf_tests_aggregate_finish (_data_->self, _data_->_res_, &_data_->_inner_error_);
#line 163 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->aggregator = _data_->_tmp0_;
#line 163 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	if (G_UNLIKELY (_data_->_inner_error_ != NULL)) {
#line 163 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
#line 163 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		g_error_free (_data_->_inner_error_);
#line 163 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		if (_data_->_state_ == 0) {
#line 163 "/opt/gnome3/source/folks/tests/eds/perf.vala"
			g_simple_async_result_complete_in_idle (_data_->_async_result);
#line 1310 "perf.c"
		} else {
#line 163 "/opt/gnome3/source/folks/tests/eds/perf.vala"
			g_simple_async_result_complete (_data_->_async_result);
#line 1314 "perf.c"
		}
#line 163 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		g_object_unref (_data_->_async_result);
#line 163 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		return FALSE;
#line 1320 "perf.c"
	}
#line 164 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp1_ = NULL;
#line 164 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp1_ = _data_->aggregator;
#line 164 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp2_ = NULL;
#line 164 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp2_ = folks_individual_aggregator_get_individuals (_data_->_tmp1_);
#line 164 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp3_ = NULL;
#line 164 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp3_ = _data_->_tmp2_;
#line 164 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp4_ = NULL;
#line 164 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp4_ = _g_object_ref0 (_data_->_tmp3_);
#line 164 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->map = _data_->_tmp4_;
#line 165 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp5_ = NULL;
#line 165 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp5_ = _data_->aggregator;
#line 165 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp6_ = NULL;
#line 165 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp6_ = _data_->id;
#line 165 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_state_ = 2;
#line 165 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	folks_individual_aggregator_look_up_individual (_data_->_tmp5_, _data_->_tmp6_, _perf_tests_test_one_individual_ready, _data_);
#line 165 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	return FALSE;
#line 1354 "perf.c"
	_state_2:
#line 165 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp7_ = NULL;
#line 165 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp7_ = folks_individual_aggregator_look_up_individual_finish (_data_->_tmp5_, _data_->_res_, &_data_->_inner_error_);
#line 165 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->individual = _data_->_tmp7_;
#line 165 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	if (G_UNLIKELY (_data_->_inner_error_ != NULL)) {
#line 165 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
#line 165 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		g_error_free (_data_->_inner_error_);
#line 165 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_g_object_unref0 (_data_->map);
#line 165 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_g_object_unref0 (_data_->aggregator);
#line 165 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		if (_data_->_state_ == 0) {
#line 165 "/opt/gnome3/source/folks/tests/eds/perf.vala"
			g_simple_async_result_complete_in_idle (_data_->_async_result);
#line 1376 "perf.c"
		} else {
#line 165 "/opt/gnome3/source/folks/tests/eds/perf.vala"
			g_simple_async_result_complete (_data_->_async_result);
#line 1380 "perf.c"
		}
#line 165 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		g_object_unref (_data_->_async_result);
#line 165 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		return FALSE;
#line 1386 "perf.c"
	}
#line 167 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp8_ = NULL;
#line 167 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp8_ = _data_->individual;
#line 167 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_vala_assert (_data_->_tmp8_ != NULL, "individual != null");
#line 169 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp9_ = NULL;
#line 169 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp9_ = _data_->id;
#line 169 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp10_ = NULL;
#line 169 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp10_ = _data_->individual;
#line 169 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp11_ = NULL;
#line 169 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp11_ = folks_name_details_get_full_name ((FolksNameDetails*) G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp10_, FOLKS_TYPE_INDIVIDUAL, FolksIndividual));
#line 169 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp12_ = NULL;
#line 169 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp12_ = _data_->_tmp11_;
#line 169 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	g_message ("perf.vala:169: %s => %s", _data_->_tmp9_, _data_->_tmp12_);
#line 171 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp13_ = 0.0;
#line 171 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp13_ = g_test_timer_elapsed ();
#line 171 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->elapsed = _data_->_tmp13_;
#line 172 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp14_ = 0.0;
#line 172 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp14_ = _data_->elapsed;
#line 172 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp15_ = 0.0;
#line 172 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp15_ = _data_->elapsed;
#line 172 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp16_ = NULL;
#line 172 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp16_ = _data_->map;
#line 172 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp17_ = 0;
#line 172 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp17_ = gee_map_get_size (_data_->_tmp16_);
#line 172 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp18_ = 0;
#line 172 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp18_ = _data_->_tmp17_;
#line 172 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	g_test_minimized_result (_data_->_tmp14_, "%.6f Total time to find one of %d individuals", _data_->_tmp15_, _data_->_tmp18_);
#line 161 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_g_object_unref0 (_data_->individual);
#line 161 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_g_object_unref0 (_data_->map);
#line 161 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_g_object_unref0 (_data_->aggregator);
#line 161 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	if (_data_->_state_ == 0) {
#line 161 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		g_simple_async_result_complete_in_idle (_data_->_async_result);
#line 1450 "perf.c"
	} else {
#line 161 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		g_simple_async_result_complete (_data_->_async_result);
#line 1454 "perf.c"
	}
#line 161 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	g_object_unref (_data_->_async_result);
#line 161 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	return FALSE;
#line 1460 "perf.c"
}


static Block2Data* block2_data_ref (Block2Data* _data2_) {
#line 176 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	g_atomic_int_inc (&_data2_->_ref_count_);
#line 176 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	return _data2_;
#line 1469 "perf.c"
}


static void block2_data_unref (void * _userdata_) {
	Block2Data* _data2_;
	_data2_ = (Block2Data*) _userdata_;
#line 176 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	if (g_atomic_int_dec_and_test (&_data2_->_ref_count_)) {
#line 1478 "perf.c"
		PerfTests* self;
#line 176 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		self = _data2_->self;
#line 176 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_g_main_loop_unref0 (_data2_->loop);
#line 176 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_g_object_unref0 (_data2_->_result_);
#line 176 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_g_object_unref0 (self);
#line 176 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		g_slice_free (Block2Data, _data2_);
#line 1490 "perf.c"
	}
}


static void __lambda5_ (Block2Data* _data2_, GObject* obj, GAsyncResult* res) {
	PerfTests* self;
	GAsyncResult* _tmp0_ = NULL;
	GAsyncResult* _tmp1_ = NULL;
#line 181 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	self = _data2_->self;
#line 181 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	g_return_if_fail (res != NULL);
#line 183 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_tmp0_ = res;
#line 183 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_tmp1_ = _g_object_ref0 (_tmp0_);
#line 183 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_g_object_unref0 (_data2_->_result_);
#line 183 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data2_->_result_ = _tmp1_;
#line 184 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	g_main_loop_quit (_data2_->loop);
#line 1513 "perf.c"
}


static void ___lambda5__gasync_ready_callback (GObject* source_object, GAsyncResult* res, gpointer self) {
#line 181 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	__lambda5_ (self, source_object, res);
#line 181 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	block2_data_unref (self);
#line 1522 "perf.c"
}


static void _perf_tests_run_test_one_individual (PerfTests* self, const gchar* id, GError** error) {
	Block2Data* _data2_;
	GMainLoop* _tmp0_ = NULL;
	const gchar* _tmp1_ = NULL;
	GError * _inner_error_ = NULL;
#line 176 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	g_return_if_fail (self != NULL);
#line 176 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	g_return_if_fail (id != NULL);
#line 176 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data2_ = g_slice_new0 (Block2Data);
#line 176 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data2_->_ref_count_ = 1;
#line 176 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data2_->self = g_object_ref (self);
#line 178 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data2_->_result_ = NULL;
#line 179 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_tmp0_ = g_main_loop_new (NULL, FALSE);
#line 179 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data2_->loop = _tmp0_;
#line 181 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_tmp1_ = id;
#line 181 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_perf_tests_test_one_individual (self, _tmp1_, ___lambda5__gasync_ready_callback, block2_data_ref (_data2_));
#line 187 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	folks_test_utils_loop_run_with_timeout (_data2_->loop, 60);
#line 188 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_vala_assert (_data2_->_result_ != NULL, "result != null");
#line 190 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_perf_tests_test_one_individual_finish (self, G_TYPE_CHECK_INSTANCE_CAST (_data2_->_result_, g_async_result_get_type (), GAsyncResult), &_inner_error_);
#line 190 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 190 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		g_propagate_error (error, _inner_error_);
#line 190 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		block2_data_unref (_data2_);
#line 190 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_data2_ = NULL;
#line 190 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		return;
#line 1567 "perf.c"
	}
#line 176 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	block2_data_unref (_data2_);
#line 176 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data2_ = NULL;
#line 1573 "perf.c"
}


static void _perf_tests_test_one_persona_data_free (gpointer _data) {
	PerfTestsTestOnePersonaData* _data_;
	_data_ = _data;
#line 25 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_g_free0 (_data_->uid);
#line 25 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_g_object_unref0 (_data_->self);
#line 25 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	g_slice_free (PerfTestsTestOnePersonaData, _data_);
#line 1586 "perf.c"
}


static void _perf_tests_test_one_persona (PerfTests* self, const gchar* uid, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	PerfTestsTestOnePersonaData* _data_;
	PerfTests* _tmp0_ = NULL;
	const gchar* _tmp1_ = NULL;
	gchar* _tmp2_ = NULL;
#line 25 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_ = g_slice_new0 (PerfTestsTestOnePersonaData);
#line 25 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, _perf_tests_test_one_persona);
#line 25 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, _perf_tests_test_one_persona_data_free);
#line 25 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_tmp0_ = _g_object_ref0 (self);
#line 25 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->self = _tmp0_;
#line 25 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_tmp1_ = uid;
#line 25 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_tmp2_ = g_strdup (_tmp1_);
#line 25 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_g_free0 (_data_->uid);
#line 25 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->uid = _tmp2_;
#line 25 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_perf_tests_test_one_persona_co (_data_);
#line 1615 "perf.c"
}


static void _perf_tests_test_one_persona_finish (PerfTests* self, GAsyncResult* _res_, GError** error) {
	PerfTestsTestOnePersonaData* _data_;
#line 25 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
#line 25 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		return;
#line 1625 "perf.c"
	}
#line 25 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
#line 1629 "perf.c"
}


static void _perf_tests_test_one_persona_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	PerfTestsTestOnePersonaData* _data_;
#line 201 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_ = _user_data_;
#line 201 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_source_object_ = source_object;
#line 201 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_res_ = _res_;
#line 201 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_perf_tests_test_one_persona_co (_data_);
#line 1643 "perf.c"
}


static gboolean _perf_tests_test_one_persona_co (PerfTestsTestOnePersonaData* _data_) {
#line 199 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	switch (_data_->_state_) {
#line 199 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		case 0:
#line 1652 "perf.c"
		goto _state_0;
#line 199 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		case 1:
#line 1656 "perf.c"
		goto _state_1;
		default:
#line 199 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		g_assert_not_reached ();
#line 1661 "perf.c"
	}
	_state_0:
#line 201 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_state_ = 1;
#line 201 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_perf_tests_aggregate (_data_->self, _perf_tests_test_one_persona_ready, _data_);
#line 201 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	return FALSE;
#line 1670 "perf.c"
	_state_1:
#line 201 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp0_ = NULL;
#line 201 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp0_ = _perf_tests_aggregate_finish (_data_->self, _data_->_res_, &_data_->_inner_error_);
#line 201 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->aggregator = _data_->_tmp0_;
#line 201 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	if (G_UNLIKELY (_data_->_inner_error_ != NULL)) {
#line 201 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
#line 201 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		g_error_free (_data_->_inner_error_);
#line 201 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		if (_data_->_state_ == 0) {
#line 201 "/opt/gnome3/source/folks/tests/eds/perf.vala"
			g_simple_async_result_complete_in_idle (_data_->_async_result);
#line 1688 "perf.c"
		} else {
#line 201 "/opt/gnome3/source/folks/tests/eds/perf.vala"
			g_simple_async_result_complete (_data_->_async_result);
#line 1692 "perf.c"
		}
#line 201 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		g_object_unref (_data_->_async_result);
#line 201 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		return FALSE;
#line 1698 "perf.c"
	}
#line 202 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp1_ = NULL;
#line 202 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp1_ = folks_individual_aggregator_get_individuals (_data_->aggregator);
#line 202 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp2_ = NULL;
#line 202 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp2_ = _data_->_tmp1_;
#line 202 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp3_ = NULL;
#line 202 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp3_ = _g_object_ref0 (_data_->_tmp2_);
#line 202 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->map = _data_->_tmp3_;
#line 204 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp4_ = 0.0;
#line 204 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp4_ = g_test_timer_elapsed ();
#line 204 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp5_ = NULL;
#line 204 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp5_ = _data_->map;
#line 204 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp6_ = 0;
#line 204 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp6_ = gee_map_get_size (_data_->_tmp5_);
#line 204 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp7_ = 0;
#line 204 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp7_ = _data_->_tmp6_;
#line 204 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	g_message ("perf.vala:204: %.6f Aggregated into %d individuals", _data_->_tmp4_, _data_->_tmp7_);
#line 212 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp8_ = NULL;
#line 212 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp8_ = _data_->uid;
#line 212 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp9_ = NULL;
#line 212 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp10_ = NULL;
#line 212 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp11_ = NULL;
#line 212 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	folks_persona_split_uid (_data_->_tmp8_, &_data_->_tmp9_, &_data_->_tmp10_, &_data_->_tmp11_);
#line 212 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_g_free0 (_data_->backend_name);
#line 212 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->backend_name = _data_->_tmp9_;
#line 212 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_g_free0 (_data_->persona_store_id);
#line 212 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->persona_store_id = _data_->_tmp10_;
#line 212 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_g_free0 (_data_->persona_id);
#line 212 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->persona_id = _data_->_tmp11_;
#line 214 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp12_ = NULL;
#line 214 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp12_ = folks_backend_store_dup ();
#line 214 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->backend_store = _data_->_tmp12_;
#line 215 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp13_ = NULL;
#line 215 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp13_ = _data_->backend_store;
#line 215 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp14_ = NULL;
#line 215 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp14_ = _data_->backend_name;
#line 215 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp15_ = NULL;
#line 215 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp15_ = folks_backend_store_dup_backend_by_name (_data_->_tmp13_, _data_->_tmp14_);
#line 215 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->backend = _data_->_tmp15_;
#line 216 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp16_ = NULL;
#line 216 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp16_ = _data_->backend;
#line 216 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_vala_assert (_data_->_tmp16_ != NULL, "backend != null");
#line 217 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp17_ = NULL;
#line 217 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp17_ = _data_->backend;
#line 217 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp18_ = NULL;
#line 217 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp18_ = folks_backend_get_persona_stores (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp17_, FOLKS_TYPE_BACKEND, FolksBackend));
#line 217 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp19_ = NULL;
#line 217 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp19_ = _data_->_tmp18_;
#line 217 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp20_ = NULL;
#line 217 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp20_ = _g_object_ref0 (_data_->_tmp19_);
#line 217 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->persona_stores = _data_->_tmp20_;
#line 218 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp21_ = NULL;
#line 218 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp21_ = _data_->persona_stores;
#line 218 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp22_ = NULL;
#line 218 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp22_ = _data_->persona_store_id;
#line 218 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp23_ = NULL;
#line 218 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp23_ = gee_map_get (_data_->_tmp21_, _data_->_tmp22_);
#line 218 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->persona_store = (FolksPersonaStore*) _data_->_tmp23_;
#line 219 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp24_ = NULL;
#line 219 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp24_ = _data_->persona_store;
#line 219 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_vala_assert (_data_->_tmp24_ != NULL, "persona_store != null");
#line 220 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp25_ = NULL;
#line 220 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp25_ = _data_->persona_store;
#line 220 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp26_ = NULL;
#line 220 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp26_ = folks_persona_store_get_personas (G_TYPE_CHECK_INSTANCE_CAST (_data_->_tmp25_, FOLKS_TYPE_PERSONA_STORE, FolksPersonaStore));
#line 220 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp27_ = NULL;
#line 220 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp27_ = _data_->_tmp26_;
#line 220 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp28_ = NULL;
#line 220 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp28_ = _g_object_ref0 (_data_->_tmp27_);
#line 220 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->personas = _data_->_tmp28_;
#line 227 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->persona = NULL;
#line 228 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp29_ = NULL;
#line 228 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp29_ = _data_->personas;
#line 228 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp30_ = NULL;
#line 228 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp30_ = gee_map_map_iterator (_data_->_tmp29_);
#line 228 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->iter = _data_->_tmp30_;
#line 229 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	while (TRUE) {
#line 229 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_data_->_tmp31_ = NULL;
#line 229 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_data_->_tmp31_ = _data_->iter;
#line 229 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_data_->_tmp32_ = FALSE;
#line 229 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_data_->_tmp32_ = gee_map_iterator_next (_data_->_tmp31_);
#line 229 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		if (!_data_->_tmp32_) {
#line 229 "/opt/gnome3/source/folks/tests/eds/perf.vala"
			break;
#line 1864 "perf.c"
		}
#line 231 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_data_->_tmp33_ = NULL;
#line 231 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_data_->_tmp33_ = _data_->iter;
#line 231 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_data_->_tmp34_ = NULL;
#line 231 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_data_->_tmp34_ = gee_map_iterator_get_value (_data_->_tmp33_);
#line 231 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_g_object_unref0 (_data_->persona);
#line 231 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_data_->persona = (FolksPersona*) _data_->_tmp34_;
#line 233 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_data_->_tmp35_ = NULL;
#line 233 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_data_->_tmp35_ = _data_->persona;
#line 233 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_data_->_tmp36_ = NULL;
#line 233 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_data_->_tmp36_ = folks_persona_get_uid (_data_->_tmp35_);
#line 233 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_data_->_tmp37_ = NULL;
#line 233 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_data_->_tmp37_ = _data_->_tmp36_;
#line 233 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_data_->_tmp38_ = NULL;
#line 233 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_data_->_tmp38_ = _data_->uid;
#line 233 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		if (g_strcmp0 (_data_->_tmp37_, _data_->_tmp38_) == 0) {
#line 234 "/opt/gnome3/source/folks/tests/eds/perf.vala"
			break;
#line 1898 "perf.c"
		}
	}
#line 237 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp39_ = NULL;
#line 237 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp39_ = _data_->persona;
#line 237 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_vala_assert (_data_->_tmp39_ != NULL, "persona != null");
#line 238 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp40_ = NULL;
#line 238 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp40_ = _data_->persona;
#line 238 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp41_ = NULL;
#line 238 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp41_ = folks_persona_get_individual (_data_->_tmp40_);
#line 238 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp42_ = NULL;
#line 238 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp42_ = _data_->_tmp41_;
#line 238 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp43_ = NULL;
#line 238 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp43_ = _g_object_ref0 (_data_->_tmp42_);
#line 238 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->individual = _data_->_tmp43_;
#line 239 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp44_ = NULL;
#line 239 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp44_ = _data_->individual;
#line 239 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_vala_assert (_data_->_tmp44_ != NULL, "individual != null");
#line 240 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp45_ = NULL;
#line 240 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp45_ = _data_->uid;
#line 240 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp46_ = NULL;
#line 240 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp46_ = _data_->persona;
#line 240 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp47_ = NULL;
#line 240 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp47_ = folks_persona_get_individual (_data_->_tmp46_);
#line 240 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp48_ = NULL;
#line 240 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp48_ = _data_->_tmp47_;
#line 240 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp49_ = NULL;
#line 240 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp49_ = folks_individual_get_id (_data_->_tmp48_);
#line 240 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp50_ = NULL;
#line 240 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp50_ = _data_->_tmp49_;
#line 240 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	g_message ("perf.vala:240: %s is part of individual %s", _data_->_tmp45_, _data_->_tmp50_);
#line 242 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp51_ = 0.0;
#line 242 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp51_ = g_test_timer_elapsed ();
#line 242 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->elapsed = _data_->_tmp51_;
#line 243 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp52_ = 0.0;
#line 243 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp52_ = _data_->elapsed;
#line 243 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp53_ = 0.0;
#line 243 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp53_ = _data_->elapsed;
#line 243 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp54_ = NULL;
#line 243 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp54_ = _data_->map;
#line 243 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp55_ = 0;
#line 243 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp55_ = gee_map_get_size (_data_->_tmp54_);
#line 243 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp56_ = 0;
#line 243 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data_->_tmp56_ = _data_->_tmp55_;
#line 243 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	g_test_minimized_result (_data_->_tmp52_, "%.6f Total time to find one of %d individuals by persona uid", _data_->_tmp53_, _data_->_tmp56_);
#line 199 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_g_object_unref0 (_data_->individual);
#line 199 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_g_object_unref0 (_data_->iter);
#line 199 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_g_object_unref0 (_data_->persona);
#line 199 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_g_object_unref0 (_data_->personas);
#line 199 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_g_object_unref0 (_data_->persona_store);
#line 199 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_g_object_unref0 (_data_->persona_stores);
#line 199 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_g_object_unref0 (_data_->backend);
#line 199 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_g_object_unref0 (_data_->backend_store);
#line 199 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_g_free0 (_data_->persona_id);
#line 199 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_g_free0 (_data_->persona_store_id);
#line 199 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_g_free0 (_data_->backend_name);
#line 199 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_g_object_unref0 (_data_->map);
#line 199 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_g_object_unref0 (_data_->aggregator);
#line 199 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	if (_data_->_state_ == 0) {
#line 199 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		g_simple_async_result_complete_in_idle (_data_->_async_result);
#line 2015 "perf.c"
	} else {
#line 199 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		g_simple_async_result_complete (_data_->_async_result);
#line 2019 "perf.c"
	}
#line 199 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	g_object_unref (_data_->_async_result);
#line 199 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	return FALSE;
#line 2025 "perf.c"
}


static Block3Data* block3_data_ref (Block3Data* _data3_) {
#line 248 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	g_atomic_int_inc (&_data3_->_ref_count_);
#line 248 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	return _data3_;
#line 2034 "perf.c"
}


static void block3_data_unref (void * _userdata_) {
	Block3Data* _data3_;
	_data3_ = (Block3Data*) _userdata_;
#line 248 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	if (g_atomic_int_dec_and_test (&_data3_->_ref_count_)) {
#line 2043 "perf.c"
		PerfTests* self;
#line 248 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		self = _data3_->self;
#line 248 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_g_main_loop_unref0 (_data3_->loop);
#line 248 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_g_object_unref0 (_data3_->_result_);
#line 248 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_g_object_unref0 (self);
#line 248 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		g_slice_free (Block3Data, _data3_);
#line 2055 "perf.c"
	}
}


static void __lambda6_ (Block3Data* _data3_, GObject* obj, GAsyncResult* res) {
	PerfTests* self;
	GAsyncResult* _tmp0_ = NULL;
	GAsyncResult* _tmp1_ = NULL;
#line 253 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	self = _data3_->self;
#line 253 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	g_return_if_fail (res != NULL);
#line 255 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_tmp0_ = res;
#line 255 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_tmp1_ = _g_object_ref0 (_tmp0_);
#line 255 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_g_object_unref0 (_data3_->_result_);
#line 255 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data3_->_result_ = _tmp1_;
#line 256 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	g_main_loop_quit (_data3_->loop);
#line 2078 "perf.c"
}


static void ___lambda6__gasync_ready_callback (GObject* source_object, GAsyncResult* res, gpointer self) {
#line 253 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	__lambda6_ (self, source_object, res);
#line 253 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	block3_data_unref (self);
#line 2087 "perf.c"
}


static void _perf_tests_run_test_one_persona (PerfTests* self, const gchar* id, GError** error) {
	Block3Data* _data3_;
	GMainLoop* _tmp0_ = NULL;
	const gchar* _tmp1_ = NULL;
	GError * _inner_error_ = NULL;
#line 248 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	g_return_if_fail (self != NULL);
#line 248 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	g_return_if_fail (id != NULL);
#line 248 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data3_ = g_slice_new0 (Block3Data);
#line 248 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data3_->_ref_count_ = 1;
#line 248 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data3_->self = g_object_ref (self);
#line 250 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data3_->_result_ = NULL;
#line 251 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_tmp0_ = g_main_loop_new (NULL, FALSE);
#line 251 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data3_->loop = _tmp0_;
#line 253 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_tmp1_ = id;
#line 253 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_perf_tests_test_one_persona (self, _tmp1_, ___lambda6__gasync_ready_callback, block3_data_ref (_data3_));
#line 259 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	folks_test_utils_loop_run_with_timeout (_data3_->loop, 60);
#line 260 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_vala_assert (_data3_->_result_ != NULL, "result != null");
#line 262 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_perf_tests_test_one_persona_finish (self, G_TYPE_CHECK_INSTANCE_CAST (_data3_->_result_, g_async_result_get_type (), GAsyncResult), &_inner_error_);
#line 262 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 262 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		g_propagate_error (error, _inner_error_);
#line 262 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		block3_data_unref (_data3_);
#line 262 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_data3_ = NULL;
#line 262 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		return;
#line 2132 "perf.c"
	}
#line 248 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	block3_data_unref (_data3_);
#line 248 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_data3_ = NULL;
#line 2138 "perf.c"
}


/**
   * Benchmark whether we go any faster when test() is repeated.
   */
static void _perf_tests_test_twice (PerfTests* self) {
#line 268 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	g_return_if_fail (self != NULL);
#line 270 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_perf_tests_test (self);
#line 271 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_perf_tests_test (self);
#line 2152 "perf.c"
}


/**
   * Benchmark how much slower we go when we have many similar (or in this
   * case, identical except for unique identifier) contacts in a backend.
   *
   * This is really pretty slow, so it's only run if either the test
   * was run with -m perf, or FOLKS_TESTS_SLOW is set (because setting
   * environment variables is easier than passing command-line arguments
   * while using Automake).
   */
static void _perf_tests_test_clones (PerfTests* self) {
#line 283 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	g_return_if_fail (self != NULL);
#line 286 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_perf_tests_add_500 (self);
#line 287 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_perf_tests_add_500 (self);
#line 288 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_perf_tests_test (self);
#line 2174 "perf.c"
}


/**
   * Benchmark how much faster we go when another process has already prepared
   * our cache for us (assuming we ever implement such a cache).
   */
static void _perf_tests_test_preprepared (PerfTests* self) {
	GError * _inner_error_ = NULL;
#line 295 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	g_return_if_fail (self != NULL);
#line 2186 "perf.c"
	{
		gchar* _tmp0_ = NULL;
		gchar** _tmp1_ = NULL;
		gchar** _tmp2_ = NULL;
		gint _tmp2__length1 = 0;
		gdouble _tmp3_ = 0.0;
#line 299 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		g_test_timer_start ();
#line 300 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp0_ = g_strdup ("eds/helper-prepare-aggregator");
#line 300 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp1_ = g_new0 (gchar*, 1 + 1);
#line 300 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp1_[0] = _tmp0_;
#line 300 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp2_ = _tmp1_;
#line 300 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp2__length1 = 1;
#line 300 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		folks_test_utils_run_test_helper_sync (_tmp2_, 1, NULL, &_inner_error_);
#line 300 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp2_ = (_vala_array_free (_tmp2_, _tmp2__length1, (GDestroyNotify) g_free), NULL);
#line 300 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 2211 "perf.c"
			goto __catch2_g_error;
		}
#line 302 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp3_ = g_test_timer_elapsed ();
#line 302 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		g_message ("perf.vala:302: %.6f Finished pre-preparation", _tmp3_);
#line 2218 "perf.c"
	}
	goto __finally2;
	__catch2_g_error:
	{
		GError* e = NULL;
		const gchar* _tmp4_ = NULL;
#line 297 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		e = _inner_error_;
#line 297 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_inner_error_ = NULL;
#line 306 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp4_ = e->message;
#line 306 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		g_error ("perf.vala:306: %s", _tmp4_);
#line 297 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_g_error_free0 (e);
#line 2235 "perf.c"
	}
	__finally2:
#line 297 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 297 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
#line 297 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		g_clear_error (&_inner_error_);
#line 297 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		return;
#line 2246 "perf.c"
	}
#line 309 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_perf_tests_test (self);
#line 2250 "perf.c"
}


static gchar* string_chomp (const gchar* self) {
	gchar* result = NULL;
	gchar* _result_ = NULL;
	gchar* _tmp0_ = NULL;
	const gchar* _tmp1_ = NULL;
#line 1099 "/opt/gnome3/build/share/vala-0.26/vapi/glib-2.0.vapi"
	g_return_val_if_fail (self != NULL, NULL);
#line 1100 "/opt/gnome3/build/share/vala-0.26/vapi/glib-2.0.vapi"
	_tmp0_ = g_strdup (self);
#line 1100 "/opt/gnome3/build/share/vala-0.26/vapi/glib-2.0.vapi"
	_result_ = _tmp0_;
#line 1101 "/opt/gnome3/build/share/vala-0.26/vapi/glib-2.0.vapi"
	_tmp1_ = _result_;
#line 1101 "/opt/gnome3/build/share/vala-0.26/vapi/glib-2.0.vapi"
	g_strchomp (_tmp1_);
#line 1102 "/opt/gnome3/build/share/vala-0.26/vapi/glib-2.0.vapi"
	result = _result_;
#line 1102 "/opt/gnome3/build/share/vala-0.26/vapi/glib-2.0.vapi"
	return result;
#line 2273 "perf.c"
}


static void _perf_tests_test_preprepared_one (PerfTests* self) {
	GError * _inner_error_ = NULL;
#line 313 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	g_return_if_fail (self != NULL);
#line 2281 "perf.c"
	{
		gchar* capture = NULL;
		gchar* _tmp0_ = NULL;
		gchar* _tmp1_ = NULL;
		gchar** _tmp2_ = NULL;
		gchar** _tmp3_ = NULL;
		gint _tmp3__length1 = 0;
		gchar* _tmp4_ = NULL;
		gdouble _tmp5_ = 0.0;
		const gchar* _tmp6_ = NULL;
		gchar* _tmp7_ = NULL;
		const gchar* _tmp8_ = NULL;
#line 318 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		g_test_timer_start ();
#line 319 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp0_ = g_strdup ("eds/helper-prepare-aggregator");
#line 319 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp1_ = g_strdup ("--print-an-individual-id");
#line 319 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp2_ = g_new0 (gchar*, 2 + 1);
#line 319 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp2_[0] = _tmp0_;
#line 319 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp2_[1] = _tmp1_;
#line 319 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp3_ = _tmp2_;
#line 319 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp3__length1 = 2;
#line 319 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		folks_test_utils_run_test_helper_sync (_tmp3_, 2, &_tmp4_, &_inner_error_);
#line 319 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_g_free0 (capture);
#line 319 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		capture = _tmp4_;
#line 319 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp3_ = (_vala_array_free (_tmp3_, _tmp3__length1, (GDestroyNotify) g_free), NULL);
#line 319 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 319 "/opt/gnome3/source/folks/tests/eds/perf.vala"
			_g_free0 (capture);
#line 2322 "perf.c"
			goto __catch3_g_error;
		}
#line 322 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp5_ = g_test_timer_elapsed ();
#line 322 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		g_message ("perf.vala:322: %.6f Finished pre-preparation", _tmp5_);
#line 324 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp6_ = capture;
#line 324 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp7_ = string_chomp (_tmp6_);
#line 324 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_g_free0 (capture);
#line 324 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		capture = _tmp7_;
#line 325 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp8_ = capture;
#line 325 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_perf_tests_run_test_one_individual (self, _tmp8_, &_inner_error_);
#line 325 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 325 "/opt/gnome3/source/folks/tests/eds/perf.vala"
			_g_free0 (capture);
#line 2345 "perf.c"
			goto __catch3_g_error;
		}
#line 315 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_g_free0 (capture);
#line 2350 "perf.c"
	}
	goto __finally3;
	__catch3_g_error:
	{
		GError* e = NULL;
		const gchar* _tmp9_ = NULL;
#line 315 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		e = _inner_error_;
#line 315 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_inner_error_ = NULL;
#line 329 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp9_ = e->message;
#line 329 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		g_error ("perf.vala:329: %s", _tmp9_);
#line 315 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_g_error_free0 (e);
#line 2367 "perf.c"
	}
	__finally3:
#line 315 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 315 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
#line 315 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		g_clear_error (&_inner_error_);
#line 315 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		return;
#line 2378 "perf.c"
	}
}


static void _perf_tests_test_clones_one (PerfTests* self) {
#line 334 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	g_return_if_fail (self != NULL);
#line 336 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_perf_tests_add_500 (self);
#line 337 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_perf_tests_add_500 (self);
#line 338 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_perf_tests_test_preprepared_one (self);
#line 2392 "perf.c"
}


static void _perf_tests_test_preprepared_one_persona (PerfTests* self) {
	GError * _inner_error_ = NULL;
#line 342 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	g_return_if_fail (self != NULL);
#line 2400 "perf.c"
	{
		gchar* capture = NULL;
		gchar* _tmp0_ = NULL;
		gchar* _tmp1_ = NULL;
		gchar** _tmp2_ = NULL;
		gchar** _tmp3_ = NULL;
		gint _tmp3__length1 = 0;
		gchar* _tmp4_ = NULL;
		gdouble _tmp5_ = 0.0;
		const gchar* _tmp6_ = NULL;
		gchar* _tmp7_ = NULL;
		const gchar* _tmp8_ = NULL;
#line 347 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		g_test_timer_start ();
#line 348 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp0_ = g_strdup ("eds/helper-prepare-aggregator");
#line 348 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp1_ = g_strdup ("--print-a-persona-uid");
#line 348 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp2_ = g_new0 (gchar*, 2 + 1);
#line 348 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp2_[0] = _tmp0_;
#line 348 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp2_[1] = _tmp1_;
#line 348 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp3_ = _tmp2_;
#line 348 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp3__length1 = 2;
#line 348 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		folks_test_utils_run_test_helper_sync (_tmp3_, 2, &_tmp4_, &_inner_error_);
#line 348 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_g_free0 (capture);
#line 348 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		capture = _tmp4_;
#line 348 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp3_ = (_vala_array_free (_tmp3_, _tmp3__length1, (GDestroyNotify) g_free), NULL);
#line 348 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 348 "/opt/gnome3/source/folks/tests/eds/perf.vala"
			_g_free0 (capture);
#line 2441 "perf.c"
			goto __catch4_g_error;
		}
#line 351 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp5_ = g_test_timer_elapsed ();
#line 351 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		g_message ("perf.vala:351: %.6f Finished pre-preparation", _tmp5_);
#line 353 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp6_ = capture;
#line 353 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp7_ = string_chomp (_tmp6_);
#line 353 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_g_free0 (capture);
#line 353 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		capture = _tmp7_;
#line 354 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp8_ = capture;
#line 354 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_perf_tests_run_test_one_persona (self, _tmp8_, &_inner_error_);
#line 354 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 354 "/opt/gnome3/source/folks/tests/eds/perf.vala"
			_g_free0 (capture);
#line 2464 "perf.c"
			goto __catch4_g_error;
		}
#line 344 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_g_free0 (capture);
#line 2469 "perf.c"
	}
	goto __finally4;
	__catch4_g_error:
	{
		GError* e = NULL;
		const gchar* _tmp9_ = NULL;
#line 344 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		e = _inner_error_;
#line 344 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_inner_error_ = NULL;
#line 358 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp9_ = e->message;
#line 358 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		g_error ("perf.vala:358: %s", _tmp9_);
#line 344 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_g_error_free0 (e);
#line 2486 "perf.c"
	}
	__finally4:
#line 344 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 344 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
#line 344 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		g_clear_error (&_inner_error_);
#line 344 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		return;
#line 2497 "perf.c"
	}
}


static void _perf_tests_test_clones_one_persona (PerfTests* self) {
#line 363 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	g_return_if_fail (self != NULL);
#line 365 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_perf_tests_add_500 (self);
#line 366 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_perf_tests_add_500 (self);
#line 367 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_perf_tests_test_preprepared_one_persona (self);
#line 2511 "perf.c"
}


static void perf_tests_real_tear_down (FolksTestCase* base) {
	PerfTests * self;
	GError * _inner_error_ = NULL;
#line 370 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	self = (PerfTests*) base;
#line 2520 "perf.c"
	{
		gchar* _tmp0_ = NULL;
		gchar* _tmp1_ = NULL;
		EdsTestBackend* _tmp2_ = NULL;
		const gchar* _tmp3_ = NULL;
		const gchar* _tmp4_ = NULL;
		gchar* _tmp5_ = NULL;
		gchar** _tmp6_ = NULL;
		gchar** _tmp7_ = NULL;
		gint _tmp7__length1 = 0;
#line 374 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp0_ = g_strdup ("eds/helper-delete-contacts");
#line 374 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp1_ = g_strdup ("-u");
#line 374 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp2_ = ((EdsTestTestCase*) self)->eds_backend;
#line 374 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp3_ = eds_test_backend_get_address_book_uid (G_TYPE_CHECK_INSTANCE_CAST (_tmp2_, EDS_TEST_TYPE_BACKEND, EdsTestBackend));
#line 374 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp4_ = _tmp3_;
#line 374 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp5_ = g_strdup (_tmp4_);
#line 374 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp6_ = g_new0 (gchar*, 3 + 1);
#line 374 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp6_[0] = _tmp0_;
#line 374 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp6_[1] = _tmp1_;
#line 374 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp6_[2] = _tmp5_;
#line 374 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp7_ = _tmp6_;
#line 374 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp7__length1 = 3;
#line 374 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		folks_test_utils_run_test_helper_sync (_tmp7_, 3, NULL, &_inner_error_);
#line 374 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp7_ = (_vala_array_free (_tmp7_, _tmp7__length1, (GDestroyNotify) g_free), NULL);
#line 374 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 2561 "perf.c"
			goto __catch5_g_error;
		}
	}
	goto __finally5;
	__catch5_g_error:
	{
		GError* e = NULL;
		const gchar* _tmp8_ = NULL;
#line 372 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		e = _inner_error_;
#line 372 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_inner_error_ = NULL;
#line 380 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_tmp8_ = e->message;
#line 380 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		g_error ("perf.vala:380: %s", _tmp8_);
#line 372 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		_g_error_free0 (e);
#line 2580 "perf.c"
	}
	__finally5:
#line 372 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	if (G_UNLIKELY (_inner_error_ != NULL)) {
#line 372 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
#line 372 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		g_clear_error (&_inner_error_);
#line 372 "/opt/gnome3/source/folks/tests/eds/perf.vala"
		return;
#line 2591 "perf.c"
	}
#line 383 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	FOLKS_TEST_CASE_CLASS (perf_tests_parent_class)->tear_down ((FolksTestCase*) G_TYPE_CHECK_INSTANCE_CAST (self, EDS_TEST_TYPE_TEST_CASE, EdsTestTestCase));
#line 2595 "perf.c"
}


static void perf_tests_class_init (PerfTestsClass * klass) {
#line 25 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	perf_tests_parent_class = g_type_class_peek_parent (klass);
#line 25 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	((FolksTestCaseClass *) klass)->set_up = perf_tests_real_set_up;
#line 25 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	((FolksTestCaseClass *) klass)->tear_down = perf_tests_real_tear_down;
#line 2606 "perf.c"
}


static void perf_tests_instance_init (PerfTests * self) {
}


GType perf_tests_get_type (void) {
	static volatile gsize perf_tests_type_id__volatile = 0;
	if (g_once_init_enter (&perf_tests_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (PerfTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) perf_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PerfTests), 0, (GInstanceInitFunc) perf_tests_instance_init, NULL };
		GType perf_tests_type_id;
		perf_tests_type_id = g_type_register_static (EDS_TEST_TYPE_TEST_CASE, "PerfTests", &g_define_type_info, 0);
		g_once_init_leave (&perf_tests_type_id__volatile, perf_tests_type_id);
	}
	return perf_tests_type_id__volatile;
}


gint _vala_main (gchar** args, int args_length1) {
	gint result = 0;
	PerfTests* tests = NULL;
	PerfTests* _tmp0_ = NULL;
#line 389 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	g_test_init (&args_length1, &args, NULL);
#line 391 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_tmp0_ = perf_tests_new ();
#line 391 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	tests = _tmp0_;
#line 392 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	folks_test_case_register ((FolksTestCase*) tests);
#line 393 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	g_test_run ();
#line 394 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	folks_test_case_final_tear_down ((FolksTestCase*) tests);
#line 396 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	result = 0;
#line 396 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	_g_object_unref0 (tests);
#line 396 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	return result;
#line 2648 "perf.c"
}


int main (int argc, char ** argv) {
#if !GLIB_CHECK_VERSION (2,35,0)
	g_type_init ();
#endif
#line 387 "/opt/gnome3/source/folks/tests/eds/perf.vala"
	return _vala_main (argv, argc);
#line 2658 "perf.c"
}


static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
	if ((array != NULL) && (destroy_func != NULL)) {
		int i;
		for (i = 0; i < array_length; i = i + 1) {
			if (((gpointer*) array)[i] != NULL) {
				destroy_func (((gpointer*) array)[i]);
			}
		}
	}
}


static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
	_vala_array_destroy (array, array_length, destroy_func);
	g_free (array);
}



