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