~ubuntu-branches/ubuntu/trusty/geis/trusty

« back to all changes in this revision

Viewing changes to testsuite/libgeis/check_filter.c

  • Committer: Package Import Robot
  • Author(s): Chase Douglas
  • Date: 2012-07-30 08:51:42 UTC
  • Revision ID: package-import@ubuntu.com-20120730085142-jrc33ygjvt0ob1wl
Tags: upstream-2.2.11
ImportĀ upstreamĀ versionĀ 2.2.11

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/**
 
2
 * unit tests for the geis filter module
 
3
 */
 
4
#include <check.h>
 
5
 
 
6
#include "geis_filter.h"
 
7
#include "geis_test_api.h"
 
8
#include <stdio.h>
 
9
 
 
10
 
 
11
/* fixtures */
 
12
static Geis          g_geis;
 
13
static GeisFilterBag g_filter_bag;
 
14
static GeisString    g_filter_name = "filter";
 
15
 
 
16
/* fixture setup */
 
17
static void
 
18
construct_bag()
 
19
{
 
20
  g_geis = geis_new(GEIS_INIT_MOCK_BACKEND, NULL);
 
21
  g_filter_bag = geis_filter_bag_new();
 
22
}
 
23
 
 
24
/* fixture teardown */
 
25
static void
 
26
destroy_bag()
 
27
{
 
28
  geis_filter_bag_delete(g_filter_bag);
 
29
  geis_delete(g_geis);
 
30
}
 
31
 
 
32
/* verify bag construction/destruction */
 
33
START_TEST(construct)
 
34
{
 
35
  GeisFilterBag bag = geis_filter_bag_new();
 
36
  fail_unless(bag != NULL, "failed to create filter bag");
 
37
  geis_filter_bag_delete(bag);
 
38
}
 
39
END_TEST
 
40
 
 
41
/* verify bag insertion */
 
42
START_TEST(insert_filter)
 
43
{
 
44
  GeisFilter filter = geis_filter_new(g_geis, g_filter_name);
 
45
  geis_filter_bag_insert(g_filter_bag, filter);
 
46
  fail_unless(geis_filter_bag_count(g_filter_bag) == 1,
 
47
              "unexpected bag size after insertion");
 
48
}
 
49
END_TEST
 
50
 
 
51
/* verify bag removal */
 
52
START_TEST(remove_filter)
 
53
{
 
54
  GeisFilter filter = geis_filter_new(g_geis, g_filter_name);
 
55
  geis_filter_bag_insert(g_filter_bag, filter);
 
56
  fail_unless(geis_filter_bag_count(g_filter_bag) == 1,
 
57
              "unexpected bag size after insertion");
 
58
  geis_filter_bag_remove(g_filter_bag, filter);
 
59
  fail_unless(geis_filter_bag_count(g_filter_bag) == 0,
 
60
              "unexpected bag size after removal");
 
61
}
 
62
END_TEST
 
63
 
 
64
START_TEST(expand)
 
65
{
 
66
  GeisSize i;
 
67
  for (i = 0; i < 24; ++i)
 
68
  {
 
69
    GeisSize count;
 
70
    char name[32];
 
71
    sprintf(name, "%04zu", i);
 
72
    GeisFilter filter = geis_filter_new(g_geis, name);
 
73
    geis_filter_bag_insert(g_filter_bag, filter);
 
74
    count = geis_filter_bag_count(g_filter_bag);
 
75
    fail_unless(count == (i+1),
 
76
                "unexpected bag size %ld after insertion, expected %d",
 
77
                count, i+1);
 
78
  }
 
79
}
 
80
END_TEST
 
81
 
 
82
 
 
83
 
 
84
/* boilerplate */
 
85
Suite *
 
86
make_filter_suite()
 
87
{
 
88
  Suite *s = suite_create("geis2-filter");
 
89
 
 
90
  TCase *create = tcase_create("filter-bag-creation");
 
91
  tcase_add_test(create, construct);
 
92
  suite_add_tcase(s, create);
 
93
 
 
94
  TCase *usage = tcase_create("filter-bag-usage");
 
95
  tcase_add_checked_fixture(usage, construct_bag, destroy_bag);
 
96
  tcase_add_test(usage, insert_filter);
 
97
  tcase_add_test(usage, remove_filter);
 
98
  tcase_add_test(usage, expand);
 
99
  suite_add_tcase(s, usage);
 
100
 
 
101
  return s;
 
102
}
 
103