mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-13 03:33:33 +08:00
Latest fixes to GDTR made such thing as name collisions completely impossible, so tests were fixed accordingly
This commit is contained in:
@@ -120,7 +120,6 @@ public:
|
||||
|
||||
bool match(DataTypeKind kind, const char* name) const;
|
||||
bool match(DataTypeKind kind, uint16_t id) const;
|
||||
bool match(const char* name) const { return match(kind_, name); }
|
||||
|
||||
std::string toString() const;
|
||||
|
||||
|
||||
@@ -79,7 +79,7 @@ GlobalDataTypeRegistry::RegistResult GlobalDataTypeRegistry::registImpl(Entry* d
|
||||
{
|
||||
if (p->descriptor.getID() == dtd->descriptor.getID()) // ID collision
|
||||
return RegistResultCollision;
|
||||
if (p->descriptor.match(dtd->descriptor.getFullName())) // Name collision
|
||||
if (!std::strcmp(p->descriptor.getFullName(), dtd->descriptor.getFullName())) // Name collision
|
||||
return RegistResultCollision;
|
||||
p = p->getNextListNode();
|
||||
}
|
||||
|
||||
@@ -47,15 +47,6 @@ namespace
|
||||
static const char* getDataTypeFullName() { return "foo.DataTypeD"; }
|
||||
};
|
||||
|
||||
struct DataTypeBNameCollision
|
||||
{
|
||||
enum { DefaultDataTypeID = 999 };
|
||||
enum { DataTypeKind = uavcan::DataTypeKindMessage };
|
||||
static uavcan::DataTypeSignature getDataTypeSignature() { return uavcan::DataTypeSignature(963); }
|
||||
static const char* getDataTypeFullName() { return "my_namespace.DataTypeB"; }
|
||||
};
|
||||
|
||||
|
||||
template <typename Type>
|
||||
uavcan::DataTypeDescriptor extractDescriptor(uint16_t dtid = Type::DefaultDataTypeID)
|
||||
{
|
||||
@@ -139,10 +130,6 @@ TEST(GlobalDataTypeRegistry, Basic)
|
||||
ASSERT_EQ(GlobalDataTypeRegistry::RegistResultCollision,
|
||||
GlobalDataTypeRegistry::instance().regist<DataTypeC>(741)); // ID COLLISION
|
||||
|
||||
ASSERT_EQ(GlobalDataTypeRegistry::RegistResultCollision,
|
||||
GlobalDataTypeRegistry::instance().regist<DataTypeBNameCollision>(
|
||||
DataTypeBNameCollision::DefaultDataTypeID)); // NAME COLLISION
|
||||
|
||||
ASSERT_EQ(GlobalDataTypeRegistry::RegistResultOk,
|
||||
GlobalDataTypeRegistry::instance().regist<DataTypeC>(DataTypeC::DefaultDataTypeID));
|
||||
uavcan::DefaultDataTypeRegistrator<DataTypeD> reg_DataTypeD;
|
||||
|
||||
Reference in New Issue
Block a user