Skip to content

Commit 70b75bd

Browse files
authored
Expire the search cache (#234)
* Expire the search cache * Expire the search cache
1 parent 3dde62d commit 70b75bd

File tree

2 files changed

+23
-3
lines changed

2 files changed

+23
-3
lines changed

src/common/clib-cache.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,9 @@ int clib_cache_delete_json(char *author, char *name, char *version) {
132132
return unlink(json_cache);
133133
}
134134

135-
int clib_cache_has_search(void) { return 0 == fs_exists(search_cache); }
135+
int clib_cache_has_search(void) {
136+
return 0 == fs_exists(search_cache) && !is_expired(search_cache);
137+
}
136138

137139
char *clib_cache_read_search(void) {
138140
if (!clib_cache_has_search()) {

test/cache/cache-test.c

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
#include <limits.h>
66
#include <stdlib.h>
77
#include <string.h>
8+
#include <unistd.h>
89

910
#define assert_exists(f) assert_equal(0, fs_exists(f));
1011

@@ -36,11 +37,15 @@ int main() {
3637
char *version = "1.2.0";
3738
char pkg_dir[BUFSIZ];
3839

39-
it("should initialize succesfully") { assert_equal(0, clib_cache_init(1)); }
40+
int expiraton = 1;
41+
42+
it("should initialize succesfully") {
43+
assert_equal(0, clib_cache_init(expiraton));
44+
}
4045

4146
sprintf(pkg_dir, "%s/author_pkg_1.2.0", clib_cache_dir());
4247

43-
it("should manage package the cache") {
48+
it("should manage the package cache") {
4449
assert_equal(
4550
0, clib_cache_save_package(author, name, version, "../../deps/copy"));
4651
assert_equal(1, clib_cache_has_package(author, name, version));
@@ -85,6 +90,19 @@ int main() {
8590
assert_equal(0, clib_cache_has_search());
8691
assert_null(clib_cache_read_search());
8792
}
93+
94+
it("should expire the search cache") {
95+
clib_cache_delete_search();
96+
97+
assert_equal(13, clib_cache_save_search("<html></html>"));
98+
assert_equal(1, clib_cache_has_search());
99+
100+
sleep(expiraton + 1);
101+
102+
assert_equal(0, clib_cache_has_search());
103+
}
104+
105+
clib_cache_delete_search();
88106
}
89107

90108
return assert_failures();

0 commit comments

Comments
 (0)