END_TEST START_TEST(test_mgr_clear) { bloom_config config; int res = config_from_filename(NULL, &config); fail_unless(res == 0); bloom_filtmgr *mgr; res = init_filter_manager(&config, &mgr); fail_unless(res == 0); res = filtmgr_create_filter(mgr, "dub2", NULL); fail_unless(res == 0); res = filtmgr_unmap_filter(mgr, "dub2"); fail_unless(res == 0); // Should be not proxied still res = filtmgr_clear_filter(mgr, "dub2"); fail_unless(res == 0); // Force a vacuum filtmgr_vacuum(mgr); res = filtmgr_create_filter(mgr, "dub2", NULL); fail_unless(res == 0); res = filtmgr_drop_filter(mgr, "dub2"); fail_unless(res == 0); res = destroy_filter_manager(mgr); fail_unless(res == 0); }
END_TEST START_TEST(test_mgr_clear_reload) { bloom_config config; int res = config_from_filename(NULL, &config); fail_unless(res == 0); bloom_filtmgr *mgr; res = init_filter_manager(&config, &mgr); fail_unless(res == 0); res = filtmgr_create_filter(mgr, "zab9", NULL); fail_unless(res == 0); // Try to add keys now char *keys[] = {"hey","there","person"}; char result[] = {0, 0, 0}; res = filtmgr_set_keys(mgr, "zab9", (char**)&keys, 3, (char*)&result); fail_unless(res == 0); fail_unless(result[0]); fail_unless(result[1]); fail_unless(result[2]); res = filtmgr_unmap_filter(mgr, "zab9"); fail_unless(res == 0); // F*****G annoying umask permissions bullshit // Cused by the Check test framework fail_unless(chmod("/tmp/bloomd/bloomd.zab9/config.ini", 0777) == 0); fail_unless(chmod("/tmp/bloomd/bloomd.zab9/data.000.mmap", 0777) == 0); res = filtmgr_clear_filter(mgr, "zab9"); fail_unless(res == 0); // Force a vacuum filtmgr_vacuum(mgr); // This should rediscover res = filtmgr_create_filter(mgr, "zab9", NULL); fail_unless(res == 0); // Try to check keys now res = filtmgr_check_keys(mgr, "zab9", (char**)&keys, 3, (char*)&result); fail_unless(res == 0); fail_unless(result[0]); fail_unless(result[1]); fail_unless(result[2]); res = filtmgr_drop_filter(mgr, "zab9"); fail_unless(res == 0); res = destroy_filter_manager(mgr); fail_unless(res == 0); }
END_TEST START_TEST(test_mgr_list_cold) { bloom_config config; int res = config_from_filename(NULL, &config); fail_unless(res == 0); bloom_filtmgr *mgr; res = init_filter_manager(&config, 0, &mgr); fail_unless(res == 0); res = filtmgr_create_filter(mgr, "zab6", NULL); fail_unless(res == 0); res = filtmgr_create_filter(mgr, "zab7", NULL); fail_unless(res == 0); // Force a vacuum so that list_cold_filters sees them filtmgr_vacuum(mgr); bloom_filter_list_head *head; res = filtmgr_list_cold_filters(mgr, &head); fail_unless(res == 0); fail_unless(head->size == 0); // Check the keys in one, so that it stays hot char *keys[] = {"hey","there","person"}; char result[] = {0, 0, 0}; res = filtmgr_set_keys(mgr, "zab6", (char**)&keys, 3, (char*)&result); fail_unless(res == 0); fail_unless(result[0]); fail_unless(result[1]); fail_unless(result[2]); // Check cold again res = filtmgr_list_cold_filters(mgr, &head); fail_unless(res == 0); fail_unless(head->size == 1); int has_zab6 = 0; int has_zab7 = 0; bloom_filter_list *node = head->head; while (node) { if (strcmp(node->filter_name, "zab6") == 0) has_zab6 = 1; else if (strcmp(node->filter_name, "zab7") == 0) has_zab7 = 1; node = node->next; } fail_unless(!has_zab6); fail_unless(has_zab7); res = filtmgr_drop_filter(mgr, "zab6"); fail_unless(res == 0); res = filtmgr_drop_filter(mgr, "zab7"); fail_unless(res == 0); filtmgr_cleanup_list(head); res = destroy_filter_manager(mgr); fail_unless(res == 0); }