Adds NmeaManagement tests, fixes codegen includes and Qt6 SerialPort CMake target.
55 lines
2.1 KiB
C++
55 lines
2.1 KiB
C++
/**
|
|
* @file test_nme_enums.cpp
|
|
* @brief Verhaltenstests für die generierten NmeaManagement-Enumerationen
|
|
*
|
|
* Diese Tests prüfen den von CODEGEN_IDL_SVC + rtiddsgen aus nme_service.xml
|
|
* generierten Header (Lts/Services/NmeaManagement/nme_enums.hpp) aus dem
|
|
* Build-Tree. Sie sichern die Enum-Form ab, die der migrierte NmeaHandler
|
|
* (IIXDR-Pfad) direkt nutzt: ServiceControlEnum::{PRESHUTDOWN,SHUTDOWN,STOP}
|
|
* ohne die legacy *_def-Wrapper (rtiddsgen 7.7 generiert plain enum class).
|
|
*/
|
|
|
|
#include "NmeaManagement/nme_enums.hpp"
|
|
|
|
#include <gtest/gtest.h>
|
|
#include <type_traits>
|
|
|
|
/**
|
|
* @test ServiceControlEnum muss mit den Werten aus nme_service.xml generiert
|
|
* werden (PRESHUTDOWN=0, SHUTDOWN=1, STOP=2).
|
|
*/
|
|
TEST(nme_enums_Generated, ServiceControlEnumValues)
|
|
{
|
|
static_assert(std::is_enum<::NmeaManagement::ServiceControlEnum>::value,
|
|
"ServiceControlEnum muss aus nme_enums.hpp vorliegen");
|
|
static_assert(static_cast<int32_t>(::NmeaManagement::ServiceControlEnum::PRESHUTDOWN) == 0,
|
|
"ServiceControlEnum::PRESHUTDOWN muss 0 sein");
|
|
static_assert(static_cast<int32_t>(::NmeaManagement::ServiceControlEnum::SHUTDOWN) == 1,
|
|
"ServiceControlEnum::SHUTDOWN muss 1 sein");
|
|
static_assert(static_cast<int32_t>(::NmeaManagement::ServiceControlEnum::STOP) == 2,
|
|
"ServiceControlEnum::STOP muss 2 sein");
|
|
SUCCEED();
|
|
}
|
|
|
|
/**
|
|
* @test Die Enum-Werte müssen wie im migrierten NmeaHandler zugewiesen
|
|
* werden können (IIXDR: ServiceControl.ServiceControlState = ...).
|
|
*/
|
|
TEST(nme_enums_Generated, ServiceControlEnumAssignable)
|
|
{
|
|
::NmeaManagement::ServiceControlEnum state = ::NmeaManagement::ServiceControlEnum::PRESHUTDOWN;
|
|
state = ::NmeaManagement::ServiceControlEnum::SHUTDOWN;
|
|
state = ::NmeaManagement::ServiceControlEnum::STOP;
|
|
EXPECT_EQ(state, ::NmeaManagement::ServiceControlEnum::STOP);
|
|
}
|
|
|
|
/**
|
|
* @test Include-Guard: mehrfaches Einbinden des generierten Headers ist erlaubt.
|
|
*/
|
|
TEST(nme_enums_Generated, MultipleIncludeGuard)
|
|
{
|
|
// Including the header multiple times should not cause errors
|
|
#include "NmeaManagement/nme_enums.hpp"
|
|
SUCCEED();
|
|
}
|