Beispiel #1
0
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);
}
Beispiel #2
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);
}
Beispiel #3
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);
}