testing: memstat --analyze=latency
[m6w6/libmemcached] / test / tests / lib.cpp
1 #include "test/lib/common.hpp"
2 #include "test/lib/Cluster.hpp"
3 #include "test/lib/Retry.hpp"
4 #include "test/lib/Server.hpp"
5
6 TEST_CASE("lib/Server") {
7 Server server{MEMCACHED_BINARY, {
8 Server::arg_t{"-v"},
9 Server::arg_pair_t{"-p", random_port_string}
10 }};
11
12 SECTION("starts and listens") {
13
14 REQUIRE(server.start().has_value());
15
16 Retry server_is_listening{[&server] {
17 return server.isListening();
18 }};
19 REQUIRE(server_is_listening());
20
21 SECTION("stops") {
22
23 REQUIRE(server.stop());
24
25 SECTION("is waitable") {
26
27 REQUIRE(server.wait());
28
29 SECTION("stopped") {
30
31 REQUIRE_FALSE(server.check());
32 }
33 }
34 }
35 }
36 }
37
38 TEST_CASE("lib/Cluster") {
39 Cluster cluster{Server{MEMCACHED_BINARY, {
40 random_socket_or_port_arg(),
41 }}};
42
43 SECTION("starts and listens") {
44
45 REQUIRE(cluster.start());
46
47 Retry cluster_is_listening{[&cluster] {
48 return cluster.isListening();
49 }};
50 REQUIRE(cluster_is_listening());
51
52 SECTION("stops") {
53
54 cluster.stop();
55 cluster.wait();
56
57 SECTION("stopped") {
58
59 REQUIRE(cluster.isStopped());
60 }
61 }
62 }
63 }