1 /* Copyright (c) 2012-2013, The Tor Project, Inc. */
2 /* See LICENSE for licensing information */
4 #define REPLAYCACHE_PRIVATE
8 #include "replaycache.h"
11 static const char *test_buffer
=
12 "Lorem ipsum dolor sit amet, consectetur adipisici elit, sed do eiusmod"
13 " tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim"
14 " veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea"
15 " commodo consequat. Duis aute irure dolor in reprehenderit in voluptate"
16 " velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint"
17 " occaecat cupidatat non proident, sunt in culpa qui officia deserunt"
18 " mollit anim id est laborum.";
21 test_replaycache_alloc(void)
23 replaycache_t
*r
= NULL
;
25 r
= replaycache_new(600, 300);
26 test_assert(r
!= NULL
);
29 if (r
) replaycache_free(r
);
35 test_replaycache_miss(void)
37 replaycache_t
*r
= NULL
;
40 r
= replaycache_new(600, 300);
41 test_assert(r
!= NULL
);
44 replaycache_add_and_test_internal(1200, r
, test_buffer
,
45 (int)strlen(test_buffer
), NULL
);
49 if (r
) replaycache_free(r
);
55 test_replaycache_hit(void)
57 replaycache_t
*r
= NULL
;
60 r
= replaycache_new(600, 300);
61 test_assert(r
!= NULL
);
64 replaycache_add_and_test_internal(1200, r
, test_buffer
,
65 (int)strlen(test_buffer
), NULL
);
69 replaycache_add_and_test_internal(1300, r
, test_buffer
,
70 (int)strlen(test_buffer
), NULL
);
74 if (r
) replaycache_free(r
);
80 test_replaycache_age(void)
82 replaycache_t
*r
= NULL
;
85 r
= replaycache_new(600, 300);
86 test_assert(r
!= NULL
);
89 replaycache_add_and_test_internal(1200, r
, test_buffer
,
90 (int)strlen(test_buffer
), NULL
);
94 replaycache_add_and_test_internal(1300, r
, test_buffer
,
95 (int)strlen(test_buffer
), NULL
);
99 replaycache_add_and_test_internal(3000, r
, test_buffer
,
100 (int)strlen(test_buffer
), NULL
);
104 if (r
) replaycache_free(r
);
110 test_replaycache_elapsed(void)
112 replaycache_t
*r
= NULL
;
116 r
= replaycache_new(600, 300);
117 test_assert(r
!= NULL
);
120 replaycache_add_and_test_internal(1200, r
, test_buffer
,
121 (int)strlen(test_buffer
), NULL
);
125 replaycache_add_and_test_internal(1300, r
, test_buffer
,
126 (int)strlen(test_buffer
), &elapsed
);
128 test_eq(elapsed
, 100);
131 if (r
) replaycache_free(r
);
137 test_replaycache_noexpire(void)
139 replaycache_t
*r
= NULL
;
142 r
= replaycache_new(0, 0);
143 test_assert(r
!= NULL
);
146 replaycache_add_and_test_internal(1200, r
, test_buffer
,
147 (int)strlen(test_buffer
), NULL
);
151 replaycache_add_and_test_internal(1300, r
, test_buffer
,
152 (int)strlen(test_buffer
), NULL
);
156 replaycache_add_and_test_internal(3000, r
, test_buffer
,
157 (int)strlen(test_buffer
), NULL
);
161 if (r
) replaycache_free(r
);
166 #define REPLAYCACHE_LEGACY(name) \
167 { #name, legacy_test_helper, 0, &legacy_setup, test_replaycache_ ## name }
169 struct testcase_t replaycache_tests
[] = {
170 REPLAYCACHE_LEGACY(alloc
),
171 REPLAYCACHE_LEGACY(miss
),
172 REPLAYCACHE_LEGACY(hit
),
173 REPLAYCACHE_LEGACY(age
),
174 REPLAYCACHE_LEGACY(elapsed
),
175 REPLAYCACHE_LEGACY(noexpire
),