Support ubuntu 18.04 (boost-1.65), and test it in CI.
This commit is contained in:
parent
66c111b5ca
commit
4b1f86cbcd
|
|
@ -7,7 +7,7 @@ jobs:
|
|||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
os: [ubuntu-20.04, macos-10.15, macos-11.0]
|
||||
os: [ubuntu-18.04, ubuntu-20.04, macos-10.15, macos-11.0]
|
||||
etcd: [v3.2.26, v3.3.11, v3.4.13]
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
|
|
|||
|
|
@ -61,8 +61,6 @@ if(NOT CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
|
|||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wpedantic -Werror -Wno-string-compare -std=c++11")
|
||||
endif()
|
||||
|
||||
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
|
||||
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
|
||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
|
||||
|
||||
add_subdirectory(src)
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ i.e., `ETCDCTL_API=3`.
|
|||
### Supported OS environments
|
||||
|
||||
+ **Linux**
|
||||
- Ubuntu 18.04, requires upgrade boost and grpc libraries.
|
||||
- Ubuntu 18.04, requires upgrade grpc libraries (has been tested with 1.27.x).
|
||||
- Ubuntu 20.04
|
||||
+ **MacOS**
|
||||
- MacOS 10.15
|
||||
|
|
|
|||
|
|
@ -6,7 +6,12 @@
|
|||
#include "etcd/Client.hpp"
|
||||
#include "etcd/Response.hpp"
|
||||
|
||||
#include <boost/config.hpp>
|
||||
#if BOOST_VERSION >= 106600
|
||||
#include <boost/asio/io_context.hpp>
|
||||
#else
|
||||
#include <boost/asio/io_service.hpp>
|
||||
#endif
|
||||
#include <boost/asio/steady_timer.hpp>
|
||||
|
||||
#include <grpc++/grpc++.h>
|
||||
|
|
@ -55,7 +60,11 @@ namespace etcd
|
|||
int ttl;
|
||||
int64_t lease_id;
|
||||
bool continue_next;
|
||||
#if BOOST_VERSION >= 106600
|
||||
boost::asio::io_context context;
|
||||
#else
|
||||
boost::asio::io_service context;
|
||||
#endif
|
||||
std::unique_ptr<boost::asio::steady_timer> keepalive_timer_;
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,3 +1,5 @@
|
|||
#include <chrono>
|
||||
|
||||
#include "etcd/KeepAlive.hpp"
|
||||
#include "etcd/v3/AsyncLeaseAction.hpp"
|
||||
|
||||
|
|
@ -70,7 +72,7 @@ void etcd::KeepAlive::refresh()
|
|||
}
|
||||
#endif
|
||||
keepalive_timer_.reset(new boost::asio::steady_timer(
|
||||
context, boost::asio::chrono::seconds(keepalive_ttl)));
|
||||
context, std::chrono::seconds(keepalive_ttl)));
|
||||
keepalive_timer_->async_wait([this](const boost::system::error_code& error) {
|
||||
if (error) {
|
||||
#ifndef NDEBUG
|
||||
|
|
|
|||
|
|
@ -32,17 +32,17 @@ TEST_CASE("create watcher with cancel")
|
|||
|
||||
watcher_called = 0;
|
||||
etcd::Watcher watcher(etcd_uri, "/test", printResponse, true);
|
||||
std::this_thread::sleep_for(std::chrono::seconds(1));
|
||||
std::this_thread::sleep_for(std::chrono::seconds(3));
|
||||
etcd.set("/test/key", "42");
|
||||
etcd.set("/test/key", "43");
|
||||
etcd.rm("/test/key");
|
||||
etcd.set("/test/key", "44");
|
||||
std::this_thread::sleep_for(std::chrono::seconds(1));
|
||||
std::this_thread::sleep_for(std::chrono::seconds(3));
|
||||
CHECK(4 == watcher_called);
|
||||
watcher.Cancel();
|
||||
etcd.set("/test/key", "50");
|
||||
etcd.set("/test/key", "51");
|
||||
std::this_thread::sleep_for(std::chrono::seconds(1));
|
||||
std::this_thread::sleep_for(std::chrono::seconds(3));
|
||||
CHECK(4 == watcher_called);
|
||||
|
||||
etcd.rmdir("/test", true);
|
||||
|
|
@ -57,11 +57,11 @@ TEST_CASE("create watcher")
|
|||
watcher_called = 0;
|
||||
{
|
||||
etcd::Watcher watcher(etcd_uri, "/test", printResponse, true);
|
||||
std::this_thread::sleep_for(std::chrono::seconds(1));
|
||||
std::this_thread::sleep_for(std::chrono::seconds(3));
|
||||
etcd.set("/test/key", "42");
|
||||
etcd.set("/test/key", "43");
|
||||
std::this_thread::sleep_for(std::chrono::seconds(3));
|
||||
}
|
||||
|
||||
CHECK(2 == watcher_called);
|
||||
etcd.rmdir("/test", true).error_code();
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue