5 #include "rb-file-helpers.h"
9 #include "rhythmdb-tree.h"
12 gboolean waiting
, signaled
;
20 rb_debug ("got signal '%s' multiple times", sig_name
);
22 rb_debug ("got signal '%s'", sig_name
);
30 set_waiting_signal (GObject
*o
, const char *name
)
34 sig_name
= g_strdup (name
);
35 g_signal_connect (o
, sig_name
, G_CALLBACK (mark_signal
), NULL
);
38 static void wait_for_signal (void)
41 rb_debug ("waiting for signal '%s'", sig_name
);
45 rb_debug ("no need to wait for signal '%s', already received", sig_name
);
54 main (int argc
, char **argv
)
61 g_print ("using ~/.gnome2/rhythmbox/rhythmdb.xml\n");
62 name
= g_strdup_printf ("%s/rhythmdb.xml", rb_dot_dir ());
64 name
= g_strdup (argv
[1]);
67 rb_profile_start ("load test");
72 gtk_init (&argc
, &argv
);
74 rb_debug_init (FALSE
);
75 rb_refstring_system_init ();
76 rb_file_helpers_init ();
80 db
= rhythmdb_tree_new ("test");
81 g_object_set (G_OBJECT (db
), "name", name
, NULL
);
84 for (i
= 1; i
<= 10; i
++) {
86 rb_profile_start ("10 rhythmdb loads");
87 for (j
= 1; j
<= 10; j
++) {
88 set_waiting_signal (G_OBJECT (db
), "load-complete");
92 rhythmdb_entry_delete_by_type (db
, RHYTHMDB_ENTRY_TYPE_SONG
);
93 rhythmdb_entry_delete_by_type (db
, rhythmdb_entry_type_get_by_name (db
, "iradio"));
94 rhythmdb_entry_delete_by_type (db
, RHYTHMDB_ENTRY_TYPE_PODCAST_FEED
);
95 rhythmdb_entry_delete_by_type (db
, RHYTHMDB_ENTRY_TYPE_PODCAST_POST
);
97 rb_profile_end ("10 rhythmdb loads");
98 g_print ("completed %d loads\n", i
* 10);
101 rhythmdb_shutdown (db
);
102 g_object_unref (G_OBJECT (db
));
106 rb_file_helpers_shutdown ();
107 rb_refstring_system_shutdown ();
108 gnome_vfs_shutdown ();
111 rb_profile_end ("load test");