示例#1
0
static void
run_performance_tests (xmmsv_t *databases, xmmsv_t *testcases, gint format)
{
	xmmsv_list_iter_t *it;

	xmmsv_get_list_iter (databases, &it);
	while (xmmsv_list_iter_valid (it)) {
		xmms_medialib_t *medialib;
		const gchar *filename;

		xmmsv_list_iter_entry_string (it, &filename);

		if (format == FORMAT_PRETTY)
			g_print ("Running suite with: %s\n", filename);

		xmms_ipc_init ();
		xmms_config_init ("memory://");
		xmms_config_property_register ("medialib.path", filename, NULL, NULL);

		medialib = xmms_medialib_init ();
		if (medialib == NULL) {
			g_print ("Could not open database: %s (%d)\n", filename, s4_errno ());
			exit (EXIT_FAILURE);
		}

		run_tests (medialib, testcases, run_performance_test, format, filename);

		xmms_object_unref (medialib);
		xmms_config_shutdown ();
		xmms_ipc_shutdown ();

		xmmsv_list_iter_next (it);
	}
}
示例#2
0
static s4_t *
xmms_medialib_database_open (const gchar *database_name,
                             const gchar *indices[])
{
	gint flags = 0;
	s4_t *s4;

	g_return_val_if_fail (database_name, NULL);

	if (strcmp (database_name, "memory://") == 0) {
		flags = S4_MEMORY;
	}

	s4 = s4_open (database_name, indices, flags);
	if (s4 != NULL) {
		return s4;
	}

	if (s4_errno () != S4E_MAGIC) {
		/* The database was a S4 database, but still couldn't be opened. */
		xmms_log_fatal ("Could not open the S4 database");
	}

	/* Seems like we've found a SQLite database, lets convert it. */
	return xmms_medialib_database_convert (database_name, indices);
}
示例#3
0
static void _dead_thread_two (void)
{
	s4_transaction_t *trans = s4_begin (s4, 0);

	CU_ASSERT_PTR_NOT_NULL (trans);
	g_usleep (G_USEC_PER_SEC / 2);
	CU_ASSERT_TRUE (s4_add (trans, "b", val, "a", val, "src"));
	g_usleep (G_USEC_PER_SEC);
	CU_ASSERT_FALSE (s4_add (trans, "a", val, "b", val, "src"));

	CU_ASSERT_FALSE (s4_commit (trans));
	CU_ASSERT_EQUAL (s4_errno (), S4E_DEADLOCK);
}