END_TEST //-------------------- /* Write artist|album|title, select only artist|title */ START_TEST (test_intelligent_lookup) { GlyrDatabase * db = setup_db(); GlyrQuery alt; glyr_query_init (&alt); gchar * artist = "Аркона"; gchar * album = "Ot Serdca k Nebu"; gchar * title = "Pokrovy Nebesnogo Startsa (Shrouds Of Celestial Sage)"; glyr_opt_artist (&alt,artist); glyr_opt_album (&alt,album ); glyr_opt_title (&alt,title ); glyr_opt_type (&alt,GLYR_GET_LYRICS); GlyrMemCache * subject = glyr_cache_new(); glyr_cache_set_data (subject,g_strdup ("These are lyrics. Really."),-1); glyr_db_insert (db,&alt,subject); GlyrMemCache * one = glyr_db_lookup (db,&alt); fail_if (one == NULL,NULL); fail_if (memcmp (one->md5sum,subject->md5sum,16) != 0, NULL); glyr_cache_free (one); alt.album = NULL; GlyrMemCache * two = glyr_db_lookup (db,&alt); fail_if (two == NULL,NULL); fail_if (memcmp (two->md5sum,subject->md5sum,16) != 0, NULL); glyr_cache_free (two); fail_unless (count_db_items (db) == 1,NULL); int deleted = glyr_db_delete (db,&alt); fail_unless (deleted == 1,NULL); fail_unless (count_db_items (db) == 0,NULL); glyr_query_destroy (&alt); glyr_db_destroy (db); }
static int foreach_callback(GlyrQuery *q, GlyrMemCache *item, void *userptr) { GlyrDatabase *db = (GlyrDatabase *) userptr; g_assert(item); g_assert(db); if(item->rating == -1) { g_printerr("----------------\n"); glyr_cache_print(item); if(do_delete) { glyr_db_delete(db, q); } } return 0; }