Files
allwpilib/wpinet/src/test/native/cpp/MulticastTest.cpp

52 lines
1.6 KiB
C++
Raw Normal View History

// Copyright (c) FIRST and other WPILib contributors.
// Open Source Software; you can modify and/or share it under the terms of
// the WPILib BSD license file in the root directory of this project.
2025-11-07 19:56:21 -05:00
#include "wpi/net/MulticastServiceAnnouncer.h"
#include "wpi/net/MulticastServiceResolver.h"
#include <array>
#include <chrono>
#include <string>
#include <string_view>
#include <thread>
#include <utility>
#include <gtest/gtest.h>
2025-11-07 19:56:21 -05:00
#include "wpi/util/timestamp.h"
TEST(MulticastServiceAnnouncerTest, EmptyText) {
const std::string_view serviceName = "TestServiceNoText";
const std::string_view serviceType = "_wpinotxt";
const int port = std::rand();
wpi::MulticastServiceAnnouncer announcer(serviceName, serviceType, port);
wpi::MulticastServiceResolver resolver(serviceType);
if (announcer.HasImplementation() && resolver.HasImplementation()) {
announcer.Start();
resolver.Start();
std::this_thread::sleep_for(std::chrono::seconds(1));
resolver.Stop();
announcer.Stop();
}
}
TEST(MulticastServiceAnnouncerTest, SingleText) {
const std::string_view serviceName = "TestServiceSingle";
const std::string_view serviceType = "_wpitxt";
const int port = std::rand();
std::array<std::pair<std::string, std::string>, 1> txt = {
std::pair{"hello", "world"}};
wpi::MulticastServiceAnnouncer announcer(serviceName, serviceType, port, txt);
wpi::MulticastServiceResolver resolver(serviceType);
if (announcer.HasImplementation() && resolver.HasImplementation()) {
announcer.Start();
resolver.Start();
std::this_thread::sleep_for(std::chrono::seconds(1));
}
}