Initial commit
[fillmore] / src / test / debug / ProjectLoading.c
diff --git a/src/test/debug/ProjectLoading.c b/src/test/debug/ProjectLoading.c
new file mode 100644 (file)
index 0000000..b2c1845
--- /dev/null
@@ -0,0 +1,989 @@
+/* ProjectLoading.c generated by valac, the Vala compiler
+ * generated from ProjectLoading.vala, do not modify */
+
+/* Copyright 2009 Yorba Foundation
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later).  See the COPYING file in this distribution. 
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define MODEL_TYPE_CLIP_FETCHER (model_clip_fetcher_get_type ())
+#define MODEL_CLIP_FETCHER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MODEL_TYPE_CLIP_FETCHER, ModelClipFetcher))
+#define MODEL_CLIP_FETCHER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MODEL_TYPE_CLIP_FETCHER, ModelClipFetcherClass))
+#define MODEL_IS_CLIP_FETCHER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MODEL_TYPE_CLIP_FETCHER))
+#define MODEL_IS_CLIP_FETCHER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MODEL_TYPE_CLIP_FETCHER))
+#define MODEL_CLIP_FETCHER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MODEL_TYPE_CLIP_FETCHER, ModelClipFetcherClass))
+
+typedef struct _ModelClipFetcher ModelClipFetcher;
+typedef struct _ModelClipFetcherClass ModelClipFetcherClass;
+typedef struct _ModelClipFetcherPrivate ModelClipFetcherPrivate;
+
+#define MODEL_TYPE_CLIP_FILE (model_clip_file_get_type ())
+#define MODEL_CLIP_FILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MODEL_TYPE_CLIP_FILE, ModelClipFile))
+#define MODEL_CLIP_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MODEL_TYPE_CLIP_FILE, ModelClipFileClass))
+#define MODEL_IS_CLIP_FILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MODEL_TYPE_CLIP_FILE))
+#define MODEL_IS_CLIP_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MODEL_TYPE_CLIP_FILE))
+#define MODEL_CLIP_FILE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MODEL_TYPE_CLIP_FILE, ModelClipFileClass))
+
+typedef struct _ModelClipFile ModelClipFile;
+typedef struct _ModelClipFileClass ModelClipFileClass;
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _model_clip_file_unref0(var) ((var == NULL) ? NULL : (var = (model_clip_file_unref (var), NULL)))
+typedef struct _ModelParamSpecClipFetcher ModelParamSpecClipFetcher;
+typedef struct _ModelClipFilePrivate ModelClipFilePrivate;
+typedef struct _ModelParamSpecClipFile ModelParamSpecClipFile;
+
+#define TYPE_VALID_DOCUMENT (valid_document_get_type ())
+typedef struct _ValidDocument ValidDocument;
+
+#define TYPE_STATE_CHANGE_FIXTURE (state_change_fixture_get_type ())
+
+#define MODEL_TYPE_XML_ELEMENT (model_xml_element_get_type ())
+#define MODEL_XML_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MODEL_TYPE_XML_ELEMENT, ModelXmlElement))
+#define MODEL_XML_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MODEL_TYPE_XML_ELEMENT, ModelXmlElementClass))
+#define MODEL_IS_XML_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MODEL_TYPE_XML_ELEMENT))
+#define MODEL_IS_XML_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MODEL_TYPE_XML_ELEMENT))
+#define MODEL_XML_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MODEL_TYPE_XML_ELEMENT, ModelXmlElementClass))
+
+typedef struct _ModelXmlElement ModelXmlElement;
+typedef struct _ModelXmlElementClass ModelXmlElementClass;
+
+#define MODEL_TYPE_PROJECT_BUILDER (model_project_builder_get_type ())
+#define MODEL_PROJECT_BUILDER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MODEL_TYPE_PROJECT_BUILDER, ModelProjectBuilder))
+#define MODEL_PROJECT_BUILDER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MODEL_TYPE_PROJECT_BUILDER, ModelProjectBuilderClass))
+#define MODEL_IS_PROJECT_BUILDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MODEL_TYPE_PROJECT_BUILDER))
+#define MODEL_IS_PROJECT_BUILDER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MODEL_TYPE_PROJECT_BUILDER))
+#define MODEL_PROJECT_BUILDER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MODEL_TYPE_PROJECT_BUILDER, ModelProjectBuilderClass))
+
+typedef struct _ModelProjectBuilder ModelProjectBuilder;
+typedef struct _ModelProjectBuilderClass ModelProjectBuilderClass;
+typedef struct _StateChangeFixture StateChangeFixture;
+#define _model_xml_element_unref0(var) ((var == NULL) ? NULL : (var = (model_xml_element_unref (var), NULL)))
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define MODEL_TYPE_XML_TREE_LOADER (model_xml_tree_loader_get_type ())
+#define MODEL_XML_TREE_LOADER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MODEL_TYPE_XML_TREE_LOADER, ModelXmlTreeLoader))
+#define MODEL_XML_TREE_LOADER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MODEL_TYPE_XML_TREE_LOADER, ModelXmlTreeLoaderClass))
+#define MODEL_IS_XML_TREE_LOADER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MODEL_TYPE_XML_TREE_LOADER))
+#define MODEL_IS_XML_TREE_LOADER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MODEL_TYPE_XML_TREE_LOADER))
+#define MODEL_XML_TREE_LOADER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MODEL_TYPE_XML_TREE_LOADER, ModelXmlTreeLoaderClass))
+
+typedef struct _ModelXmlTreeLoader ModelXmlTreeLoader;
+typedef struct _ModelXmlTreeLoaderClass ModelXmlTreeLoaderClass;
+typedef struct _ModelXmlTreeLoaderPrivate ModelXmlTreeLoaderPrivate;
+
+#define MODEL_TYPE_LOADER_HANDLER (model_loader_handler_get_type ())
+#define MODEL_LOADER_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MODEL_TYPE_LOADER_HANDLER, ModelLoaderHandler))
+#define MODEL_LOADER_HANDLER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MODEL_TYPE_LOADER_HANDLER, ModelLoaderHandlerClass))
+#define MODEL_IS_LOADER_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MODEL_TYPE_LOADER_HANDLER))
+#define MODEL_IS_LOADER_HANDLER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MODEL_TYPE_LOADER_HANDLER))
+#define MODEL_LOADER_HANDLER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MODEL_TYPE_LOADER_HANDLER, ModelLoaderHandlerClass))
+
+typedef struct _ModelLoaderHandler ModelLoaderHandler;
+typedef struct _ModelLoaderHandlerClass ModelLoaderHandlerClass;
+#define _model_xml_tree_loader_unref0(var) ((var == NULL) ? NULL : (var = (model_xml_tree_loader_unref (var), NULL)))
+typedef GTestSuite ProjectLoaderSuite;
+
+struct _ModelClipFetcher {
+       GTypeInstance parent_instance;
+       volatile int ref_count;
+       ModelClipFetcherPrivate * priv;
+       char* error_string;
+       ModelClipFile* clipfile;
+};
+
+struct _ModelClipFetcherClass {
+       GTypeClass parent_class;
+       void (*finalize) (ModelClipFetcher *self);
+};
+
+struct _ModelClipFetcherPrivate {
+       char* filename;
+};
+
+struct _ModelParamSpecClipFetcher {
+       GParamSpec parent_instance;
+};
+
+struct _ModelClipFile {
+       GTypeInstance parent_instance;
+       volatile int ref_count;
+       ModelClipFilePrivate * priv;
+       char* filename;
+};
+
+struct _ModelClipFileClass {
+       GTypeClass parent_class;
+       void (*finalize) (ModelClipFile *self);
+};
+
+struct _ModelParamSpecClipFile {
+       GParamSpec parent_instance;
+};
+
+struct _ValidDocument {
+       gboolean valid;
+       char* document;
+};
+
+struct _StateChangeFixture {
+       ModelXmlElement* root;
+       ModelProjectBuilder* project_builder;
+       gboolean valid;
+};
+
+struct _ModelXmlTreeLoader {
+       GTypeInstance parent_instance;
+       volatile int ref_count;
+       ModelXmlTreeLoaderPrivate * priv;
+       ModelXmlElement* root;
+};
+
+struct _ModelXmlTreeLoaderClass {
+       GTypeClass parent_class;
+       void (*finalize) (ModelXmlTreeLoader *self);
+};
+
+
+static gpointer model_clip_fetcher_parent_class = NULL;
+static gpointer model_clip_file_parent_class = NULL;
+extern ValidDocument* project_documents;
+extern gint project_documents_length1;
+ValidDocument* project_documents = NULL;
+gint project_documents_length1 = 0;
+static gint _project_documents_size_ = 0;
+extern gint current_document;
+gint current_document = 0;
+extern gboolean document_valid;
+gboolean document_valid = FALSE;
+
+gpointer model_clip_fetcher_ref (gpointer instance);
+void model_clip_fetcher_unref (gpointer instance);
+GParamSpec* model_param_spec_clip_fetcher (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void model_value_set_clip_fetcher (GValue* value, gpointer v_object);
+void model_value_take_clip_fetcher (GValue* value, gpointer v_object);
+gpointer model_value_get_clip_fetcher (const GValue* value);
+GType model_clip_fetcher_get_type (void);
+gpointer model_clip_file_ref (gpointer instance);
+void model_clip_file_unref (gpointer instance);
+GParamSpec* model_param_spec_clip_file (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void model_value_set_clip_file (GValue* value, gpointer v_object);
+void model_value_take_clip_file (GValue* value, gpointer v_object);
+gpointer model_value_get_clip_file (const GValue* value);
+GType model_clip_file_get_type (void);
+#define MODEL_CLIP_FETCHER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), MODEL_TYPE_CLIP_FETCHER, ModelClipFetcherPrivate))
+enum  {
+       MODEL_CLIP_FETCHER_DUMMY_PROPERTY
+};
+ModelClipFetcher* model_clip_fetcher_new (const char* filename);
+ModelClipFetcher* model_clip_fetcher_construct (GType object_type, const char* filename);
+char* model_clip_fetcher_get_filename (ModelClipFetcher* self);
+static void model_clip_fetcher_finalize (ModelClipFetcher* obj);
+enum  {
+       MODEL_CLIP_FILE_DUMMY_PROPERTY
+};
+ModelClipFile* model_clip_file_new (void);
+ModelClipFile* model_clip_file_construct (GType object_type);
+static void model_clip_file_finalize (ModelClipFile* obj);
+GType valid_document_get_type (void);
+ValidDocument* valid_document_dup (const ValidDocument* self);
+void valid_document_free (ValidDocument* self);
+void valid_document_copy (const ValidDocument* self, ValidDocument* dest);
+void valid_document_destroy (ValidDocument* self);
+void valid_document_init (ValidDocument *self, gboolean valid, const char* document);
+GType state_change_fixture_get_type (void);
+gpointer model_xml_element_ref (gpointer instance);
+void model_xml_element_unref (gpointer instance);
+GParamSpec* model_param_spec_xml_element (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void model_value_set_xml_element (GValue* value, gpointer v_object);
+void model_value_take_xml_element (GValue* value, gpointer v_object);
+gpointer model_value_get_xml_element (const GValue* value);
+GType model_xml_element_get_type (void);
+GType model_project_builder_get_type (void);
+StateChangeFixture* state_change_fixture_dup (const StateChangeFixture* self);
+void state_change_fixture_free (StateChangeFixture* self);
+void state_change_fixture_copy (const StateChangeFixture* self, StateChangeFixture* dest);
+void state_change_fixture_destroy (StateChangeFixture* self);
+ModelXmlTreeLoader* model_xml_tree_loader_new (const char* document);
+ModelXmlTreeLoader* model_xml_tree_loader_construct (GType object_type, const char* document);
+gpointer model_xml_tree_loader_ref (gpointer instance);
+void model_xml_tree_loader_unref (gpointer instance);
+GParamSpec* model_param_spec_xml_tree_loader (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void model_value_set_xml_tree_loader (GValue* value, gpointer v_object);
+void model_value_take_xml_tree_loader (GValue* value, gpointer v_object);
+gpointer model_value_get_xml_tree_loader (const GValue* value);
+GType model_xml_tree_loader_get_type (void);
+ModelLoaderHandler* model_loader_handler_new (void);
+ModelLoaderHandler* model_loader_handler_construct (GType object_type);
+GType model_loader_handler_get_type (void);
+ModelProjectBuilder* model_project_builder_new (ModelLoaderHandler* handler);
+ModelProjectBuilder* model_project_builder_construct (GType object_type, ModelLoaderHandler* handler);
+void state_change_fixture_buildup (void* fixture);
+void state_change_fixture_teardown (void* fixture);
+void on_error_occurred (const char* message);
+static void _on_error_occurred_model_project_builder_error_occurred (ModelProjectBuilder* _sender, const char* _error_, gpointer self);
+gboolean model_project_builder_check_project (ModelProjectBuilder* self, ModelXmlElement* root);
+void model_project_builder_build_project (ModelProjectBuilder* self, ModelXmlElement* root);
+void check_document (void* fixture);
+static void _vala_ValidDocument_array_free (ValidDocument* array, gint array_length);
+static void _state_change_fixture_buildup_gtest_func (void* fixture, gpointer self);
+static void _check_document_gtest_func (void* fixture, gpointer self);
+static void _state_change_fixture_teardown_gtest_func (void* fixture, gpointer self);
+ProjectLoaderSuite* project_loader_suite_new (void);
+ProjectLoaderSuite* project_loader_suite_new (void);
+
+
+static void g_cclosure_user_marshal_VOID__MODEL_CLIP_FETCHER (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
+
+#line 14 "ProjectLoading.vala"
+ModelClipFetcher* model_clip_fetcher_construct (GType object_type, const char* filename) {
+#line 248 "ProjectLoading.c"
+       ModelClipFetcher* self;
+       char* _tmp0_;
+#line 14 "ProjectLoading.vala"
+       g_return_val_if_fail (filename != NULL, NULL);
+#line 253 "ProjectLoading.c"
+       self = (ModelClipFetcher*) g_type_create_instance (object_type);
+#line 15 "ProjectLoading.vala"
+       self->priv->filename = (_tmp0_ = g_strdup (filename), _g_free0 (self->priv->filename), _tmp0_);
+#line 257 "ProjectLoading.c"
+       return self;
+}
+
+
+#line 14 "ProjectLoading.vala"
+ModelClipFetcher* model_clip_fetcher_new (const char* filename) {
+#line 14 "ProjectLoading.vala"
+       return model_clip_fetcher_construct (MODEL_TYPE_CLIP_FETCHER, filename);
+#line 266 "ProjectLoading.c"
+}
+
+
+#line 17 "ProjectLoading.vala"
+char* model_clip_fetcher_get_filename (ModelClipFetcher* self) {
+#line 272 "ProjectLoading.c"
+       char* result = NULL;
+#line 17 "ProjectLoading.vala"
+       g_return_val_if_fail (MODEL_IS_CLIP_FETCHER (self), NULL);
+#line 276 "ProjectLoading.c"
+       result = g_strdup (self->priv->filename);
+#line 18 "ProjectLoading.vala"
+       return result;
+#line 280 "ProjectLoading.c"
+}
+
+
+static void model_value_clip_fetcher_init (GValue* value) {
+       value->data[0].v_pointer = NULL;
+}
+
+
+static void model_value_clip_fetcher_free_value (GValue* value) {
+       if (value->data[0].v_pointer) {
+               model_clip_fetcher_unref (value->data[0].v_pointer);
+       }
+}
+
+
+static void model_value_clip_fetcher_copy_value (const GValue* src_value, GValue* dest_value) {
+       if (src_value->data[0].v_pointer) {
+               dest_value->data[0].v_pointer = model_clip_fetcher_ref (src_value->data[0].v_pointer);
+       } else {
+               dest_value->data[0].v_pointer = NULL;
+       }
+}
+
+
+static gpointer model_value_clip_fetcher_peek_pointer (const GValue* value) {
+       return value->data[0].v_pointer;
+}
+
+
+static gchar* model_value_clip_fetcher_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+       if (collect_values[0].v_pointer) {
+               ModelClipFetcher* object;
+               object = collect_values[0].v_pointer;
+               if (object->parent_instance.g_class == NULL) {
+                       return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+               } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+                       return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+               }
+               value->data[0].v_pointer = model_clip_fetcher_ref (object);
+       } else {
+               value->data[0].v_pointer = NULL;
+       }
+       return NULL;
+}
+
+
+static gchar* model_value_clip_fetcher_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+       ModelClipFetcher** object_p;
+       object_p = collect_values[0].v_pointer;
+       if (!object_p) {
+               return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+       }
+       if (!value->data[0].v_pointer) {
+               *object_p = NULL;
+       } else if (collect_flags && G_VALUE_NOCOPY_CONTENTS) {
+               *object_p = value->data[0].v_pointer;
+       } else {
+               *object_p = model_clip_fetcher_ref (value->data[0].v_pointer);
+       }
+       return NULL;
+}
+
+
+GParamSpec* model_param_spec_clip_fetcher (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+       ModelParamSpecClipFetcher* spec;
+       g_return_val_if_fail (g_type_is_a (object_type, MODEL_TYPE_CLIP_FETCHER), NULL);
+       spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+       G_PARAM_SPEC (spec)->value_type = object_type;
+       return G_PARAM_SPEC (spec);
+}
+
+
+gpointer model_value_get_clip_fetcher (const GValue* value) {
+       g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, MODEL_TYPE_CLIP_FETCHER), NULL);
+       return value->data[0].v_pointer;
+}
+
+
+void model_value_set_clip_fetcher (GValue* value, gpointer v_object) {
+       ModelClipFetcher* old;
+       g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, MODEL_TYPE_CLIP_FETCHER));
+       old = value->data[0].v_pointer;
+       if (v_object) {
+               g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, MODEL_TYPE_CLIP_FETCHER));
+               g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+               value->data[0].v_pointer = v_object;
+               model_clip_fetcher_ref (value->data[0].v_pointer);
+       } else {
+               value->data[0].v_pointer = NULL;
+       }
+       if (old) {
+               model_clip_fetcher_unref (old);
+       }
+}
+
+
+void model_value_take_clip_fetcher (GValue* value, gpointer v_object) {
+       ModelClipFetcher* old;
+       g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, MODEL_TYPE_CLIP_FETCHER));
+       old = value->data[0].v_pointer;
+       if (v_object) {
+               g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, MODEL_TYPE_CLIP_FETCHER));
+               g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+               value->data[0].v_pointer = v_object;
+       } else {
+               value->data[0].v_pointer = NULL;
+       }
+       if (old) {
+               model_clip_fetcher_unref (old);
+       }
+}
+
+
+static void model_clip_fetcher_class_init (ModelClipFetcherClass * klass) {
+       model_clip_fetcher_parent_class = g_type_class_peek_parent (klass);
+       MODEL_CLIP_FETCHER_CLASS (klass)->finalize = model_clip_fetcher_finalize;
+       g_type_class_add_private (klass, sizeof (ModelClipFetcherPrivate));
+       g_signal_new ("ready", MODEL_TYPE_CLIP_FETCHER, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__MODEL_CLIP_FETCHER, G_TYPE_NONE, 1, MODEL_TYPE_CLIP_FETCHER);
+}
+
+
+static void model_clip_fetcher_instance_init (ModelClipFetcher * self) {
+       self->priv = MODEL_CLIP_FETCHER_GET_PRIVATE (self);
+       self->ref_count = 1;
+}
+
+
+static void model_clip_fetcher_finalize (ModelClipFetcher* obj) {
+       ModelClipFetcher * self;
+       self = MODEL_CLIP_FETCHER (obj);
+       _g_free0 (self->error_string);
+       _model_clip_file_unref0 (self->clipfile);
+       _g_free0 (self->priv->filename);
+}
+
+
+GType model_clip_fetcher_get_type (void) {
+       static volatile gsize model_clip_fetcher_type_id__volatile = 0;
+       if (g_once_init_enter (&model_clip_fetcher_type_id__volatile)) {
+               static const GTypeValueTable g_define_type_value_table = { model_value_clip_fetcher_init, model_value_clip_fetcher_free_value, model_value_clip_fetcher_copy_value, model_value_clip_fetcher_peek_pointer, "p", model_value_clip_fetcher_collect_value, "p", model_value_clip_fetcher_lcopy_value };
+               static const GTypeInfo g_define_type_info = { sizeof (ModelClipFetcherClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) model_clip_fetcher_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ModelClipFetcher), 0, (GInstanceInitFunc) model_clip_fetcher_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 model_clip_fetcher_type_id;
+               model_clip_fetcher_type_id = g_type_register_fundamental (g_type_fundamental_next (), "ModelClipFetcher", &g_define_type_info, &g_define_type_fundamental_info, 0);
+               g_once_init_leave (&model_clip_fetcher_type_id__volatile, model_clip_fetcher_type_id);
+       }
+       return model_clip_fetcher_type_id__volatile;
+}
+
+
+gpointer model_clip_fetcher_ref (gpointer instance) {
+       ModelClipFetcher* self;
+       self = instance;
+       g_atomic_int_inc (&self->ref_count);
+       return instance;
+}
+
+
+void model_clip_fetcher_unref (gpointer instance) {
+       ModelClipFetcher* self;
+       self = instance;
+       if (g_atomic_int_dec_and_test (&self->ref_count)) {
+               MODEL_CLIP_FETCHER_GET_CLASS (self)->finalize (self);
+               g_type_free_instance ((GTypeInstance *) self);
+       }
+}
+
+
+#line 23 "ProjectLoading.vala"
+ModelClipFile* model_clip_file_construct (GType object_type) {
+#line 451 "ProjectLoading.c"
+       ModelClipFile* self;
+       self = (ModelClipFile*) g_type_create_instance (object_type);
+       return self;
+}
+
+
+#line 23 "ProjectLoading.vala"
+ModelClipFile* model_clip_file_new (void) {
+#line 23 "ProjectLoading.vala"
+       return model_clip_file_construct (MODEL_TYPE_CLIP_FILE);
+#line 462 "ProjectLoading.c"
+}
+
+
+static void model_value_clip_file_init (GValue* value) {
+       value->data[0].v_pointer = NULL;
+}
+
+
+static void model_value_clip_file_free_value (GValue* value) {
+       if (value->data[0].v_pointer) {
+               model_clip_file_unref (value->data[0].v_pointer);
+       }
+}
+
+
+static void model_value_clip_file_copy_value (const GValue* src_value, GValue* dest_value) {
+       if (src_value->data[0].v_pointer) {
+               dest_value->data[0].v_pointer = model_clip_file_ref (src_value->data[0].v_pointer);
+       } else {
+               dest_value->data[0].v_pointer = NULL;
+       }
+}
+
+
+static gpointer model_value_clip_file_peek_pointer (const GValue* value) {
+       return value->data[0].v_pointer;
+}
+
+
+static gchar* model_value_clip_file_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+       if (collect_values[0].v_pointer) {
+               ModelClipFile* object;
+               object = collect_values[0].v_pointer;
+               if (object->parent_instance.g_class == NULL) {
+                       return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+               } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+                       return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+               }
+               value->data[0].v_pointer = model_clip_file_ref (object);
+       } else {
+               value->data[0].v_pointer = NULL;
+       }
+       return NULL;
+}
+
+
+static gchar* model_value_clip_file_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+       ModelClipFile** object_p;
+       object_p = collect_values[0].v_pointer;
+       if (!object_p) {
+               return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+       }
+       if (!value->data[0].v_pointer) {
+               *object_p = NULL;
+       } else if (collect_flags && G_VALUE_NOCOPY_CONTENTS) {
+               *object_p = value->data[0].v_pointer;
+       } else {
+               *object_p = model_clip_file_ref (value->data[0].v_pointer);
+       }
+       return NULL;
+}
+
+
+GParamSpec* model_param_spec_clip_file (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+       ModelParamSpecClipFile* spec;
+       g_return_val_if_fail (g_type_is_a (object_type, MODEL_TYPE_CLIP_FILE), NULL);
+       spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+       G_PARAM_SPEC (spec)->value_type = object_type;
+       return G_PARAM_SPEC (spec);
+}
+
+
+gpointer model_value_get_clip_file (const GValue* value) {
+       g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, MODEL_TYPE_CLIP_FILE), NULL);
+       return value->data[0].v_pointer;
+}
+
+
+void model_value_set_clip_file (GValue* value, gpointer v_object) {
+       ModelClipFile* old;
+       g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, MODEL_TYPE_CLIP_FILE));
+       old = value->data[0].v_pointer;
+       if (v_object) {
+               g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, MODEL_TYPE_CLIP_FILE));
+               g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+               value->data[0].v_pointer = v_object;
+               model_clip_file_ref (value->data[0].v_pointer);
+       } else {
+               value->data[0].v_pointer = NULL;
+       }
+       if (old) {
+               model_clip_file_unref (old);
+       }
+}
+
+
+void model_value_take_clip_file (GValue* value, gpointer v_object) {
+       ModelClipFile* old;
+       g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, MODEL_TYPE_CLIP_FILE));
+       old = value->data[0].v_pointer;
+       if (v_object) {
+               g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, MODEL_TYPE_CLIP_FILE));
+               g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+               value->data[0].v_pointer = v_object;
+       } else {
+               value->data[0].v_pointer = NULL;
+       }
+       if (old) {
+               model_clip_file_unref (old);
+       }
+}
+
+
+static void model_clip_file_class_init (ModelClipFileClass * klass) {
+       model_clip_file_parent_class = g_type_class_peek_parent (klass);
+       MODEL_CLIP_FILE_CLASS (klass)->finalize = model_clip_file_finalize;
+}
+
+
+static void model_clip_file_instance_init (ModelClipFile * self) {
+       self->ref_count = 1;
+}
+
+
+static void model_clip_file_finalize (ModelClipFile* obj) {
+       ModelClipFile * self;
+       self = MODEL_CLIP_FILE (obj);
+       _g_free0 (self->filename);
+}
+
+
+GType model_clip_file_get_type (void) {
+       static volatile gsize model_clip_file_type_id__volatile = 0;
+       if (g_once_init_enter (&model_clip_file_type_id__volatile)) {
+               static const GTypeValueTable g_define_type_value_table = { model_value_clip_file_init, model_value_clip_file_free_value, model_value_clip_file_copy_value, model_value_clip_file_peek_pointer, "p", model_value_clip_file_collect_value, "p", model_value_clip_file_lcopy_value };
+               static const GTypeInfo g_define_type_info = { sizeof (ModelClipFileClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) model_clip_file_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ModelClipFile), 0, (GInstanceInitFunc) model_clip_file_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 model_clip_file_type_id;
+               model_clip_file_type_id = g_type_register_fundamental (g_type_fundamental_next (), "ModelClipFile", &g_define_type_info, &g_define_type_fundamental_info, 0);
+               g_once_init_leave (&model_clip_file_type_id__volatile, model_clip_file_type_id);
+       }
+       return model_clip_file_type_id__volatile;
+}
+
+
+gpointer model_clip_file_ref (gpointer instance) {
+       ModelClipFile* self;
+       self = instance;
+       g_atomic_int_inc (&self->ref_count);
+       return instance;
+}
+
+
+void model_clip_file_unref (gpointer instance) {
+       ModelClipFile* self;
+       self = instance;
+       if (g_atomic_int_dec_and_test (&self->ref_count)) {
+               MODEL_CLIP_FILE_GET_CLASS (self)->finalize (self);
+               g_type_free_instance ((GTypeInstance *) self);
+       }
+}
+
+
+#line 32 "ProjectLoading.vala"
+void valid_document_init (ValidDocument *self, gboolean valid, const char* document) {
+#line 628 "ProjectLoading.c"
+       char* _tmp0_;
+#line 32 "ProjectLoading.vala"
+       g_return_if_fail (document != NULL);
+#line 632 "ProjectLoading.c"
+       memset (self, 0, sizeof (ValidDocument));
+#line 33 "ProjectLoading.vala"
+       (*self).valid = valid;
+#line 34 "ProjectLoading.vala"
+       (*self).document = (_tmp0_ = g_strdup (document), _g_free0 ((*self).document), _tmp0_);
+#line 638 "ProjectLoading.c"
+}
+
+
+void valid_document_copy (const ValidDocument* self, ValidDocument* dest) {
+       dest->valid = self->valid;
+       dest->document = g_strdup (self->document);
+}
+
+
+void valid_document_destroy (ValidDocument* self) {
+       _g_free0 (self->document);
+}
+
+
+ValidDocument* valid_document_dup (const ValidDocument* self) {
+       ValidDocument* dup;
+       dup = g_new0 (ValidDocument, 1);
+       valid_document_copy (self, dup);
+       return dup;
+}
+
+
+void valid_document_free (ValidDocument* self) {
+       valid_document_destroy (self);
+       g_free (self);
+}
+
+
+GType valid_document_get_type (void) {
+       static volatile gsize valid_document_type_id__volatile = 0;
+       if (g_once_init_enter (&valid_document_type_id__volatile)) {
+               GType valid_document_type_id;
+               valid_document_type_id = g_boxed_type_register_static ("ValidDocument", (GBoxedCopyFunc) valid_document_dup, (GBoxedFreeFunc) valid_document_free);
+               g_once_init_leave (&valid_document_type_id__volatile, valid_document_type_id);
+       }
+       return valid_document_type_id__volatile;
+}
+
+
+static gpointer _model_xml_element_ref0 (gpointer self) {
+       return self ? model_xml_element_ref (self) : NULL;
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+       return self ? g_object_ref (self) : NULL;
+}
+
+
+void state_change_fixture_copy (const StateChangeFixture* self, StateChangeFixture* dest) {
+       dest->root = _model_xml_element_ref0 (self->root);
+       dest->project_builder = _g_object_ref0 (self->project_builder);
+       dest->valid = self->valid;
+}
+
+
+void state_change_fixture_destroy (StateChangeFixture* self) {
+       _model_xml_element_unref0 (self->root);
+       _g_object_unref0 (self->project_builder);
+}
+
+
+StateChangeFixture* state_change_fixture_dup (const StateChangeFixture* self) {
+       StateChangeFixture* dup;
+       dup = g_new0 (StateChangeFixture, 1);
+       state_change_fixture_copy (self, dup);
+       return dup;
+}
+
+
+void state_change_fixture_free (StateChangeFixture* self) {
+       state_change_fixture_destroy (self);
+       g_free (self);
+}
+
+
+GType state_change_fixture_get_type (void) {
+       static volatile gsize state_change_fixture_type_id__volatile = 0;
+       if (g_once_init_enter (&state_change_fixture_type_id__volatile)) {
+               GType state_change_fixture_type_id;
+               state_change_fixture_type_id = g_boxed_type_register_static ("StateChangeFixture", (GBoxedCopyFunc) state_change_fixture_dup, (GBoxedFreeFunc) state_change_fixture_free);
+               g_once_init_leave (&state_change_fixture_type_id__volatile, state_change_fixture_type_id);
+       }
+       return state_change_fixture_type_id__volatile;
+}
+
+
+#line 49 "ProjectLoading.vala"
+void state_change_fixture_buildup (void* fixture) {
+#line 728 "ProjectLoading.c"
+       StateChangeFixture* state_change_fixture;
+       ModelXmlTreeLoader* tree_loader;
+       ModelXmlElement* _tmp0_;
+       ModelProjectBuilder* _tmp2_;
+       ModelLoaderHandler* _tmp1_;
+#line 50 "ProjectLoading.vala"
+       state_change_fixture = (StateChangeFixture*) fixture;
+#line 51 "ProjectLoading.vala"
+       tree_loader = model_xml_tree_loader_new (project_documents[current_document].document);
+#line 52 "ProjectLoading.vala"
+       (*state_change_fixture).root = (_tmp0_ = _model_xml_element_ref0 (tree_loader->root), _model_xml_element_unref0 ((*state_change_fixture).root), _tmp0_);
+#line 53 "ProjectLoading.vala"
+       (*state_change_fixture).project_builder = (_tmp2_ = model_project_builder_new (_tmp1_ = model_loader_handler_new ()), _g_object_unref0 ((*state_change_fixture).project_builder), _tmp2_);
+#line 742 "ProjectLoading.c"
+       _g_object_unref0 (_tmp1_);
+#line 54 "ProjectLoading.vala"
+       (*state_change_fixture).valid = project_documents[current_document].valid;
+#line 55 "ProjectLoading.vala"
+       current_document = current_document + 1;
+#line 748 "ProjectLoading.c"
+       _model_xml_tree_loader_unref0 (tree_loader);
+}
+
+
+#line 58 "ProjectLoading.vala"
+void state_change_fixture_teardown (void* fixture) {
+#line 755 "ProjectLoading.c"
+       StateChangeFixture* state_change_fixture;
+       ModelXmlElement* _tmp0_;
+       ModelProjectBuilder* _tmp1_;
+#line 59 "ProjectLoading.vala"
+       state_change_fixture = (StateChangeFixture*) fixture;
+#line 60 "ProjectLoading.vala"
+       (*state_change_fixture).root = (_tmp0_ = NULL, _model_xml_element_unref0 ((*state_change_fixture).root), _tmp0_);
+#line 61 "ProjectLoading.vala"
+       (*state_change_fixture).project_builder = (_tmp1_ = NULL, _g_object_unref0 ((*state_change_fixture).project_builder), _tmp1_);
+#line 765 "ProjectLoading.c"
+}
+
+
+#line 66 "ProjectLoading.vala"
+void on_error_occurred (const char* message) {
+#line 67 "ProjectLoading.vala"
+       g_test_message ("received error: %s", message);
+#line 68 "ProjectLoading.vala"
+       document_valid = FALSE;
+#line 775 "ProjectLoading.c"
+}
+
+
+#line 66 "ProjectLoading.vala"
+static void _on_error_occurred_model_project_builder_error_occurred (ModelProjectBuilder* _sender, const char* _error_, gpointer self) {
+#line 781 "ProjectLoading.c"
+       on_error_occurred (_error_);
+}
+
+
+#line 73 "ProjectLoading.vala"
+void check_document (void* fixture) {
+#line 788 "ProjectLoading.c"
+       StateChangeFixture* state_change_fixture;
+       const char* _tmp0_;
+       ModelXmlElement* root;
+       ModelProjectBuilder* project_builder;
+#line 74 "ProjectLoading.vala"
+       state_change_fixture = (StateChangeFixture*) fixture;
+#line 795 "ProjectLoading.c"
+       _tmp0_ = NULL;
+#line 77 "ProjectLoading.vala"
+       if ((*state_change_fixture).valid) {
+#line 77 "ProjectLoading.vala"
+               _tmp0_ = "valid";
+#line 801 "ProjectLoading.c"
+       } else {
+#line 77 "ProjectLoading.vala"
+               _tmp0_ = "invalid";
+#line 805 "ProjectLoading.c"
+       }
+#line 76 "ProjectLoading.vala"
+       g_test_message ("checking document expecting to be %s", _tmp0_);
+#line 79 "ProjectLoading.vala"
+       root = _model_xml_element_ref0 ((*state_change_fixture).root);
+#line 80 "ProjectLoading.vala"
+       project_builder = _g_object_ref0 ((*state_change_fixture).project_builder);
+#line 82 "ProjectLoading.vala"
+       document_valid = TRUE;
+#line 83 "ProjectLoading.vala"
+       g_signal_connect (project_builder, "error-occurred", (GCallback) _on_error_occurred_model_project_builder_error_occurred, NULL);
+#line 87 "ProjectLoading.vala"
+       if (model_project_builder_check_project (project_builder, root)) {
+#line 88 "ProjectLoading.vala"
+               model_project_builder_build_project (project_builder, root);
+#line 821 "ProjectLoading.c"
+       }
+#line 89 "ProjectLoading.vala"
+       g_assert (document_valid == (*state_change_fixture).valid);
+#line 90 "ProjectLoading.vala"
+       g_test_message ("finished executing check document");
+#line 827 "ProjectLoading.c"
+       _model_xml_element_unref0 (root);
+       _g_object_unref0 (project_builder);
+}
+
+
+static void _vala_ValidDocument_array_free (ValidDocument* array, gint array_length) {
+       if (array != NULL) {
+               int i;
+               for (i = 0; i < array_length; i = i + 1) {
+                       valid_document_destroy (&array[i]);
+               }
+       }
+       g_free (array);
+}
+
+
+#line 49 "ProjectLoading.vala"
+static void _state_change_fixture_buildup_gtest_func (void* fixture, gpointer self) {
+#line 846 "ProjectLoading.c"
+       state_change_fixture_buildup (fixture);
+}
+
+
+#line 73 "ProjectLoading.vala"
+static void _check_document_gtest_func (void* fixture, gpointer self) {
+#line 853 "ProjectLoading.c"
+       check_document (fixture);
+}
+
+
+#line 58 "ProjectLoading.vala"
+static void _state_change_fixture_teardown_gtest_func (void* fixture, gpointer self) {
+#line 860 "ProjectLoading.c"
+       state_change_fixture_teardown (fixture);
+}
+
+
+#line 95 "ProjectLoading.vala"
+ProjectLoaderSuite* project_loader_suite_new (void) {
+#line 867 "ProjectLoading.c"
+       ProjectLoaderSuite* self;
+       ValidDocument* _tmp37_;
+       ValidDocument* _tmp36_ = NULL;
+       ValidDocument _tmp0_ = {0};
+       ValidDocument _tmp1_ = {0};
+       ValidDocument _tmp2_ = {0};
+       ValidDocument _tmp3_ = {0};
+       ValidDocument _tmp4_ = {0};
+       ValidDocument _tmp5_ = {0};
+       ValidDocument _tmp6_ = {0};
+       ValidDocument _tmp7_ = {0};
+       ValidDocument _tmp8_ = {0};
+       ValidDocument _tmp9_ = {0};
+       ValidDocument _tmp10_ = {0};
+       ValidDocument _tmp11_ = {0};
+       ValidDocument _tmp12_ = {0};
+       ValidDocument _tmp13_ = {0};
+       ValidDocument _tmp14_ = {0};
+       ValidDocument _tmp15_ = {0};
+       ValidDocument _tmp16_ = {0};
+       ValidDocument _tmp17_ = {0};
+       ValidDocument _tmp18_ = {0};
+       ValidDocument _tmp19_ = {0};
+       ValidDocument _tmp20_ = {0};
+       ValidDocument _tmp21_ = {0};
+       ValidDocument _tmp22_ = {0};
+       ValidDocument _tmp23_ = {0};
+       ValidDocument _tmp24_ = {0};
+       ValidDocument _tmp25_ = {0};
+       ValidDocument _tmp26_ = {0};
+       ValidDocument _tmp27_ = {0};
+       ValidDocument _tmp28_ = {0};
+       ValidDocument _tmp29_ = {0};
+       ValidDocument _tmp30_ = {0};
+       ValidDocument _tmp31_ = {0};
+       ValidDocument _tmp32_ = {0};
+       ValidDocument _tmp33_ = {0};
+       ValidDocument _tmp34_ = {0};
+       ValidDocument _tmp35_ = {0};
+       gint length;
+#line 96 "ProjectLoading.vala"
+       self = (ProjectLoaderSuite*) g_test_create_suite ("ProjectLoaderSuite");
+#line 98 "ProjectLoading.vala"
+       current_document = 0;
+#line 99 "ProjectLoading.vala"
+       project_documents = (_tmp37_ = (_tmp36_ = g_new0 (ValidDocument, 36), _tmp36_[0] = (valid_document_init (&_tmp0_, TRUE, "<marina><library></library><tracks><track><clip /><clip /></track>" "<track><clip /></track></tracks><preferences /></marina>"), _tmp0_), _tmp36_[1] = (valid_document_init (&_tmp1_, TRUE, "<marina><library /><tracks /><preferences/>" "<maps><tempo /><time_signature /></marina>"), _tmp1_), _tmp36_[2] = (valid_document_init (&_tmp2_, TRUE, "<marina><library /><tracks /><preferences/><maps><tempo />" "</marina>"), _tmp2_), _tmp36_[3] = (valid_document_init (&_tmp3_, TRUE, "<marina><library /><tracks /><preferences/>" "<maps><time_signature /></marina>"), _tmp3_), _tmp36_[4] = (valid_document_init (&_tmp4_, TRUE, "<marina><library></library><tracks><track /></tracks>" "<preferences/></marina>"), _tmp4_), _tmp36_[5] = (valid_document_init (&_tmp5_, TRUE, "<marina><library></library><tracks><track><clip /></track>" "</tracks><preferences/></marina>"), _tmp5_), _tmp36_[6] = (valid_document_init (&_tmp6_, TRUE, "<marina><library/><tracks/><preferences/>" "<maps><tempo><entry></tempo></maps></marina>"), _tmp6_), _tmp36_[7] = (valid_document_init (&_tmp7_, TRUE, "<marina><library/><tracks/><preferences/>" "<maps><time_signature><entry></time_signature></maps></marina>"), _tmp7_), _tmp36_[8] = (valid_document_init (&_tmp8_, TRUE, "<marina><library/><tracks/><preferences/></marina>"), _tmp8_), _tmp36_[9] = (valid_document_init (&_tmp9_, TRUE, "<marina><library/><tracks/><preferences><click/></preferences>" "</marina>"), _tmp9_), _tmp36_[10] = (valid_document_init (&_tmp10_, TRUE, "<marina><library/><tracks/><preferences><library/>" "</preferences></marina>"), _tmp10_), _tmp36_[11] = (valid_document_init (&_tmp11_, TRUE, "<marina><library/><tracks/><preferences><click/><library/>" "</preferences></marina>"), _tmp11_), _tmp36_[12] = (valid_document_init (&_tmp12_, FALSE, "<marina><tracks></tracks><library></library></marina>"), _tmp12_), _tmp36_[13] = (valid_document_init (&_tmp13_, FALSE, "<marina><library></library><track></track></marina>"), _tmp13_), _tmp36_[14] = (valid_document_init (&_tmp14_, FALSE, "<marina><library><clip /></library><tracks><clipfile />" "</tracks></marina>"), _tmp14_), _tmp36_[15] = (valid_document_init (&_tmp15_, FALSE, "<marina />"), _tmp15_), _tmp36_[16] = (valid_document_init (&_tmp16_, FALSE, "<library />"), _tmp16_), _tmp36_[17] = (valid_document_init (&_tmp17_, FALSE, "<track />"), _tmp17_), _tmp36_[18] = (valid_document_init (&_tmp18_, FALSE, "<clip />"), _tmp18_), _tmp36_[19] = (valid_document_init (&_tmp19_, FALSE, "<entry />"), _tmp19_), _tmp36_[20] = (valid_document_init (&_tmp20_, FALSE, "<tempo />"), _tmp20_), _tmp36_[21] = (valid_document_init (&_tmp21_, FALSE, "<maps />"), _tmp21_), _tmp36_[22] = (valid_document_init (&_tmp22_, FALSE, "<preferences />"), _tmp22_), _tmp36_[23] = (valid_document_init (&_tmp23_, FALSE, "<click />"), _tmp23_), _tmp36_[24] = (valid_document_init (&_tmp24_, FALSE, "<time_signature />"), _tmp24_), _tmp36_[25] = (valid_document_init (&_tmp25_, FALSE, "<marina><clip /></marina>"), _tmp25_), _tmp36_[26] = (valid_document_init (&_tmp26_, FALSE, "<marina><track><clip><track /></clip></track></marina>"), _tmp26_), _tmp36_[27] = (valid_document_init (&_tmp27_, FALSE, "<unknown />"), _tmp27_), _tmp36_[28] = (valid_document_init (&_tmp28_, FALSE, "<marina><foo /></marina>"), _tmp28_), _tmp36_[29] = (valid_document_init (&_tmp29_, FALSE, "<marina><track><foo /></track></track></marina>"), _tmp29_), _tmp36_[30] = (valid_document_init (&_tmp30_, FALSE, "<marina><track><clip><foo /></clip></track></marina>"), _tmp30_), _tmp36_[31] = (valid_document_init (&_tmp31_, FALSE, "<marina><library/><tracks/><maps><foo/></maps></marina>"), _tmp31_), _tmp36_[32] = (valid_document_init (&_tmp32_, FALSE, "<marina><library/><tracks/><maps><time_signature>" "<tempo/></time_signature></marina>"), _tmp32_), _tmp36_[33] = (valid_document_init (&_tmp33_, FALSE, "<marina><library/><tracks/><click/></marina>"), _tmp33_), _tmp36_[34] = (valid_document_init (&_tmp34_, FALSE, "<marina><library/><tracks/><preferences><tracks/>" "</preferences></marina>"), _tmp34_), _tmp36_[35] = (valid_document_init (&_tmp35_, FALSE, "<marina><library/><tracks/><maps/><preferences/></marina>"), _tmp35_), _tmp36_), project_documents = (_vala_ValidDocument_array_free (project_documents, project_documents_length1), NULL), project_documents_length1 = 36, _project_documents_size_ = project_documents_length1, _tmp37_);
+#line 152 "ProjectLoading.vala"
+       length = project_documents_length1;
+#line 916 "ProjectLoading.c"
+       {
+               gint i;
+#line 154 "ProjectLoading.vala"
+               i = 0;
+#line 921 "ProjectLoading.c"
+               {
+                       gboolean _tmp38_;
+#line 154 "ProjectLoading.vala"
+                       _tmp38_ = TRUE;
+#line 154 "ProjectLoading.vala"
+                       while (TRUE) {
+#line 928 "ProjectLoading.c"
+                               gboolean _tmp39_ = FALSE;
+#line 154 "ProjectLoading.vala"
+                               if (!_tmp38_) {
+#line 154 "ProjectLoading.vala"
+                                       i = i + 1;
+#line 934 "ProjectLoading.c"
+                               }
+#line 154 "ProjectLoading.vala"
+                               _tmp38_ = FALSE;
+#line 154 "ProjectLoading.vala"
+                               if (!(i < length)) {
+#line 154 "ProjectLoading.vala"
+                                       break;
+#line 942 "ProjectLoading.c"
+                               }
+#line 155 "ProjectLoading.vala"
+                               if (g_test_thorough ()) {
+#line 155 "ProjectLoading.vala"
+                                       _tmp39_ = TRUE;
+#line 948 "ProjectLoading.c"
+                               } else {
+#line 155 "ProjectLoading.vala"
+                                       _tmp39_ = project_documents[i].valid;
+#line 952 "ProjectLoading.c"
+                               }
+#line 155 "ProjectLoading.vala"
+                               if (_tmp39_) {
+#line 956 "ProjectLoading.c"
+                                       char* _tmp40_;
+#line 156 "ProjectLoading.vala"
+                                       g_test_suite_add ((GTestSuite*) self, g_test_create_case (_tmp40_ = g_strdup_printf ("Document%d", i), (gsize) sizeof (StateChangeFixture), NULL, (void (*) (void)) _state_change_fixture_buildup_gtest_func, (void (*) (void)) _check_document_gtest_func, (void (*) (void)) _state_change_fixture_teardown_gtest_func));
+#line 960 "ProjectLoading.c"
+                                       _g_free0 (_tmp40_);
+                               }
+                       }
+               }
+       }
+       return self;
+}
+
+
+
+static void g_cclosure_user_marshal_VOID__MODEL_CLIP_FETCHER (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
+       typedef void (*GMarshalFunc_VOID__MODEL_CLIP_FETCHER) (gpointer data1, gpointer arg_1, gpointer data2);
+       register GMarshalFunc_VOID__MODEL_CLIP_FETCHER callback;
+       register GCClosure * cc;
+       register gpointer data1, data2;
+       cc = (GCClosure *) closure;
+       g_return_if_fail (n_param_values == 2);
+       if (G_CCLOSURE_SWAP_DATA (closure)) {
+               data1 = closure->data;
+               data2 = param_values->data[0].v_pointer;
+       } else {
+               data1 = param_values->data[0].v_pointer;
+               data2 = closure->data;
+       }
+       callback = (GMarshalFunc_VOID__MODEL_CLIP_FETCHER) (marshal_data ? marshal_data : cc->callback);
+       callback (data1, model_value_get_clip_fetcher (param_values + 1), data2);
+}
+
+
+