PROFINET IO Controller Stack 1.0.0
Modern C++ implementation of a PROFINET IO Controller stack
Loading...
Searching...
No Matches
test_gsdml_real_device.cpp File Reference

Regression tests for parsing real vendor GSDML files. More...

#include <gtest/gtest.h>
#include <algorithm>
#include <cstdint>
#include <filesystem>
#include <string>
#include <vector>
#include "profinet/IOSignal.h"
#include "profinet/gsdml.h"
+ Include dependency graph for test_gsdml_real_device.cpp:

Go to the source code of this file.

Classes

class  profinet::gsdml::GsdmlRealDeviceTest
 GoogleTest fixture for real vendor GSDML regression tests. More...
 

Namespaces

namespace  profinet
 
namespace  profinet::gsdml
 

Functions

 profinet::gsdml::TEST_F (GsdmlRealDeviceTest, ParsesAumaGsdml)
 
 profinet::gsdml::TEST_F (GsdmlRealDeviceTest, ParsesPhoenixGsdml)
 
 profinet::gsdml::TEST_F (GsdmlRealDeviceTest, ParsesVendorId)
 
 profinet::gsdml::TEST_F (GsdmlRealDeviceTest, ParsesDeviceId)
 
 profinet::gsdml::TEST_F (GsdmlRealDeviceTest, FindsDap)
 
 profinet::gsdml::TEST_F (GsdmlRealDeviceTest, FindsActuatorStatusModule)
 
 profinet::gsdml::TEST_F (GsdmlRealDeviceTest, FindsActuatorControlModule)
 
 profinet::gsdml::TEST_F (GsdmlRealDeviceTest, ParsesStatusInputLength)
 
 profinet::gsdml::TEST_F (GsdmlRealDeviceTest, ParsesControlOutputLength)
 
 profinet::gsdml::TEST_F (GsdmlRealDeviceTest, ParsesStatusSubmoduleIdent)
 
 profinet::gsdml::TEST_F (GsdmlRealDeviceTest, ParsesControlSubmoduleIdent)
 
 profinet::gsdml::TEST_F (GsdmlRealDeviceTest, BuildIoSlotsMatchesExpectedInputLengths)
 
 profinet::gsdml::TEST_F (GsdmlRealDeviceTest, BuildIoSlotsMatchesExpectedOutputLengths)
 
 profinet::gsdml::TEST_F (GsdmlRealDeviceTest, BuildIoSlotsProducesExpectedModuleIdents)
 
 profinet::gsdml::TEST_F (GsdmlRealDeviceTest, FindsPhoenixIoModule)
 
 profinet::gsdml::TEST_F (GsdmlRealDeviceTest, FindsPhoenixDap)
 
 profinet::gsdml::TEST_F (GsdmlRealDeviceTest, BuildsPhoenixDefaultIoSlotConfiguration)
 
 profinet::gsdml::TEST_F (GsdmlRealDeviceTest, PhoenixFixedModuleResolvesToSlotOne)
 
 profinet::gsdml::TEST_F (GsdmlRealDeviceTest, PhoenixDefaultSubmoduleResolvesToPnio512512)
 
 profinet::gsdml::TEST_F (GsdmlRealDeviceTest, PhoenixModuleReferenceContainsUsedSubslot)
 
 profinet::gsdml::TEST_F (GsdmlRealDeviceTest, PhoenixApplicationRelationsExposeTimingProperties)
 
 profinet::gsdml::TEST_F (GsdmlRealDeviceTest, PhoenixDapVirtualSubmoduleBuildsSlotZero)
 
 profinet::gsdml::TEST_F (GsdmlRealDeviceTest, PhoenixInterfaceSubmoduleBuildsAtPdevSubslot)
 
 profinet::gsdml::TEST_F (GsdmlRealDeviceTest, PhoenixPortSubmoduleBuildsAtPdevSubslot)
 
 profinet::gsdml::TEST_F (GsdmlRealDeviceTest, PhoenixExplicitPluggedConfigurationOverridesDefault)
 
 profinet::gsdml::TEST_F (GsdmlRealDeviceTest, ExplicitModuleAssignmentRejectsDisallowedPhoenixSlot)
 
 profinet::gsdml::TEST_F (GsdmlRealDeviceTest, ExplicitConfigurationRejectsUnknownModule)
 
 profinet::gsdml::TEST_F (GsdmlRealDeviceTest, ExplicitConfigurationRejectsUnknownSubmodule)
 
 profinet::gsdml::TEST_F (GsdmlRealDeviceTest, ExplicitConfigurationRejectsDisallowedSubslot)
 
 profinet::gsdml::TEST_F (GsdmlRealDeviceTest, BuildIoSlotsIsDeterministic)
 
 profinet::gsdml::TEST_F (GsdmlRealDeviceTest, AumaInputDataItemsMatchReportedLength)
 
 profinet::gsdml::TEST_F (GsdmlRealDeviceTest, AumaOutputDataItemsMatchReportedLength)
 
 profinet::gsdml::TEST_F (GsdmlRealDeviceTest, PhoenixInputDataItemsMatchReportedLength)
 
 profinet::gsdml::TEST_F (GsdmlRealDeviceTest, PhoenixOutputDataItemsMatchReportedLength)
 
 profinet::gsdml::TEST_F (GsdmlRealDeviceTest, AumaBuildIoSlotsContainsExpectedDeviceConfiguration)
 
 profinet::gsdml::TEST_F (GsdmlRealDeviceTest, AumaBuildIoSlotsDoesNotMutateParsedDevice)
 
 profinet::gsdml::TEST_F (GsdmlRealDeviceTest, AumaCyclicIoLengthsMatchConfiguredModules)
 
 profinet::gsdml::TEST_F (GsdmlRealDeviceTest, AumaRepeatedParsingProducesSameMetadata)
 
 profinet::gsdml::TEST_F (GsdmlRealDeviceTest, BuildIoSlotsMatchesExpectedSlots)
 
 profinet::gsdml::TEST_F (GsdmlRealDeviceTest, BuildIoSlotsMatchesExpectedInputOutputLengths)
 
 profinet::gsdml::TEST_F (GsdmlRealDeviceTest, BuildsAumaIoSignalCatalog)
 
 profinet::gsdml::TEST_F (GsdmlRealDeviceTest, AumaSensorSignalsUseStatusSubmodule)
 
 profinet::gsdml::TEST_F (GsdmlRealDeviceTest, AumaActuatorSignalsUseControlSubmodule)
 
 profinet::gsdml::TEST_F (GsdmlRealDeviceTest, AumaSignalsStayWithinProcessDataLengths)
 
 profinet::gsdml::TEST_F (GsdmlRealDeviceTest, AumaCatalogExcludesReservedSignals)
 
 profinet::gsdml::TEST_F (GsdmlRealDeviceTest, AumaCatalogSignalsHaveValueClassification)
 
 profinet::gsdml::TEST_F (GsdmlRealDeviceTest, BuildsPhoenixIoSignalCatalog)
 
 profinet::gsdml::TEST_F (GsdmlRealDeviceTest, PhoenixCatalogExcludesReservedSignals)
 
 profinet::gsdml::TEST_F (GsdmlRealDeviceTest, AumaSignalsMatchGeneratedIoSlots)
 
 profinet::gsdml::TEST_F (GsdmlRealDeviceTest, ParsesAumaBitDataItems)
 
 profinet::gsdml::TEST_F (GsdmlRealDeviceTest, AumaLogByteCreatesEightBitSignals)
 
 profinet::gsdml::TEST_F (GsdmlRealDeviceTest, AumaCommandBitsHaveCorrectByteAndBitOffsets)
 

Detailed Description

Regression tests for parsing real vendor GSDML files.

These tests exercise the GSDML parser against real AUMA SGx and Phoenix Contact AXC-F-1252 GSDML files. The tests intentionally validate the values that are relevant to PROFINET IO configuration: vendor/device identification, DAP identification, module/submodule identification, cyclic I/O sizes, fixed slots and generated IOSlots.

The AUMA GSDML is particularly important because its configuration corresponds to the AUMA actuator configuration used elsewhere in the PROFINET controller tests.

Test:
All tests are offline and do not require a physical PROFINET device.

Definition in file test_gsdml_real_device.cpp.