diff options
author | Håvard Pettersen <havardpe@oath.com> | 2019-01-10 12:24:56 +0000 |
---|---|---|
committer | Håvard Pettersen <havardpe@oath.com> | 2019-01-10 12:24:56 +0000 |
commit | 2fdcca86e36498a9451fddb3b3e0ad55ef02f3d7 (patch) | |
tree | aed80c90276ec09dea0ced124adb8d88751e3c3a /staging_vespalib | |
parent | c2122f0ebf10d3b29f9b61e1bdf3f89a13fac899 (diff) |
added lock to make memory access more defined
Diffstat (limited to 'staging_vespalib')
-rw-r--r-- | staging_vespalib/src/tests/state_server/state_server_test.cpp | 32 |
1 files changed, 21 insertions, 11 deletions
diff --git a/staging_vespalib/src/tests/state_server/state_server_test.cpp b/staging_vespalib/src/tests/state_server/state_server_test.cpp index dcc8f664c7a..d4f665029cc 100644 --- a/staging_vespalib/src/tests/state_server/state_server_test.cpp +++ b/staging_vespalib/src/tests/state_server/state_server_test.cpp @@ -124,15 +124,19 @@ TEST_FF("require that host is passed correctly", EchoHost(), HttpServer(0)) { } struct SamplingHandler : JsonGetHandler { + mutable std::mutex my_lock; mutable vespalib::string my_host; mutable vespalib::string my_path; mutable std::map<vespalib::string,vespalib::string> my_params; vespalib::string get(const vespalib::string &host, const vespalib::string &path, const std::map<vespalib::string,vespalib::string> ¶ms) const override { - my_host = host; - my_path = path; - my_params = params; + { + auto guard = std::lock_guard(my_lock); + my_host = host; + my_path = path; + my_params = params; + } return "[]"; } }; @@ -141,20 +145,26 @@ TEST_FF("require that request parameters can be inspected", SamplingHandler(), H { auto token = f2.repo().bind("/foo", f1); EXPECT_EQUAL("[]", getPage(f2.port(), "/foo?a=b&x=y&z")); - EXPECT_EQUAL(f1.my_path, "/foo"); - EXPECT_EQUAL(f1.my_params.size(), 3u); - EXPECT_EQUAL(f1.my_params["a"], "b"); - EXPECT_EQUAL(f1.my_params["x"], "y"); - EXPECT_EQUAL(f1.my_params["z"], ""); - EXPECT_EQUAL(f1.my_params.size(), 3u); // "z" was present + { + auto guard = std::lock_guard(f1.my_lock); + EXPECT_EQUAL(f1.my_path, "/foo"); + EXPECT_EQUAL(f1.my_params.size(), 3u); + EXPECT_EQUAL(f1.my_params["a"], "b"); + EXPECT_EQUAL(f1.my_params["x"], "y"); + EXPECT_EQUAL(f1.my_params["z"], ""); + EXPECT_EQUAL(f1.my_params.size(), 3u); // "z" was present + } } TEST_FF("require that request path is dequoted", SamplingHandler(), HttpServer(0)) { auto token = f2.repo().bind("/[foo]", f1); EXPECT_EQUAL("[]", getPage(f2.port(), "/%5bfoo%5D")); - EXPECT_EQUAL(f1.my_path, "/[foo]"); - EXPECT_EQUAL(f1.my_params.size(), 0u); + { + auto guard = std::lock_guard(f1.my_lock); + EXPECT_EQUAL(f1.my_path, "/[foo]"); + EXPECT_EQUAL(f1.my_params.size(), 0u); + } } //----------------------------------------------------------------------------- |