From 5173bf1bb8d21054b0dd6251d23eb37323d6c525 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Konstantin=20K=C3=A4fer?= Date: Fri, 16 Oct 2015 16:14:55 +0200 Subject: [core] Make response data shared to avoid excessive copying --- test/fixtures/mock_file_source.cpp | 7 +++--- test/storage/cache_response.cpp | 6 +++-- test/storage/cache_revalidate.cpp | 47 ++++++++++++------------------------ test/storage/database.cpp | 24 ++++++++++-------- test/storage/directory_reading.cpp | 2 +- test/storage/file_reading.cpp | 11 ++++++--- test/storage/http_cancel.cpp | 3 ++- test/storage/http_coalescing.cpp | 15 ++++++++---- test/storage/http_error.cpp | 5 ++-- test/storage/http_header_parsing.cpp | 6 +++-- test/storage/http_issue_1369.cpp | 3 ++- test/storage/http_load.cpp | 3 ++- test/storage/http_other_loop.cpp | 3 ++- test/storage/http_reading.cpp | 7 +++++- test/storage/http_timeout.cpp | 3 ++- test/storage/server.js | 2 +- 16 files changed, 80 insertions(+), 67 deletions(-) (limited to 'test') diff --git a/test/fixtures/mock_file_source.cpp b/test/fixtures/mock_file_source.cpp index b420ba7298..407f54408f 100644 --- a/test/fixtures/mock_file_source.cpp +++ b/test/fixtures/mock_file_source.cpp @@ -55,7 +55,7 @@ void MockFileSource::Impl::replyWithSuccess(Request* req) const { res->status = Response::Status::Successful; try { - res->data = util::read_file(req->resource.url); + res->data = std::make_shared(std::move(util::read_file(req->resource.url))); } catch (const std::exception& err) { res->status = Response::Status::Error; res->message = err.what(); @@ -95,8 +95,9 @@ void MockFileSource::Impl::replyWithCorruptedData(Request* req) const { std::shared_ptr res = std::make_shared(); res->status = Response::Status::Successful; - res->data = util::read_file(req->resource.url); - res->data.insert(0, "CORRUPTED"); + auto data = std::make_shared(std::move(util::read_file(req->resource.url))); + data->insert(0, "CORRUPTED"); + res->data = std::move(data); req->notify(res); } diff --git a/test/storage/cache_response.cpp b/test/storage/cache_response.cpp index 1294513858..5b0923900e 100644 --- a/test/storage/cache_response.cpp +++ b/test/storage/cache_response.cpp @@ -20,7 +20,8 @@ TEST_F(Storage, CacheResponse) { fs.cancel(req); EXPECT_EQ(Response::Successful, res.status); EXPECT_EQ(false, res.stale); - EXPECT_EQ("Response 1", res.data); + ASSERT_TRUE(res.data.get()); + EXPECT_EQ("Response 1", *res.data); EXPECT_LT(0, res.expires); EXPECT_EQ(0, res.modified); EXPECT_EQ("", res.etag); @@ -36,7 +37,8 @@ TEST_F(Storage, CacheResponse) { fs.cancel(req); EXPECT_EQ(response.status, res.status); EXPECT_EQ(response.stale, res.stale); - EXPECT_EQ(response.data, res.data); + ASSERT_TRUE(res.data.get()); + EXPECT_EQ(*response.data, *res.data); EXPECT_EQ(response.expires, res.expires); EXPECT_EQ(response.modified, res.modified); EXPECT_EQ(response.etag, res.etag); diff --git a/test/storage/cache_revalidate.cpp b/test/storage/cache_revalidate.cpp index 90633b83ac..d7dcbe71cd 100644 --- a/test/storage/cache_revalidate.cpp +++ b/test/storage/cache_revalidate.cpp @@ -13,8 +13,6 @@ TEST_F(Storage, CacheRevalidateSame) { SQLiteCache cache(":memory:"); DefaultFileSource fs(&cache); - const Response *reference = nullptr; - const Resource revalidateSame { Resource::Unknown, "http://127.0.0.1:3000/revalidate-same" }; Request* req1 = nullptr; Request* req2 = nullptr; @@ -27,21 +25,16 @@ TEST_F(Storage, CacheRevalidateSame) { } first = false; - EXPECT_EQ(nullptr, reference); - reference = &res; - EXPECT_EQ(Response::Successful, res.status); EXPECT_EQ(false, res.stale); - EXPECT_EQ("Response", res.data); + ASSERT_TRUE(res.data.get()); + EXPECT_EQ("Response", *res.data); EXPECT_EQ(0, res.expires); EXPECT_EQ(0, res.modified); EXPECT_EQ("snowfall", res.etag); EXPECT_EQ("", res.message); req2 = fs.request(revalidateSame, uv_default_loop(), [&, res](const Response &res2) { - // Make sure we get a different object than before, since this request should've been revalidated. - EXPECT_TRUE(reference != &res2); - if (res2.stale) { // Discard stale responses, if any. return; @@ -57,7 +50,9 @@ TEST_F(Storage, CacheRevalidateSame) { EXPECT_EQ(Response::Successful, res2.status); EXPECT_EQ(false, res.stale); - EXPECT_EQ("Response", res2.data); + ASSERT_TRUE(res2.data.get()); + EXPECT_EQ(res.data, res2.data); + EXPECT_EQ("Response", *res2.data); // We use this to indicate that a 304 reply came back. EXPECT_LT(0, res2.expires); EXPECT_EQ(0, res2.modified); @@ -80,8 +75,6 @@ TEST_F(Storage, CacheRevalidateModified) { SQLiteCache cache(":memory:"); DefaultFileSource fs(&cache); - const Response *reference = nullptr; - const Resource revalidateModified{ Resource::Unknown, "http://127.0.0.1:3000/revalidate-modified" }; Request* req1 = nullptr; @@ -95,21 +88,16 @@ TEST_F(Storage, CacheRevalidateModified) { } first = false; - EXPECT_EQ(nullptr, reference); - reference = &res; - EXPECT_EQ(Response::Successful, res.status); EXPECT_EQ(false, res.stale); - EXPECT_EQ("Response", res.data); + ASSERT_TRUE(res.data.get()); + EXPECT_EQ("Response", *res.data); EXPECT_EQ(0, res.expires); EXPECT_EQ(1420070400, res.modified); EXPECT_EQ("", res.etag); EXPECT_EQ("", res.message); req2 = fs.request(revalidateModified, uv_default_loop(), [&, res](const Response &res2) { - // Make sure we get a different object than before, since this request should've been revalidated. - EXPECT_TRUE(reference != &res2); - if (res2.stale) { // Discard stale responses, if any. return; @@ -124,8 +112,10 @@ TEST_F(Storage, CacheRevalidateModified) { req2 = nullptr; EXPECT_EQ(Response::Successful, res2.status); - EXPECT_EQ(false, res.stale); - EXPECT_EQ("Response", res2.data); + EXPECT_EQ(false, res2.stale); + ASSERT_TRUE(res2.data.get()); + EXPECT_EQ("Response", *res2.data); + EXPECT_EQ(res.data, res2.data); // We use this to indicate that a 304 reply came back. EXPECT_LT(0, res2.expires); EXPECT_EQ(1420070400, res2.modified); @@ -147,8 +137,6 @@ TEST_F(Storage, CacheRevalidateEtag) { SQLiteCache cache(":memory:"); DefaultFileSource fs(&cache); - const Response *reference = nullptr; - const Resource revalidateEtag { Resource::Unknown, "http://127.0.0.1:3000/revalidate-etag" }; Request* req1 = nullptr; Request* req2 = nullptr; @@ -161,21 +149,16 @@ TEST_F(Storage, CacheRevalidateEtag) { } first = false; - EXPECT_EQ(nullptr, reference); - reference = &res; - EXPECT_EQ(Response::Successful, res.status); EXPECT_EQ(false, res.stale); - EXPECT_EQ("Response 1", res.data); + ASSERT_TRUE(res.data.get()); + EXPECT_EQ("Response 1", *res.data); EXPECT_EQ(0, res.expires); EXPECT_EQ(0, res.modified); EXPECT_EQ("response-1", res.etag); EXPECT_EQ("", res.message); req2 = fs.request(revalidateEtag, uv_default_loop(), [&, res](const Response &res2) { - // Make sure we get a different object than before, since this request should've been revalidated. - EXPECT_TRUE(reference != &res2); - if (res2.stale) { // Discard stale responses, if any. return; @@ -191,7 +174,9 @@ TEST_F(Storage, CacheRevalidateEtag) { EXPECT_EQ(Response::Successful, res2.status); EXPECT_EQ(false, res.stale); - EXPECT_EQ("Response 2", res2.data); + ASSERT_TRUE(res2.data.get()); + EXPECT_NE(res.data, res2.data); + EXPECT_EQ("Response 2", *res2.data); EXPECT_EQ(0, res2.expires); EXPECT_EQ(0, res2.modified); EXPECT_EQ("response-2", res2.etag); diff --git a/test/storage/database.cpp b/test/storage/database.cpp index 20f96305b1..dd186f2a3f 100644 --- a/test/storage/database.cpp +++ b/test/storage/database.cpp @@ -178,11 +178,12 @@ TEST_F(Storage, DatabaseLockedWrite) { Log::setObserver(std::make_unique()); auto response = std::make_shared(); - response->data = "Demo"; + response->data = std::make_shared("Demo"); cache.put({ Resource::Unknown, "mapbox://test" }, response); cache.get({ Resource::Unknown, "mapbox://test" }, [] (std::unique_ptr res) { ASSERT_NE(nullptr, res.get()); - EXPECT_EQ("Demo", res->data); + ASSERT_TRUE(res->data.get()); + EXPECT_EQ("Demo", *res->data); }); // Make sure that we got a no errors @@ -210,7 +211,7 @@ TEST_F(Storage, DatabaseLockedRefresh) { Log::setObserver(std::make_unique()); auto response = std::make_shared(); - response->data = "Demo"; + response->data = std::make_shared("Demo"); cache.put({ Resource::Unknown, "mapbox://test" }, response); cache.get({ Resource::Unknown, "mapbox://test" }, [] (std::unique_ptr res) { EXPECT_EQ(nullptr, res.get()); @@ -226,7 +227,7 @@ TEST_F(Storage, DatabaseLockedRefresh) { Log::setObserver(std::make_unique()); auto response = std::make_shared(); - response->data = "Demo"; + response->data = std::make_shared("Demo"); cache.refresh({ Resource::Unknown, "mapbox://test" }, response->expires); cache.get({ Resource::Unknown, "mapbox://test" }, [] (std::unique_ptr res) { EXPECT_EQ(nullptr, res.get()); @@ -255,11 +256,12 @@ TEST_F(Storage, DatabaseDeleted) { Log::setObserver(std::make_unique()); auto response = std::make_shared(); - response->data = "Demo"; + response->data = std::make_shared("Demo"); cache.put({ Resource::Unknown, "mapbox://test" }, response); cache.get({ Resource::Unknown, "mapbox://test" }, [] (std::unique_ptr res) { ASSERT_NE(nullptr, res.get()); - EXPECT_EQ("Demo", res->data); + ASSERT_TRUE(res->data.get()); + EXPECT_EQ("Demo", *res->data); }); Log::removeObserver(); @@ -272,11 +274,12 @@ TEST_F(Storage, DatabaseDeleted) { Log::setObserver(std::make_unique()); auto response = std::make_shared(); - response->data = "Demo"; + response->data = std::make_shared("Demo"); cache.put({ Resource::Unknown, "mapbox://test" }, response); cache.get({ Resource::Unknown, "mapbox://test" }, [] (std::unique_ptr res) { ASSERT_NE(nullptr, res.get()); - EXPECT_EQ("Demo", res->data); + ASSERT_TRUE(res->data.get()); + EXPECT_EQ("Demo", *res->data); }); auto observer = Log::removeObserver(); @@ -302,11 +305,12 @@ TEST_F(Storage, DatabaseInvalid) { Log::setObserver(std::make_unique()); auto response = std::make_shared(); - response->data = "Demo"; + response->data = std::make_shared("Demo"); cache.put({ Resource::Unknown, "mapbox://test" }, response); cache.get({ Resource::Unknown, "mapbox://test" }, [] (std::unique_ptr res) { ASSERT_NE(nullptr, res.get()); - EXPECT_EQ("Demo", res->data); + ASSERT_TRUE(res->data.get()); + EXPECT_EQ("Demo", *res->data); }); auto observer = Log::removeObserver(); diff --git a/test/storage/directory_reading.cpp b/test/storage/directory_reading.cpp index f0bc7ea6d2..f101252761 100644 --- a/test/storage/directory_reading.cpp +++ b/test/storage/directory_reading.cpp @@ -20,7 +20,7 @@ TEST_F(Storage, AssetReadDirectory) { fs.cancel(req); EXPECT_EQ(Response::Error, res.status); EXPECT_EQ(false, res.stale); - EXPECT_EQ(0ul, res.data.size()); + ASSERT_FALSE(res.data.get()); EXPECT_EQ(0, res.expires); EXPECT_EQ(0, res.modified); EXPECT_EQ("", res.etag); diff --git a/test/storage/file_reading.cpp b/test/storage/file_reading.cpp index 434af703f2..ab7ba326ad 100644 --- a/test/storage/file_reading.cpp +++ b/test/storage/file_reading.cpp @@ -21,7 +21,8 @@ TEST_F(Storage, AssetEmptyFile) { fs.cancel(req); EXPECT_EQ(Response::Successful, res.status); EXPECT_EQ(false, res.stale); - EXPECT_EQ(0ul, res.data.size()); + ASSERT_TRUE(res.data.get()); + EXPECT_EQ("", *res.data); EXPECT_EQ(0, res.expires); EXPECT_LT(1420000000, res.modified); EXPECT_NE("", res.etag); @@ -48,12 +49,14 @@ TEST_F(Storage, AssetNonEmptyFile) { fs.cancel(req); EXPECT_EQ(Response::Successful, res.status); EXPECT_EQ(false, res.stale); - EXPECT_EQ(16ul, res.data.size()); + ASSERT_TRUE(res.data.get()); + EXPECT_EQ("content is here\n", *res.data); EXPECT_EQ(0, res.expires); EXPECT_LT(1420000000, res.modified); EXPECT_NE("", res.etag); EXPECT_EQ("", res.message); - EXPECT_EQ("content is here\n", res.data); + ASSERT_TRUE(res.data.get()); + EXPECT_EQ("content is here\n", *res.data); NonEmptyFile.finish(); }); @@ -76,7 +79,7 @@ TEST_F(Storage, AssetNonExistentFile) { fs.cancel(req); EXPECT_EQ(Response::Error, res.status); EXPECT_EQ(false, res.stale); - EXPECT_EQ(0ul, res.data.size()); + ASSERT_FALSE(res.data.get()); EXPECT_EQ(0, res.expires); EXPECT_EQ(0, res.modified); EXPECT_EQ("", res.etag); diff --git a/test/storage/http_cancel.cpp b/test/storage/http_cancel.cpp index 5743ccb8f7..7dfe9c58d5 100644 --- a/test/storage/http_cancel.cpp +++ b/test/storage/http_cancel.cpp @@ -40,7 +40,8 @@ TEST_F(Storage, HTTPCancelMultiple) { fs.cancel(req); EXPECT_EQ(Response::Successful, res.status); EXPECT_EQ(false, res.stale); - EXPECT_EQ("Hello World!", res.data); + ASSERT_TRUE(res.data.get()); + EXPECT_EQ("Hello World!", *res.data); EXPECT_EQ(0, res.expires); EXPECT_EQ(0, res.modified); EXPECT_EQ("", res.etag); diff --git a/test/storage/http_coalescing.cpp b/test/storage/http_coalescing.cpp index 8558362034..2748fb8757 100644 --- a/test/storage/http_coalescing.cpp +++ b/test/storage/http_coalescing.cpp @@ -27,7 +27,8 @@ TEST_F(Storage, HTTPCoalescing) { } EXPECT_EQ(Response::Successful, res.status); - EXPECT_EQ("Hello World!", res.data); + ASSERT_TRUE(res.data.get()); + EXPECT_EQ("Hello World!", *res.data); EXPECT_EQ(0, res.expires); EXPECT_EQ(0, res.modified); EXPECT_EQ("", res.etag); @@ -69,7 +70,8 @@ TEST_F(Storage, HTTPMultiple) { // Do not cancel the request right away. EXPECT_EQ(Response::Successful, res.status); - EXPECT_EQ("Hello World!", res.data); + ASSERT_TRUE(res.data.get()); + EXPECT_EQ("Hello World!", *res.data); EXPECT_EQ(2147483647, res.expires); EXPECT_EQ(0, res.modified); EXPECT_EQ("", res.etag); @@ -85,7 +87,8 @@ TEST_F(Storage, HTTPMultiple) { fs.cancel(req2); EXPECT_EQ(Response::Successful, res2.status); - EXPECT_EQ("Hello World!", res2.data); + ASSERT_TRUE(res2.data.get()); + EXPECT_EQ("Hello World!", *res2.data); EXPECT_EQ(2147483647, res2.expires); EXPECT_EQ(0, res2.modified); EXPECT_EQ("", res2.etag); @@ -115,7 +118,8 @@ TEST_F(Storage, HTTPStale) { req1 = fs.request(resource, uv_default_loop(), [&] (const Response &res) { // Do not cancel the request right away. EXPECT_EQ(Response::Successful, res.status); - EXPECT_EQ("Hello World!", res.data); + ASSERT_TRUE(res.data.get()); + EXPECT_EQ("Hello World!", *res.data); EXPECT_EQ(false, res.stale); EXPECT_EQ(0, res.expires); EXPECT_EQ(0, res.modified); @@ -132,7 +136,8 @@ TEST_F(Storage, HTTPStale) { // Start a second request for the same resource after the first one has been completed. req2 = fs.request(resource, uv_default_loop(), [&] (const Response &res2) { EXPECT_EQ(Response::Successful, res2.status); - EXPECT_EQ("Hello World!", res2.data); + ASSERT_TRUE(res2.data.get()); + EXPECT_EQ("Hello World!", *res2.data); EXPECT_EQ(0, res2.expires); EXPECT_EQ(0, res2.modified); EXPECT_EQ("", res2.etag); diff --git a/test/storage/http_error.cpp b/test/storage/http_error.cpp index 50b46a41b8..d0eefb408c 100644 --- a/test/storage/http_error.cpp +++ b/test/storage/http_error.cpp @@ -38,7 +38,8 @@ TEST_F(Storage, HTTPError) { EXPECT_GT(1.2, duration) << "Backoff timer fired too late"; EXPECT_EQ(Response::Successful, res.status); EXPECT_EQ(false, res.stale); - EXPECT_EQ("Hello World!", res.data); + ASSERT_TRUE(res.data.get()); + EXPECT_EQ("Hello World!", *res.data); EXPECT_EQ(0, res.expires); EXPECT_EQ(0, res.modified); EXPECT_EQ("", res.etag); @@ -67,7 +68,7 @@ TEST_F(Storage, HTTPError) { #else FAIL(); #endif - EXPECT_EQ("", res.data); + ASSERT_FALSE(res.data.get()); EXPECT_EQ(0, res.expires); EXPECT_EQ(0, res.modified); EXPECT_EQ("", res.etag); diff --git a/test/storage/http_header_parsing.cpp b/test/storage/http_header_parsing.cpp index 93fdcb6231..17c3ce16cf 100644 --- a/test/storage/http_header_parsing.cpp +++ b/test/storage/http_header_parsing.cpp @@ -21,7 +21,8 @@ TEST_F(Storage, HTTPHeaderParsing) { fs.cancel(req1); EXPECT_EQ(Response::Successful, res.status); EXPECT_EQ(false, res.stale); - EXPECT_EQ("Hello World!", res.data); + ASSERT_TRUE(res.data.get()); + EXPECT_EQ("Hello World!", *res.data); EXPECT_EQ(1420797926, res.expires); EXPECT_EQ(1420794326, res.modified); EXPECT_EQ("foo", res.etag); @@ -37,7 +38,8 @@ TEST_F(Storage, HTTPHeaderParsing) { fs.cancel(req2); EXPECT_EQ(Response::Successful, res.status); EXPECT_EQ(false, res.stale); - EXPECT_EQ("Hello World!", res.data); + ASSERT_TRUE(res.data.get()); + EXPECT_EQ("Hello World!", *res.data); EXPECT_GT(2, std::abs(res.expires - now - 120)) << "Expiration date isn't about 120 seconds in the future"; EXPECT_EQ(0, res.modified); EXPECT_EQ("", res.etag); diff --git a/test/storage/http_issue_1369.cpp b/test/storage/http_issue_1369.cpp index ba4e3d3885..c5135b3ab9 100644 --- a/test/storage/http_issue_1369.cpp +++ b/test/storage/http_issue_1369.cpp @@ -34,7 +34,8 @@ TEST_F(Storage, HTTPIssue1369) { fs.cancel(req); EXPECT_EQ(Response::Successful, res.status); EXPECT_EQ(false, res.stale); - EXPECT_EQ("Hello World!", res.data); + ASSERT_TRUE(res.data.get()); + EXPECT_EQ("Hello World!", *res.data); EXPECT_EQ(0, res.expires); EXPECT_EQ(0, res.modified); EXPECT_EQ("", res.etag); diff --git a/test/storage/http_load.cpp b/test/storage/http_load.cpp index 092bf2db5a..987e463507 100644 --- a/test/storage/http_load.cpp +++ b/test/storage/http_load.cpp @@ -26,7 +26,8 @@ TEST_F(Storage, HTTPLoad) { reqs[i] = nullptr; EXPECT_EQ(Response::Successful, res.status); EXPECT_EQ(false, res.stale); - EXPECT_EQ(std::string("Request ") + std::to_string(current), res.data); + ASSERT_TRUE(res.data.get()); + EXPECT_EQ(std::string("Request ") + std::to_string(current), *res.data); EXPECT_EQ(0, res.expires); EXPECT_EQ(0, res.modified); EXPECT_EQ("", res.etag); diff --git a/test/storage/http_other_loop.cpp b/test/storage/http_other_loop.cpp index cd9fad95be..f6e805285f 100644 --- a/test/storage/http_other_loop.cpp +++ b/test/storage/http_other_loop.cpp @@ -17,7 +17,8 @@ TEST_F(Storage, HTTPOtherLoop) { fs.cancel(req); EXPECT_EQ(Response::Successful, res.status); EXPECT_EQ(false, res.stale); - EXPECT_EQ("Hello World!", res.data); + ASSERT_TRUE(res.data.get()); + EXPECT_EQ("Hello World!", *res.data); EXPECT_EQ(0, res.expires); EXPECT_EQ(0, res.modified); EXPECT_EQ("", res.etag); diff --git a/test/storage/http_reading.cpp b/test/storage/http_reading.cpp index c5e89b88e8..468ba33248 100644 --- a/test/storage/http_reading.cpp +++ b/test/storage/http_reading.cpp @@ -24,7 +24,8 @@ TEST_F(Storage, HTTPReading) { EXPECT_EQ(uv_thread_self(), mainThread); EXPECT_EQ(Response::Successful, res.status); EXPECT_EQ(false, res.stale); - EXPECT_EQ("Hello World!", res.data); + ASSERT_TRUE(res.data.get()); + EXPECT_EQ("Hello World!", *res.data); EXPECT_EQ(0, res.expires); EXPECT_EQ(0, res.modified); EXPECT_EQ("", res.etag); @@ -38,6 +39,8 @@ TEST_F(Storage, HTTPReading) { EXPECT_EQ(uv_thread_self(), mainThread); EXPECT_EQ(Response::NotFound, res.status); EXPECT_EQ(false, res.stale); + ASSERT_TRUE(res.data.get()); + EXPECT_EQ("Cannot GET /doesnotexist\n", *res.data); EXPECT_EQ("", res.message); EXPECT_EQ(0, res.expires); EXPECT_EQ(0, res.modified); @@ -51,6 +54,8 @@ TEST_F(Storage, HTTPReading) { EXPECT_EQ(uv_thread_self(), mainThread); EXPECT_EQ(Response::Error, res.status); EXPECT_EQ(false, res.stale); + ASSERT_TRUE(res.data.get()); + EXPECT_EQ("Server Error!", *res.data); EXPECT_EQ("HTTP status code 500", res.message); EXPECT_EQ(0, res.expires); EXPECT_EQ(0, res.modified); diff --git a/test/storage/http_timeout.cpp b/test/storage/http_timeout.cpp index 71553677bd..b5cd877e76 100644 --- a/test/storage/http_timeout.cpp +++ b/test/storage/http_timeout.cpp @@ -20,7 +20,8 @@ TEST_F(Storage, HTTPTimeout) { counter++; EXPECT_EQ(Response::Successful, res.status); EXPECT_EQ(false, res.stale); - EXPECT_EQ("Hello World!", res.data); + ASSERT_TRUE(res.data.get()); + EXPECT_EQ("Hello World!", *res.data); EXPECT_LT(0, res.expires); EXPECT_EQ(0, res.modified); EXPECT_EQ("", res.etag); diff --git a/test/storage/server.js b/test/storage/server.js index 342a61cdc1..efc1e1d6c0 100755 --- a/test/storage/server.js +++ b/test/storage/server.js @@ -74,7 +74,7 @@ app.get('/revalidate-etag', function(req, res) { }); app.get('/permanent-error', function(req, res) { - res.status(500).end(); + res.status(500).send('Server Error!'); }); var temporaryErrorCounter = 0; -- cgit v1.2.1