diff options
Diffstat (limited to 'src/libdisfluid/disfluid-tests.h')
-rw-r--r-- | src/libdisfluid/disfluid-tests.h | 116 |
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); |