5 #include "test-utils.h"
7 #include "rhythmdb-tree.h"
12 start_test_case (void)
14 fprintf (stderr
, "\n>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n");
20 while (gtk_events_pending ())
21 gtk_main_iteration_do (FALSE
);
22 fprintf (stderr
, "----------------------------------------------------------------\n");
28 fprintf (stderr
, "<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n");
31 gboolean waiting
, signaled
;
39 g_signal_handler_disconnect (sig_object
, sig_handler
);
44 rb_debug ("got signal '%s' multiple times", sig_name
);
46 rb_debug ("got signal '%s'", sig_name
);
54 set_waiting_signal (GObject
*o
, const char *name
)
58 sig_name
= g_strdup (name
);
60 sig_handler
= g_signal_connect (o
, sig_name
, G_CALLBACK (mark_signal
), NULL
);
64 wait_for_signal (void)
67 rb_debug ("waiting for signal '%s'", sig_name
);
71 rb_debug ("no need to wait for signal '%s', already received", sig_name
);
79 /* common setup and teardown */
81 gboolean waiting_db
, finalised_db
;
84 test_rhythmdb_setup (void)
86 RhythmDBEntryType entry_type
;
87 db
= rhythmdb_tree_new ("test");
88 fail_unless (db
!= NULL
, "failed to initialise DB");
89 rhythmdb_start_action_thread (db
);
91 /* allow SONGs to be synced to for the tests */
92 entry_type
= RHYTHMDB_ENTRY_TYPE_SONG
;
93 entry_type
->can_sync_metadata
= (RhythmDBEntryCanSyncFunc
)rb_true_function
;
94 entry_type
->sync_metadata
= (RhythmDBEntrySyncFunc
)rb_null_function
;
98 test_rhythmdb_shutdown (void)
100 fail_unless (db
!= NULL
, "failed to shutdown DB");
101 rhythmdb_shutdown (db
);
103 /* release the reference, and wait until after finalisation */
104 g_object_weak_ref (G_OBJECT (db
), (GWeakNotify
)gtk_main_quit
, NULL
);
105 g_idle_add ((GSourceFunc
)g_object_unref
, db
);
111 set_entry_string (RhythmDB
*db
, RhythmDBEntry
*entry
, RhythmDBPropType prop
, const char *value
)
115 g_value_init (&v
, G_TYPE_STRING
);
116 g_value_set_string (&v
, value
);
117 rhythmdb_entry_set (db
, entry
, prop
, &v
);
122 set_entry_ulong (RhythmDB
*db
, RhythmDBEntry
*entry
, RhythmDBPropType prop
, gulong value
)
126 g_value_init (&v
, G_TYPE_ULONG
);
127 g_value_set_ulong (&v
, value
);
128 rhythmdb_entry_set (db
, entry
, prop
, &v
);
133 set_entry_hidden (RhythmDB
*db
, RhythmDBEntry
*entry
, gboolean hidden
)
137 g_value_init (&v
, G_TYPE_BOOLEAN
);
138 g_value_set_boolean (&v
, hidden
);
139 rhythmdb_entry_set (db
, entry
, RHYTHMDB_PROP_HIDDEN
, &v
);