summaryrefslogtreecommitdiff
path: root/src/libdisfluid/disfluid-tests.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/libdisfluid/disfluid-tests.h')
-rw-r--r--src/libdisfluid/disfluid-tests.h116
1 files changed, 42 insertions, 74 deletions
diff --git a/src/libdisfluid/disfluid-tests.h b/src/libdisfluid/disfluid-tests.h
index 8295572..0843404 100644
--- a/src/libdisfluid/disfluid-tests.h
+++ b/src/libdisfluid/disfluid-tests.h
@@ -88,46 +88,6 @@ END_TEST
/* *INDENT-ON* */
/* *INDENT-OFF* */
-START_TEST (test_read_invalid_magic_number)
-/* *INDENT-ON* */
-
-{
- char *database;
- prepare_database (&database);
- string_desc_t file_id = { 0 };
- string_desc_t lit_id = { 0 };
- char data[16 + 12 + 12 + 32 + 32 + 32 + 1] = { 0 };
- memcpy (data, "invalid magic no", 16);
- const string_desc_t file_data = {._nbytes = sizeof (data),._data = data };
- static const char *lit_data = "hello :)";
- const string_desc_t lit = {._nbytes = strlen (lit_data),._data =
- (char *) lit_data
- };
- ck_assert_int_eq (db_write (database, &lit_id, &lit), 0);
- memcpy (data + 16 + 12 + 12, lit_id._data, lit_id._nbytes);
- memcpy (data + 16 + 12 + 12 + 32, lit_id._data, lit_id._nbytes);
- memcpy (data + 16 + 12 + 12 + 32 + 32, lit_id._data, lit_id._nbytes);
- FREE (lit_id._data);
- ck_assert_int_eq (db_write (database, &file_id, &file_data), 0);
- struct timespec request_date, response_date;
- bool invalidated;
- string_desc_t key_id = { 0 }, response_header_id = { 0 }, response_body_id =
- { 0 };
- ck_assert_int_lt (db_read_cache_entry
- (database, &file_id, &request_date, &response_date,
- &invalidated, &key_id, &response_header_id,
- &response_body_id), 0);
- FREE (key_id._data);
- FREE (response_header_id._data);
- FREE (response_body_id._data);
- FREE (file_id._data);
- cleanup_database (&database);
-}
-/* *INDENT-OFF* */
-END_TEST
-/* *INDENT-ON* */
-
-/* *INDENT-OFF* */
START_TEST (test_read_normal)
/* *INDENT-ON* */
@@ -145,48 +105,57 @@ START_TEST (test_read_normal)
const string_desc_t body = {._nbytes = strlen (body_value),._data =
(char *) body_value
};
- string_desc_t key_id = { 0 };
- string_desc_t header_id = { 0 };
- string_desc_t body_id = { 0 };
- string_desc_t entry_id = { 0 };
const struct timespec request_date = {.tv_sec = 12345,.tv_nsec = 678910 };
const struct timespec response_date = {.tv_sec = 111213,.tv_nsec = 141516 };
- char *database;
- prepare_database (&database);
- ck_assert_int_eq (db_write (database, &key_id, &key), 0);
- ck_assert_int_eq (db_write (database, &header_id, &header), 0);
- ck_assert_int_eq (db_write (database, &body_id, &body), 0);
- ck_assert_int_eq (db_write_cache_entry
- (database, &entry_id, &request_date, &response_date, true,
- &key_id, &header_id, &body_id), 0);
- string_desc_t check_key_id = { 0 };
- string_desc_t check_header_id = { 0 };
- string_desc_t check_body_id = { 0 };
+ char filename[] = "/tmp/test-ao-cache-entry-XXXXXX";
+ int file = mkstemp (filename);
+ ck_assert_int_ge (file, 0);
+ static const char *magic_data = "disfluid c.entry";
+ const string_desc_t file_magic = {
+ ._data = (char *) magic_data,
+ ._nbytes = strlen (magic_data)
+ };
+ int error = 0;
+ size_t top;
+ error = ao_file_prepare (file, file_magic);
+ error = ao_file_lock_for_writing (file, &top);
+ ck_assert_int_eq (error, 0);
+ error =
+ ao_cache_entry_push (file, &top, &request_date, &response_date, true, key,
+ header, body);
+ ck_assert_int_eq (error, 0);
+ error = ao_file_commit_transaction (file);
+ ck_assert_int_eq (error, 0);
+ string_desc_t check_key = { 0 };
+ string_desc_t check_header = { 0 };
+ string_desc_t check_body = { 0 };
struct timespec check_request_date, check_response_date;
bool check_invalidated;
- ck_assert_int_eq (db_read_cache_entry
- (database, &entry_id, &check_request_date,
- &check_response_date, &check_invalidated, &check_key_id,
- &check_header_id, &check_body_id), 0);
+ error =
+ ao_cache_entry_read (file, top, &check_request_date, &check_response_date,
+ &check_invalidated, true, true, true, &check_key,
+ &check_header, &check_body);
+ ck_assert_int_eq (error, 0);
ck_assert_int_eq (check_request_date.tv_sec, 12345);
ck_assert_int_eq (check_request_date.tv_nsec, 678910);
ck_assert_int_eq (check_response_date.tv_sec, 111213);
ck_assert_int_eq (check_response_date.tv_nsec, 141516);
ck_assert (check_invalidated);
- ck_assert_int_eq (check_key_id._nbytes, 32);
- ck_assert_int_eq (check_header_id._nbytes, 32);
- ck_assert_int_eq (check_body_id._nbytes, 32);
- ck_assert_int_eq (memcmp (check_key_id._data, key_id._data, 32), 0);
- ck_assert_int_eq (memcmp (check_header_id._data, header_id._data, 32), 0);
- ck_assert_int_eq (memcmp (check_body_id._data, body_id._data, 32), 0);
- FREE (check_key_id._data);
- FREE (check_header_id._data);
- FREE (check_body_id._data);
- FREE (key_id._data);
- FREE (header_id._data);
- FREE (body_id._data);
- FREE (entry_id._data);
- cleanup_database (&database);
+ ck_assert_int_eq (check_key._nbytes, strlen (key_value));
+ ck_assert_int_eq (check_header._nbytes, strlen (header_value));
+ ck_assert_int_eq (check_body._nbytes, strlen (body_value));
+ ck_assert_int_eq (memcmp (check_key._data, key_value, strlen (key_value)),
+ 0);
+ ck_assert_int_eq (memcmp
+ (check_header._data, header_value, strlen (header_value)),
+ 0);
+ ck_assert_int_eq (memcmp
+ (check_body._data, body_value, strlen (body_value)), 0);
+ FREE (check_key._data);
+ FREE (check_header._data);
+ FREE (check_body._data);
+ remove (filename);
+ close (file);
}
/* *INDENT-OFF* */
END_TEST
@@ -905,7 +874,6 @@ run_tests (size_t *n_tests, size_t *n_errors)
suite_add_tcase (suite, general);
TCase *cache_entry = tcase_create (_("disfluid cache entry files"));
tcase_add_test (cache_entry, test_read_normal);
- tcase_add_test (cache_entry, test_read_invalid_magic_number);
suite_add_tcase (suite, cache_entry);
TCase *cache_key = tcase_create (_("disfluid cache key"));
tcase_add_test (cache_key, test_cache_key_no_host);