/* GXmlTest.c generated by valac 0.34.6, the Vala compiler
 * generated from GXmlTest.vala, do not modify */

/* -*- Mode: vala; indent-tabs-mode: t; c-basic-offset: 2; tab-width: 2 -*- */
/* GXmlTest.vala
 *
 * Copyright (C) 2011-2013  Richard Schwarting <aquarichy@gmail.com>
 * Copyright (C) 2011-2015  Daniel Espinosa <esodan@gmail.com>
 *
 * 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:
 *      Richard Schwarting <aquarichy@gmail.com>
 *      Daniel Espinosa <esodan@gmail.com>
 */

#include <glib.h>
#include <glib-object.h>
#include <stdlib.h>
#include <string.h>
#include <gobject/gvaluecollector.h>


#define TYPE_GXML_TEST (gxml_test_get_type ())
#define GXML_TEST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_GXML_TEST, GXmlTest))
#define GXML_TEST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_GXML_TEST, GXmlTestClass))
#define IS_GXML_TEST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_GXML_TEST))
#define IS_GXML_TEST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_GXML_TEST))
#define GXML_TEST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_GXML_TEST, GXmlTestClass))

typedef struct _GXmlTest GXmlTest;
typedef struct _GXmlTestClass GXmlTestClass;
typedef struct _GXmlTestPrivate GXmlTestPrivate;
typedef struct _ParamSpecGXmlTest ParamSpecGXmlTest;

struct _GXmlTest {
	GTypeInstance parent_instance;
	volatile int ref_count;
	GXmlTestPrivate * priv;
};

struct _GXmlTestClass {
	GTypeClass parent_class;
	void (*finalize) (GXmlTest *self);
};

struct _ParamSpecGXmlTest {
	GParamSpec parent_instance;
};


static gpointer gxml_test_parent_class = NULL;

gpointer gxml_test_ref (gpointer instance);
void gxml_test_unref (gpointer instance);
GParamSpec* param_spec_gxml_test (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void value_set_gxml_test (GValue* value, gpointer v_object);
void value_take_gxml_test (GValue* value, gpointer v_object);
gpointer value_get_gxml_test (const GValue* value);
GType gxml_test_get_type (void) G_GNUC_CONST;
enum  {
	GXML_TEST_DUMMY_PROPERTY
};
gint gxml_test_main (gchar** args, int args_length1);
void node_list_test_add_tests (void);
void vala_libxml2_test_add_tests (void);
void serializable_test_add_tests (void);
void serializable_object_model_test_add_tests (void);
void serializable_object_model_tdocument_test_add_tests (void);
void serializable_gee_tree_map_test_add_tests (void);
void serializable_gee_hash_map_test_add_tests (void);
void serializable_gee_dual_key_map_test_add_tests (void);
void serializable_gee_array_list_test_add_tests (void);
void serializable_gee_collections_test_add_tests (void);
void serializable_gee_collections_tdocument_test_add_tests (void);
void serializable_basic_type_test_add_tests (void);
void serializable_enumeration_test_add_tests (void);
void performance_add_tests (void);
void telement_test_add_tests (void);
void tcdata_test_add_tests (void);
void tcomment_test_add_tests (void);
void tdocument_test_add_tests (void);
void tprocessing_instruction_test_add_tests (void);
void serializable_property_bool_test_add_tests (void);
void serializable_property_double_test_add_tests (void);
void serializable_property_float_test_add_tests (void);
void serializable_property_int_test_add_tests (void);
void serializable_property_value_list_test_add_tests (void);
void serializable_property_enum_test_add_tests (void);
void gdocument_test_add_tests (void);
void gelement_test_add_tests (void);
void gattribute_test_add_tests (void);
void html_document_test_add_tests (void);
void dom_gdocument_test_add_tests (void);
void xpath_test_add_tests (void);
void gom_document_test_add_tests (void);
void gom_element_test_add_tests (void);
void gom_serialization_test_add_tests (void);
void gom_schema_test_add_tests (void);
GXmlTest* gxml_test_new (void);
GXmlTest* gxml_test_construct (GType object_type);
static void gxml_test_finalize (GXmlTest* obj);


gint gxml_test_main (gchar** args, int args_length1) {
	gint result = 0;
#line 31 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	g_test_init (&args_length1, &args, NULL);
#line 33 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	node_list_test_add_tests ();
#line 34 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	vala_libxml2_test_add_tests ();
#line 35 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	serializable_test_add_tests ();
#line 36 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	serializable_object_model_test_add_tests ();
#line 37 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	serializable_object_model_tdocument_test_add_tests ();
#line 38 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	serializable_gee_tree_map_test_add_tests ();
#line 39 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	serializable_gee_hash_map_test_add_tests ();
#line 40 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	serializable_gee_dual_key_map_test_add_tests ();
#line 41 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	serializable_gee_array_list_test_add_tests ();
#line 42 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	serializable_gee_collections_test_add_tests ();
#line 43 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	serializable_gee_collections_tdocument_test_add_tests ();
#line 44 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	serializable_basic_type_test_add_tests ();
#line 45 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	serializable_enumeration_test_add_tests ();
#line 46 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	performance_add_tests ();
#line 47 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	telement_test_add_tests ();
#line 48 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	tcdata_test_add_tests ();
#line 49 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	tcomment_test_add_tests ();
#line 50 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	tdocument_test_add_tests ();
#line 51 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	tprocessing_instruction_test_add_tests ();
#line 52 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	serializable_property_bool_test_add_tests ();
#line 53 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	serializable_property_double_test_add_tests ();
#line 54 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	serializable_property_float_test_add_tests ();
#line 55 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	serializable_property_int_test_add_tests ();
#line 56 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	serializable_property_value_list_test_add_tests ();
#line 57 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	serializable_property_enum_test_add_tests ();
#line 58 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	gdocument_test_add_tests ();
#line 59 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	gelement_test_add_tests ();
#line 60 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	gattribute_test_add_tests ();
#line 61 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	html_document_test_add_tests ();
#line 62 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	dom_gdocument_test_add_tests ();
#line 63 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	xpath_test_add_tests ();
#line 64 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	gom_document_test_add_tests ();
#line 65 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	gom_element_test_add_tests ();
#line 66 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	gom_serialization_test_add_tests ();
#line 67 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	gom_schema_test_add_tests ();
#line 69 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	g_test_run ();
#line 71 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	result = 0;
#line 71 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	return result;
#line 197 "GXmlTest.c"
}


int main (int argc, char ** argv) {
#if !GLIB_CHECK_VERSION (2,35,0)
	g_type_init ();
#endif
#line 27 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	return gxml_test_main (argv, argc);
#line 207 "GXmlTest.c"
}


GXmlTest* gxml_test_construct (GType object_type) {
	GXmlTest* self = NULL;
#line 26 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	self = (GXmlTest*) g_type_create_instance (object_type);
#line 26 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	return self;
#line 217 "GXmlTest.c"
}


GXmlTest* gxml_test_new (void) {
#line 26 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	return gxml_test_construct (TYPE_GXML_TEST);
#line 224 "GXmlTest.c"
}


static void value_gxml_test_init (GValue* value) {
#line 26 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	value->data[0].v_pointer = NULL;
#line 231 "GXmlTest.c"
}


static void value_gxml_test_free_value (GValue* value) {
#line 26 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	if (value->data[0].v_pointer) {
#line 26 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
		gxml_test_unref (value->data[0].v_pointer);
#line 240 "GXmlTest.c"
	}
}


static void value_gxml_test_copy_value (const GValue* src_value, GValue* dest_value) {
#line 26 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	if (src_value->data[0].v_pointer) {
#line 26 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
		dest_value->data[0].v_pointer = gxml_test_ref (src_value->data[0].v_pointer);
#line 250 "GXmlTest.c"
	} else {
#line 26 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
		dest_value->data[0].v_pointer = NULL;
#line 254 "GXmlTest.c"
	}
}


static gpointer value_gxml_test_peek_pointer (const GValue* value) {
#line 26 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	return value->data[0].v_pointer;
#line 262 "GXmlTest.c"
}


static gchar* value_gxml_test_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
#line 26 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	if (collect_values[0].v_pointer) {
#line 269 "GXmlTest.c"
		GXmlTest* object;
		object = collect_values[0].v_pointer;
#line 26 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
		if (object->parent_instance.g_class == NULL) {
#line 26 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
			return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
#line 276 "GXmlTest.c"
		} else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
#line 26 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
			return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
#line 280 "GXmlTest.c"
		}
#line 26 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
		value->data[0].v_pointer = gxml_test_ref (object);
#line 284 "GXmlTest.c"
	} else {
#line 26 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
		value->data[0].v_pointer = NULL;
#line 288 "GXmlTest.c"
	}
#line 26 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	return NULL;
#line 292 "GXmlTest.c"
}


static gchar* value_gxml_test_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
	GXmlTest** object_p;
	object_p = collect_values[0].v_pointer;
#line 26 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	if (!object_p) {
#line 26 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
		return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
#line 303 "GXmlTest.c"
	}
#line 26 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	if (!value->data[0].v_pointer) {
#line 26 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
		*object_p = NULL;
#line 309 "GXmlTest.c"
	} else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
#line 26 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
		*object_p = value->data[0].v_pointer;
#line 313 "GXmlTest.c"
	} else {
#line 26 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
		*object_p = gxml_test_ref (value->data[0].v_pointer);
#line 317 "GXmlTest.c"
	}
#line 26 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	return NULL;
#line 321 "GXmlTest.c"
}


GParamSpec* param_spec_gxml_test (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
	ParamSpecGXmlTest* spec;
#line 26 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	g_return_val_if_fail (g_type_is_a (object_type, TYPE_GXML_TEST), NULL);
#line 26 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
#line 26 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	G_PARAM_SPEC (spec)->value_type = object_type;
#line 26 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	return G_PARAM_SPEC (spec);
#line 335 "GXmlTest.c"
}


gpointer value_get_gxml_test (const GValue* value) {
#line 26 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_GXML_TEST), NULL);
#line 26 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	return value->data[0].v_pointer;
#line 344 "GXmlTest.c"
}


void value_set_gxml_test (GValue* value, gpointer v_object) {
	GXmlTest* old;
#line 26 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_GXML_TEST));
#line 26 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	old = value->data[0].v_pointer;
#line 26 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	if (v_object) {
#line 26 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
		g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_GXML_TEST));
#line 26 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
		g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
#line 26 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
		value->data[0].v_pointer = v_object;
#line 26 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
		gxml_test_ref (value->data[0].v_pointer);
#line 364 "GXmlTest.c"
	} else {
#line 26 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
		value->data[0].v_pointer = NULL;
#line 368 "GXmlTest.c"
	}
#line 26 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	if (old) {
#line 26 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
		gxml_test_unref (old);
#line 374 "GXmlTest.c"
	}
}


void value_take_gxml_test (GValue* value, gpointer v_object) {
	GXmlTest* old;
#line 26 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_GXML_TEST));
#line 26 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	old = value->data[0].v_pointer;
#line 26 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	if (v_object) {
#line 26 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
		g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_GXML_TEST));
#line 26 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
		g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
#line 26 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
		value->data[0].v_pointer = v_object;
#line 393 "GXmlTest.c"
	} else {
#line 26 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
		value->data[0].v_pointer = NULL;
#line 397 "GXmlTest.c"
	}
#line 26 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	if (old) {
#line 26 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
		gxml_test_unref (old);
#line 403 "GXmlTest.c"
	}
}


static void gxml_test_class_init (GXmlTestClass * klass) {
#line 26 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	gxml_test_parent_class = g_type_class_peek_parent (klass);
#line 26 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	((GXmlTestClass *) klass)->finalize = gxml_test_finalize;
#line 413 "GXmlTest.c"
}


static void gxml_test_instance_init (GXmlTest * self) {
#line 26 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	self->ref_count = 1;
#line 420 "GXmlTest.c"
}


static void gxml_test_finalize (GXmlTest* obj) {
	GXmlTest * self;
#line 26 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_GXML_TEST, GXmlTest);
#line 26 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	g_signal_handlers_destroy (self);
#line 430 "GXmlTest.c"
}


GType gxml_test_get_type (void) {
	static volatile gsize gxml_test_type_id__volatile = 0;
	if (g_once_init_enter (&gxml_test_type_id__volatile)) {
		static const GTypeValueTable g_define_type_value_table = { value_gxml_test_init, value_gxml_test_free_value, value_gxml_test_copy_value, value_gxml_test_peek_pointer, "p", value_gxml_test_collect_value, "p", value_gxml_test_lcopy_value };
		static const GTypeInfo g_define_type_info = { sizeof (GXmlTestClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gxml_test_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GXmlTest), 0, (GInstanceInitFunc) gxml_test_instance_init, &g_define_type_value_table };
		static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
		GType gxml_test_type_id;
		gxml_test_type_id = g_type_register_fundamental (g_type_fundamental_next (), "GXmlTest", &g_define_type_info, &g_define_type_fundamental_info, 0);
		g_once_init_leave (&gxml_test_type_id__volatile, gxml_test_type_id);
	}
	return gxml_test_type_id__volatile;
}


gpointer gxml_test_ref (gpointer instance) {
	GXmlTest* self;
	self = instance;
#line 26 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	g_atomic_int_inc (&self->ref_count);
#line 26 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	return instance;
#line 455 "GXmlTest.c"
}


void gxml_test_unref (gpointer instance) {
	GXmlTest* self;
	self = instance;
#line 26 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
	if (g_atomic_int_dec_and_test (&self->ref_count)) {
#line 26 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
		GXML_TEST_GET_CLASS (self)->finalize (self);
#line 26 "/home/despinosa/Proyectos/gxml/test/GXmlTest.vala"
		g_type_free_instance ((GTypeInstance *) self);
#line 468 "GXmlTest.c"
	}
}



