128 lines
3.8 KiB
C++
128 lines
3.8 KiB
C++
#define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
|
|
#include <doctest/doctest.h>
|
|
#include <iostream>
|
|
|
|
// #include "../common/adc_utils.h"
|
|
// #include "../net/adc_netmessage.h"
|
|
|
|
#include <list>
|
|
|
|
#include "../net/adc_device_netmsg.h"
|
|
#include "../net/adc_endpoint.h"
|
|
// #include "../net/adc_netmsg.h"
|
|
|
|
using namespace adc;
|
|
|
|
static constexpr char DD[] = "=";
|
|
static constexpr char TD[] = "-";
|
|
|
|
|
|
TEST_CASE("[ADC NET MESSAGE]")
|
|
{
|
|
// AdcKeyTokenNetMessage<DD> msg;
|
|
|
|
// std::string_view bytes{"SET=POS 1 2 3 4 5"};
|
|
|
|
// std::cout << "INPUT BYTES: [" << bytes << "]\n";
|
|
|
|
// msg.setFromBytes(bytes.begin(), bytes.end());
|
|
|
|
// auto keyv = msg.keyView();
|
|
// auto keyb = msg.keyBytes();
|
|
|
|
// std::cout << "KEY VIEW: [" << keyv << "]\n";
|
|
// std::cout << "KEY BYTE: [" << keyb << "]\n";
|
|
|
|
// auto tks = msg.tokens(1, 3);
|
|
// for (auto& el : tks) {
|
|
// std::cout << "TOKEN: [" << el << "]\n";
|
|
// }
|
|
|
|
// auto t2 = msg.bytesView();
|
|
// std::cout << "BYTES VIEW: ";
|
|
// for (auto& el : t2) {
|
|
// std::cout << "[" << el << "]";
|
|
// }
|
|
// std::cout << "\n";
|
|
|
|
|
|
// std::cout << "\n\n---------\n\n";
|
|
|
|
|
|
// msg.setTokens("FILTER", "A1", "B3");
|
|
// std::cout << "BYTES: " << msg.bytes() << "\n";
|
|
|
|
// std::cout << "TOK BYTES: [" << msg.tokensBytes(1, 1) << "]\n";
|
|
|
|
|
|
// std::cout << "\n\n---------\n\n";
|
|
|
|
|
|
// AdcTokenNetMessage<> tmsg;
|
|
// std::list<char> bb{'1', ' ', '2', ' ', '3', ' ', '4', ' ', '5'};
|
|
|
|
// tmsg.setFromBytes(bb.begin(), bb.end());
|
|
|
|
// auto t1 = tmsg.bytesView();
|
|
// std::cout << "TOKENS VIEW: ";
|
|
// for (auto& el : t1) {
|
|
// std::cout << "[" << el << "]";
|
|
// }
|
|
// std::cout << "\n";
|
|
|
|
|
|
// std::cout << "\n\n\n";
|
|
|
|
// AdcEndpoint ept(AdcEndpoint::PROTO_ID_LOCAL, "SOCK");
|
|
|
|
// std::cout << "EPT: [" << ept.endpoint() << "]\n";
|
|
// std::cout << "EPT SZ: " << ept.endpoint().size() << "\n";
|
|
|
|
// char ee[] = "tLs://dewlkK.dwed.dwed:8012/dwelk";
|
|
// ept.setEndpoint(ee);
|
|
|
|
// std::cout << "EPT: [" << ept.endpoint() << "]\n";
|
|
|
|
char ee[] = "tLs://dewlkK.dwed.dwed:8012/dwelk";
|
|
std::cout << "EPT CHAR RANGE: " << ee << "\n";
|
|
AdcEndpointParser prs(ee);
|
|
|
|
std::cout << std::boolalpha << "IS VALID: " << prs.isValid() << "\n";
|
|
std::cout << "PROTO: [" << prs.proto() << "]\n";
|
|
std::cout << "HOST: [" << prs.host() << "]\n";
|
|
std::cout << "PORT: [" << prs.port() << "]\n";
|
|
std::cout << "PATH: [" << prs.path() << "]\n";
|
|
std::cout << std::boolalpha << "IS TLS: " << prs.isTLS() << "\n";
|
|
std::cout << std::boolalpha << "IS UDP: " << prs.isUDP() << "\n";
|
|
|
|
std::cout << "\n";
|
|
std::string bs = "local://seqpaCKet:dwe/tmp.dev/213";
|
|
std::cout << "EPT CHAR RANGE: " << bs << "\n";
|
|
prs = AdcEndpointParser(bs);
|
|
std::cout << std::boolalpha << "IS VALID: " << prs.isValid() << "\n";
|
|
std::cout << "PROTO: [" << prs.proto() << "]\n";
|
|
std::cout << "HOST: [" << prs.host() << "]\n";
|
|
std::cout << "PORT: [" << prs.port() << "]\n";
|
|
std::cout << "PATH: [" << prs.path() << "]\n";
|
|
std::cout << std::boolalpha << "IS LOCAL STREAM: " << prs.isLocalStream() << "\n";
|
|
std::cout << std::boolalpha << "IS LOCAL SEQPACKET: " << prs.isLocalSeqpacket() << "\n";
|
|
std::cout << std::boolalpha << "IS UDP: " << prs.isUDP() << "\n";
|
|
|
|
std::cout << "\n\n";
|
|
bs.clear();
|
|
AdcDeviceProtoMessage dpm(bs);
|
|
|
|
std::cout << std::boolalpha << "IS VALID: " << dpm.isValid() << "\n";
|
|
|
|
dpm.ack();
|
|
std::cout << "BS: {" << bs << "}\n";
|
|
std::cout << "BS SZ: " << bs.size() << "\n";
|
|
|
|
dpm.set("FILTER", "V", 1.1, std::make_tuple("1.1", 33.77));
|
|
std::cout << "BS: {" << bs << "}\n";
|
|
std::cout << "BS SZ: " << bs.size() << "\n";
|
|
|
|
std::cout << std::boolalpha << "IS SET: " << dpm.isSET() << "\n";
|
|
std::cout << std::boolalpha << "IS VALID: " << dpm.isValid() << "\n";
|
|
}
|