ensuring no duplicate rx hostname port combo (#604)

* rx_hostname and port combo to one, or hostname to all, or a vector of hostnames and ports, ignoring none or empty, then verifying no duplicates for the host port combo including from shared memory

* extracted function for rx_hostname (#694)

* c++14 revert

* unique hostname-port combo for port, hostname, rx_tcpport (#696)

* verify unique combo for rx_port as well

* check unique hostname-port combo also when setting control port, hostname, rx_hostname and rx_tcpport

---------

Co-authored-by: Erik Fröjdh <erik.frojdh@gmail.com>
Co-authored-by: Erik Frojdh <erik.frojdh@psi.ch>
This commit is contained in:
Dhanya Thattil
2023-03-20 12:30:12 +01:00
committed by GitHub
parent c9215a6d9b
commit b67c6dea08
11 changed files with 228 additions and 44 deletions

View File

@ -136,6 +136,23 @@ TEST_CASE("compare a vector of arrays", "[support]") {
CHECK(minusOneIfDifferent(vec1) == arr);
}
TEST_CASE("check if vector has duplicates") {
std::vector<int> vec{1, 0, 2, 5, 3, 1, 8, 6};
REQUIRE(hasDuplicates(vec) == true);
}
TEST_CASE("check for duplicates in vector of pairs") {
std::vector<std::pair<std::string, int>> vec;
vec.emplace_back("localhost", 1954);
REQUIRE(hasDuplicates(vec) == false);
vec.emplace_back("localhost", 1800);
REQUIRE(hasDuplicates(vec) == false);
vec.emplace_back("localhost", 1954);
REQUIRE(hasDuplicates(vec) == true);
}
TEST_CASE("remove duplicates from vector") {
std::vector<int> v{5, 6, 5, 3};
auto r = removeDuplicates(v);