diff options
Diffstat (limited to 'tests/cache-test.c')
-rw-r--r-- | tests/cache-test.c | 214 |
1 files changed, 66 insertions, 148 deletions
diff --git a/tests/cache-test.c b/tests/cache-test.c index a19e9747..b60fb9c1 100644 --- a/tests/cache-test.c +++ b/tests/cache-test.c @@ -264,8 +264,9 @@ request_unqueued (SoupSession *session, SoupMessage *msg, } static void -do_basics_test (SoupURI *base_uri) +do_basics_test (gconstpointer data) { + SoupURI *base_uri = (SoupURI *)data; SoupSession *session; SoupCache *cache; char *cache_dir; @@ -307,15 +308,9 @@ do_basics_test (SoupURI *base_uri) debug_printf (1, " Fresh cached resource\n"); cmp = do_request (session, base_uri, "GET", "/1", NULL, NULL); - if (last_request_hit_network) { - debug_printf (1, " Request for /1 not filled from cache!\n"); - errors++; - } - if (strcmp (body1, cmp) != 0) { - debug_printf (1, " Cached response (%s) did not match original (%s)\n", - cmp, body1); - errors++; - } + soup_test_assert (!last_request_hit_network, + "Request for /1 not filled from cache"); + g_assert_cmpstr (body1, ==, cmp); g_free (cmp); @@ -323,15 +318,9 @@ do_basics_test (SoupURI *base_uri) debug_printf (1, " Heuristically-fresh cached resource\n"); cmp = do_request (session, base_uri, "GET", "/2", NULL, NULL); - if (last_request_hit_network) { - debug_printf (1, " Request for /2 not filled from cache!\n"); - errors++; - } - if (strcmp (body2, cmp) != 0) { - debug_printf (1, " Cached response (%s) did not match original (%s)\n", - cmp, body2); - errors++; - } + soup_test_assert (!last_request_hit_network, + "Request for /2 not filled from cache"); + g_assert_cmpstr (body2, ==, cmp); g_free (cmp); @@ -339,23 +328,15 @@ do_basics_test (SoupURI *base_uri) debug_printf (1, " Fresh cached resource with a query\n"); cmp = do_request (session, base_uri, "GET", "/1?attr=value", NULL, NULL); - if (!last_request_hit_network) { - debug_printf (1, " Request for /1?attr=value filled from cache!\n"); - errors++; - } + soup_test_assert (last_request_hit_network, + "Request for /1?attr=value filled from cache"); g_free (cmp); debug_printf (2, " Second request\n"); cmp = do_request (session, base_uri, "GET", "/1", NULL, NULL); - if (last_request_hit_network) { - debug_printf (1, " Second request for /1 not filled from cache!\n"); - errors++; - } - if (strcmp (body1, cmp) != 0) { - debug_printf (1, " Cached response (%s) did not match original (%s)\n", - cmp, body1); - errors++; - } + soup_test_assert (!last_request_hit_network, + "Second request for /1 not filled from cache"); + g_assert_cmpstr (body1, ==, cmp); g_free (cmp); @@ -365,19 +346,11 @@ do_basics_test (SoupURI *base_uri) "Test-Set-Last-Modified", "Fri, 01 Jan 2010 00:00:00 GMT", "Test-Set-Cache-Control", "must-revalidate", NULL); - if (!last_request_validated) { - debug_printf (1, " Request for /3 not validated!\n"); - errors++; - } - if (last_request_hit_network) { - debug_printf (1, " Request for /3 not filled from cache!\n"); - errors++; - } - if (strcmp (body3, cmp) != 0) { - debug_printf (1, " Cached response (%s) did not match original (%s)\n", - cmp, body3); - errors++; - } + soup_test_assert (last_request_validated, + "Request for /3 not validated"); + soup_test_assert (!last_request_hit_network, + "Request for /3 not filled from cache"); + g_assert_cmpstr (body3, ==, cmp); g_free (cmp); @@ -387,18 +360,11 @@ do_basics_test (SoupURI *base_uri) "Test-Set-Last-Modified", "Sat, 02 Jan 2010 00:00:00 GMT", "Test-Set-Cache-Control", "must-revalidate", NULL); - if (!last_request_validated) { - debug_printf (1, " Request for /3 not validated!\n"); - errors++; - } - if (!last_request_hit_network) { - debug_printf (1, " Request for /3 filled from cache!\n"); - errors++; - } - if (strcmp (body3, cmp) == 0) { - debug_printf (1, " Request for /3 returned cached response\n"); - errors++; - } + soup_test_assert (last_request_validated, + "Request for /3 not validated"); + soup_test_assert (last_request_hit_network, + "Request for /3 filled from cache"); + g_assert_cmpstr (body3, !=, cmp); g_free (cmp); debug_printf (2, " Second request\n"); @@ -406,18 +372,11 @@ do_basics_test (SoupURI *base_uri) "Test-Set-Last-Modified", "Sat, 02 Jan 2010 00:00:00 GMT", "Test-Set-Cache-Control", "must-revalidate", NULL); - if (!last_request_validated) { - debug_printf (1, " Second request for /3 not validated!\n"); - errors++; - } - if (last_request_hit_network) { - debug_printf (1, " Second request for /3 not filled from cache!\n"); - errors++; - } - if (strcmp (body3, cmp) == 0) { - debug_printf (1, " Replacement body for /3 not cached!\n"); - errors++; - } + soup_test_assert (last_request_validated, + "Second request for /3 not validated"); + soup_test_assert (!last_request_hit_network, + "Second request for /3 not filled from cache"); + g_assert_cmpstr (body3, !=, cmp); g_free (cmp); /* ETag + must-revalidate causes a conditional request */ @@ -425,19 +384,11 @@ do_basics_test (SoupURI *base_uri) cmp = do_request (session, base_uri, "GET", "/4", NULL, "Test-Set-ETag", "\"abcdefg\"", NULL); - if (!last_request_validated) { - debug_printf (1, " Request for /4 not validated!\n"); - errors++; - } - if (last_request_hit_network) { - debug_printf (1, " Request for /4 not filled from cache!\n"); - errors++; - } - if (strcmp (body4, cmp) != 0) { - debug_printf (1, " Cached response (%s) did not match original (%s)\n", - cmp, body4); - errors++; - } + soup_test_assert (last_request_validated, + "Request for /4 not validated"); + soup_test_assert (!last_request_hit_network, + "Request for /4 not filled from cache"); + g_assert_cmpstr (body4, ==, cmp); g_free (cmp); @@ -446,15 +397,9 @@ do_basics_test (SoupURI *base_uri) cmp = do_request (session, base_uri, "GET", "/5", NULL, "Test-Set-Cache-Control", "no-cache", NULL); - if (!last_request_hit_network) { - debug_printf (1, " Request for /5 filled from cache!\n"); - errors++; - } - if (strcmp (body5, cmp) != 0) { - debug_printf (1, " Re-retrieved response (%s) did not match original (%s)\n", - cmp, body5); - errors++; - } + soup_test_assert (last_request_hit_network, + "Request for /5 filled from cache"); + g_assert_cmpstr (body5, ==, cmp); g_free (cmp); @@ -462,17 +407,14 @@ do_basics_test (SoupURI *base_uri) debug_printf (1, " Invalidating and re-requesting a cached resource\n"); cmp = do_request (session, base_uri, "PUT", "/1", NULL, NULL); - if (!last_request_hit_network) { - debug_printf (1, " PUT filled from cache!\n"); - errors++; - } + soup_test_assert (last_request_hit_network, + "PUT filled from cache"); g_free (cmp); cmp = do_request (session, base_uri, "GET", "/1", NULL, NULL); - if (!last_request_hit_network) { - debug_printf (1, " PUT failed to invalidate cache entry!\n"); - errors++; - } + soup_test_assert (last_request_hit_network, + "PUT failed to invalidate cache entry"); + g_assert_true (last_request_hit_network); g_free (cmp); @@ -488,8 +430,9 @@ do_basics_test (SoupURI *base_uri) } static void -do_cancel_test (SoupURI *base_uri) +do_cancel_test (gconstpointer data) { + SoupURI *base_uri = (SoupURI *)data; SoupSession *session; SoupCache *cache; char *cache_dir; @@ -521,20 +464,12 @@ do_cancel_test (SoupURI *base_uri) debug_printf (1, " Cancel fresh resource with soup_session_message_cancel()\n"); flags = SOUP_TEST_REQUEST_CANCEL_MESSAGE | SOUP_TEST_REQUEST_CANCEL_IMMEDIATE; do_request_with_cancel (session, base_uri, "GET", "/1", flags); - if (cancelled_requests != 1) { - debug_printf (1, " invalid number of cancelled requests: %d (1 expected)\n", - cancelled_requests); - errors++; - } + g_assert_cmpint (cancelled_requests, ==, 1); debug_printf (1, " Cancel fresh resource with g_cancellable_cancel()\n"); flags = SOUP_TEST_REQUEST_CANCEL_CANCELLABLE | SOUP_TEST_REQUEST_CANCEL_IMMEDIATE; do_request_with_cancel (session, base_uri, "GET", "/1", flags); - if (cancelled_requests != 1) { - debug_printf (1, " invalid number of cancelled requests: %d (1 expected)\n", - cancelled_requests); - errors++; - } + g_assert_cmpint (cancelled_requests, ==, 1); soup_test_session_abort_unref (session); @@ -549,20 +484,12 @@ do_cancel_test (SoupURI *base_uri) debug_printf (1, " Cancel a revalidating resource with soup_session_message_cancel()\n"); flags = SOUP_TEST_REQUEST_CANCEL_MESSAGE | SOUP_TEST_REQUEST_CANCEL_IMMEDIATE; do_request_with_cancel (session, base_uri, "GET", "/2", flags); - if (cancelled_requests != 2) { - debug_printf (1, " invalid number of cancelled requests: %d (2 expected)\n", - cancelled_requests); - errors++; - } + g_assert_cmpint (cancelled_requests, ==, 2); debug_printf (1, " Cancel a revalidating resource with g_cancellable_cancel()\n"); flags = SOUP_TEST_REQUEST_CANCEL_CANCELLABLE | SOUP_TEST_REQUEST_CANCEL_IMMEDIATE; do_request_with_cancel (session, base_uri, "GET", "/2", flags); - if (cancelled_requests != 2) { - debug_printf (1, " invalid number of cancelled requests: %d (2 expected)\n", - cancelled_requests); - errors++; - } + g_assert_cmpint (cancelled_requests, ==, 2); soup_test_session_abort_unref (session); @@ -586,8 +513,9 @@ base_stream_unreffed (gpointer loop, GObject *ex_base_stream) } static void -do_refcounting_test (SoupURI *base_uri) +do_refcounting_test (gconstpointer data) { + SoupURI *base_uri = (SoupURI *)data; SoupSession *session; SoupCache *cache; char *cache_dir; @@ -644,8 +572,9 @@ do_refcounting_test (SoupURI *base_uri) } static void -do_headers_test (SoupURI *base_uri) +do_headers_test (gconstpointer data) { + SoupURI *base_uri = (SoupURI *)data; SoupSession *session; SoupMessageHeaders *headers; SoupCache *cache; @@ -678,14 +607,10 @@ do_headers_test (SoupURI *base_uri) "Test-Set-Last-Modified", "Fri, 01 Jan 2010 00:00:00 GMT", "Test-Set-My-Header", "My header NEW value", NULL); - if (!last_request_validated) { - debug_printf (1, " Request for /1 not validated!\n"); - errors++; - } - if (last_request_hit_network) { - debug_printf (1, " Request for /1 not filled from cache!\n"); - errors++; - } + soup_test_assert (last_request_validated, + "Request for /1 not validated"); + soup_test_assert (!last_request_hit_network, + "Request for /1 not filled from cache"); g_free (cmp); /* Check that cache returns the updated header */ @@ -694,22 +619,12 @@ do_headers_test (SoupURI *base_uri) cmp = do_request (session, base_uri, "GET", "/1", headers, "Test-Set-Last-Modified", "Fri, 01 Jan 2010 00:00:00 GMT", NULL); - if (last_request_hit_network) { - debug_printf (1, " Request for /1 not filled from cache!\n"); - errors++; - } + soup_test_assert (!last_request_hit_network, + "Request for /1 not filled from cache"); g_free (cmp); header_value = soup_message_headers_get_list (headers, "My-Header"); - if (!header_value) { - debug_printf (1, " Header \"My-Header\" not present!\n"); - errors++; - } else if (strcmp (header_value, "My header NEW value") != 0) { - debug_printf (1, " \"My-Header = %s\" and should be \"%s\"\n", - header_value, - "My header NEW value"); - errors++; - } + g_assert_cmpstr (header_value, ==, "My header NEW value"); soup_message_headers_free (headers); soup_test_session_abort_unref (session); @@ -724,6 +639,7 @@ main (int argc, char **argv) { SoupServer *server; SoupURI *base_uri; + int ret; test_init (argc, argv, NULL); @@ -732,14 +648,16 @@ main (int argc, char **argv) base_uri = soup_uri_new ("http://127.0.0.1/"); soup_uri_set_port (base_uri, soup_server_get_port (server)); - do_basics_test (base_uri); - do_cancel_test (base_uri); - do_refcounting_test (base_uri); - do_headers_test (base_uri); + g_test_add_data_func ("/cache/basics", base_uri, do_basics_test); + g_test_add_data_func ("/cache/cancellation", base_uri, do_cancel_test); + g_test_add_data_func ("/cache/refcounting", base_uri, do_refcounting_test); + g_test_add_data_func ("/cache/headers", base_uri, do_headers_test); + + ret = g_test_run (); soup_uri_free (base_uri); soup_test_server_quit_unref (server); test_cleanup (); - return errors != 0; + return ret; } |