TetraIF migration and Unittest Implementation for it

Entire-Checkpoint: 14d1fef0cf36
This commit is contained in:
berrux-dev committed 2026-09-12 13:54:34 +02:00
1 parent a86f9b5bac
commit ba212f9dce
78 files changed
+1611 -640

No files matched your search

@@ -37,6 +37,7 @@ LogViewXdrParser::LogViewXdrParser()
, m_WordListIndex(0)
, m_ActElement(nullptr)
, m_State(e_ParseMain)
, m_logger(getLogger("LogViewXdrParser"))
{}
LogViewXdrParser::~LogViewXdrParser()
@@ -73,41 +74,41 @@ void LogViewXdrParser::parseX_File(const QString& a_fileName)
m_State = e_ParseMain;
addStandardType(QLatin1String("unsigned short"), 4, 2, LogViewXdrStandardType::e_Unsigned);
addStandardType(QLatin1String("unsigned int"), 4, 4, LogViewXdrStandardType::e_Unsigned);
addStandardType(QLatin1String("short"), 4, 2, LogViewXdrStandardType::e_Signed);
addStandardType(QLatin1String("int"), 4, 4, LogViewXdrStandardType::e_Signed);
addStandardType(QLatin1String("u_int"), 4, 4, LogViewXdrStandardType::e_Unsigned);
addStandardType(QLatin1String("char"), 4, 2, LogViewXdrStandardType::e_Character);
addStandardType(QLatin1String("unsigned char"), 4, 1, LogViewXdrStandardType::e_Unsigned);
addStandardType(QLatin1String("unsigned long"), 4, 4, LogViewXdrStandardType::e_Unsigned);
addStandardType(QLatin1String("u_long"), 4, 4, LogViewXdrStandardType::e_Unsigned);
addStandardType(QLatin1String("u_short"), 4, 2, LogViewXdrStandardType::e_Unsigned);
addStandardType(QLatin1String("float"), 4, 4, LogViewXdrStandardType::e_Float, LogViewXdrStandardType::e_DynArrayMsgLength, LogViewXdrStandardType::e_ByteOrderBigEndian);
addStandardType(QLatin1String("double"), 8, 8, LogViewXdrStandardType::e_Float, LogViewXdrStandardType::e_DynArrayMsgLength, LogViewXdrStandardType::e_ByteOrderBigEndian);
addStandardType(QLatin1String("opaque"), 1, 1, LogViewXdrStandardType::e_Data);
addStandardType(QLatin1String("string"), 1, 1, LogViewXdrStandardType::e_Character);
addStandardType(QStringLiteral("unsigned short"), 4, 2, LogViewXdrStandardType::e_Unsigned);
addStandardType(QStringLiteral("unsigned int"), 4, 4, LogViewXdrStandardType::e_Unsigned);
addStandardType(QStringLiteral("short"), 4, 2, LogViewXdrStandardType::e_Signed);
addStandardType(QStringLiteral("int"), 4, 4, LogViewXdrStandardType::e_Signed);
addStandardType(QStringLiteral("u_int"), 4, 4, LogViewXdrStandardType::e_Unsigned);
addStandardType(QStringLiteral("char"), 4, 2, LogViewXdrStandardType::e_Character);
addStandardType(QStringLiteral("unsigned char"), 4, 1, LogViewXdrStandardType::e_Unsigned);
addStandardType(QStringLiteral("unsigned long"), 4, 4, LogViewXdrStandardType::e_Unsigned);
addStandardType(QStringLiteral("u_long"), 4, 4, LogViewXdrStandardType::e_Unsigned);
addStandardType(QStringLiteral("u_short"), 4, 2, LogViewXdrStandardType::e_Unsigned);
addStandardType(QStringLiteral("float"), 4, 4, LogViewXdrStandardType::e_Float, LogViewXdrStandardType::e_DynArrayMsgLength, LogViewXdrStandardType::e_ByteOrderBigEndian);
addStandardType(QStringLiteral("double"), 8, 8, LogViewXdrStandardType::e_Float, LogViewXdrStandardType::e_DynArrayMsgLength, LogViewXdrStandardType::e_ByteOrderBigEndian);
addStandardType(QStringLiteral("opaque"), 1, 1, LogViewXdrStandardType::e_Data);
addStandardType(QStringLiteral("string"), 1, 1, LogViewXdrStandardType::e_Character);
addStandardType(QLatin1String("alpha"), 1, 1, LogViewXdrStandardType::e_Character);
addStandardType(QLatin1String("UInt8"), 1, 1, LogViewXdrStandardType::e_Unsigned);
addStandardType(QLatin1String("UInt16"), 2, 2, LogViewXdrStandardType::e_Unsigned);
addStandardType(QLatin1String("UInt24"), 3, 3, LogViewXdrStandardType::e_Unsigned);
addStandardType(QLatin1String("SInt8"), 1, 1, LogViewXdrStandardType::e_Signed);
addStandardType(QLatin1String("SInt16"), 2, 2, LogViewXdrStandardType::e_Signed);
addStandardType(QLatin1String("SInt24"), 3, 3, LogViewXdrStandardType::e_Signed);
addStandardType(QStringLiteral("alpha"), 1, 1, LogViewXdrStandardType::e_Character);
addStandardType(QStringLiteral("UInt8"), 1, 1, LogViewXdrStandardType::e_Unsigned);
addStandardType(QStringLiteral("UInt16"), 2, 2, LogViewXdrStandardType::e_Unsigned);
addStandardType(QStringLiteral("UInt24"), 3, 3, LogViewXdrStandardType::e_Unsigned);
addStandardType(QStringLiteral("SInt8"), 1, 1, LogViewXdrStandardType::e_Signed);
addStandardType(QStringLiteral("SInt16"), 2, 2, LogViewXdrStandardType::e_Signed);
addStandardType(QStringLiteral("SInt24"), 3, 3, LogViewXdrStandardType::e_Signed);
addStandardType(QLatin1String("UInt16LE"), 2, 2, LogViewXdrStandardType::e_Unsigned, LogViewXdrStandardType::e_DynArrayMsgLength, LogViewXdrStandardType::e_ByteOrderLittleEndian);
addStandardType(QLatin1String("UInt32LE"), 4, 4, LogViewXdrStandardType::e_Unsigned, LogViewXdrStandardType::e_DynArrayMsgLength, LogViewXdrStandardType::e_ByteOrderLittleEndian);
addStandardType(QStringLiteral("UInt16LE"), 2, 2, LogViewXdrStandardType::e_Unsigned, LogViewXdrStandardType::e_DynArrayMsgLength, LogViewXdrStandardType::e_ByteOrderLittleEndian);
addStandardType(QStringLiteral("UInt32LE"), 4, 4, LogViewXdrStandardType::e_Unsigned, LogViewXdrStandardType::e_DynArrayMsgLength, LogViewXdrStandardType::e_ByteOrderLittleEndian);
addStandardType(QLatin1String("UInt8Idx"), 1, 1, LogViewXdrStandardType::e_Unsigned, LogViewXdrStandardType::e_DynArrayIndex);
addStandardType(QLatin1String("UInt16Idx"), 2, 2, LogViewXdrStandardType::e_Unsigned, LogViewXdrStandardType::e_DynArrayIndex);
addStandardType(QLatin1String("UInt16LEIdx"), 2, 2, LogViewXdrStandardType::e_Unsigned, LogViewXdrStandardType::e_DynArrayIndex, LogViewXdrStandardType::e_ByteOrderLittleEndian);
addStandardType(QStringLiteral("UInt8Idx"), 1, 1, LogViewXdrStandardType::e_Unsigned, LogViewXdrStandardType::e_DynArrayIndex);
addStandardType(QStringLiteral("UInt16Idx"), 2, 2, LogViewXdrStandardType::e_Unsigned, LogViewXdrStandardType::e_DynArrayIndex);
addStandardType(QStringLiteral("UInt16LEIdx"), 2, 2, LogViewXdrStandardType::e_Unsigned, LogViewXdrStandardType::e_DynArrayIndex, LogViewXdrStandardType::e_ByteOrderLittleEndian);
addStandardType(QLatin1String("UInt8IdxDiv8"), 1, 1, LogViewXdrStandardType::e_Unsigned, LogViewXdrStandardType::e_DynArrayIndexDiv8);
addStandardType(QLatin1String("UInt16IdxDiv8"), 2, 2, LogViewXdrStandardType::e_Unsigned, LogViewXdrStandardType::e_DynArrayIndexDiv8);
addStandardType(QStringLiteral("UInt8IdxDiv8"), 1, 1, LogViewXdrStandardType::e_Unsigned, LogViewXdrStandardType::e_DynArrayIndexDiv8);
addStandardType(QStringLiteral("UInt16IdxDiv8"), 2, 2, LogViewXdrStandardType::e_Unsigned, LogViewXdrStandardType::e_DynArrayIndexDiv8);
const auto DEFINE_NAME = QLatin1String("%#define");
const auto DEFINE_NAME = QStringLiteral("%#define");
m_Filename = a_fileName;
@@ -155,11 +156,11 @@ void LogViewXdrParser::parseX_File(const QString& a_fileName)
if (e_ParseMain == m_State)
{
if (cleanLine.startsWith(QLatin1String("union ")))
if (cleanLine.startsWith(QStringLiteral("union ")))
{
m_State = e_ParseUnion;
}
else if (cleanLine.startsWith(QLatin1String("struct ")))
else if (cleanLine.startsWith(QStringLiteral("struct ")))
{
m_State = e_ParseStruct;
}
@@ -182,19 +183,19 @@ void LogViewXdrParser::parseX_File(const QString& a_fileName)
{
parseDefine(m_Line.mid(DEFINE_NAME.size()));
}
else if (cleanLine.startsWith(QLatin1String("typedef ")))
else if (cleanLine.startsWith(QStringLiteral("typedef ")))
{
parseTypedef(cleanLine);
}
else if (cleanLine.startsWith(QLatin1String("enum ")))
else if (cleanLine.startsWith(QStringLiteral("enum ")))
{
parseEnum(cleanLine.mid(5));
}
else if (cleanLine.startsWith(QLatin1String("enum8 ")))
else if (cleanLine.startsWith(QStringLiteral("enum8 ")))
{
parseEnum(cleanLine.mid(6), 1);
}
else if (cleanLine.startsWith(QLatin1String("enum16 ")))
else if (cleanLine.startsWith(QStringLiteral("enum16 ")))
{
parseEnum(cleanLine.mid(7), 2);
}
@@ -213,7 +214,7 @@ void LogViewXdrParser::parseX_File(const QString& a_fileName)
}
else
{
QMessageBox::warning(nullptr, QLatin1String("Dateifehler"), QStringLiteral("Konnte die Datei <b>%1</b> nicht öffnen").arg(a_fileName));
QMessageBox::warning(nullptr, QStringLiteral("Dateifehler"), QStringLiteral("Konnte die Datei <b>%1</b> nicht öffnen").arg(a_fileName));
}
}
@@ -317,8 +318,8 @@ void LogViewXdrParser::parseDefine(const QString &a_line)
int sepPos = line.indexOf(QLatin1Char(' '));
if (sepPos >= 0)
{
const QString name = line.leftRef(sepPos).trimmed().toString();
QStringRef substitution = line.midRef(sepPos).trimmed();
const QString name = QStringView(line).left(sepPos).trimmed().toString();
QStringView substitution = QStringView(line).mid(sepPos).trimmed();
sepPos = substitution.indexOf(QLatin1Char(' '));
if (sepPos >= 0)
substitution = substitution.left(sepPos).trimmed();
@@ -342,17 +343,17 @@ void LogViewXdrParser::parseDefine(const QString &a_line)
void LogViewXdrParser::parseEnum(const QString &a_line, const uint16_t a_enumSize)
{
if (QLatin1String("};") != a_line)
if (QStringLiteral("};") != a_line)
{
switch(m_State)
{
default:
if (a_line.endsWith(QLatin1String(" {")))
if (a_line.endsWith(QStringLiteral(" {")))
{
m_State = e_ParseEnum;
const QString name = a_line.leftRef(a_line.length()-2).trimmed().toString();
const QString name = QStringView(a_line).left(a_line.length()-2).trimmed().toString();
m_ActElement = new LogViewXdrStruct(name, LogViewXdrElement::e_KindEnum, a_enumSize);
if (!addToElementMap(name, m_ActElement))
{
@@ -524,7 +525,7 @@ void LogViewXdrParser::parseUnion(const QString& a_line)
if (!isNextWord("}", false))
{
QString keyword = getNextWord();
if (keyword == QLatin1String("case"))
if (keyword == QStringLiteral("case"))
{
@@ -542,7 +543,7 @@ void LogViewXdrParser::parseUnion(const QString& a_line)
type = getNextWord("Typ");
if (type.isEmpty()) return;
}
while (type == QLatin1String("case"));
while (type == QStringLiteral("case"));
getElement(type);
@@ -565,13 +566,13 @@ void LogViewXdrParser::parseUnion(const QString& a_line)
}
}
}
else if (keyword == QLatin1String("default"))
else if (keyword == QStringLiteral("default"))
{
if (isNextWord(":"))
{
QString defaultDefinition = getNextWord();
if (defaultDefinition == QLatin1String("void"))
if (defaultDefinition == QStringLiteral("void"))
{
isNextWord(";");
@@ -617,8 +618,8 @@ bool LogViewXdrParser::parseEnumLine(const QString& a_line, QString& a_name, QSt
int sepPos = line.lastIndexOf(QLatin1Char('='));
if (-1 != sepPos)
{
a_name = line.leftRef(sepPos).trimmed().toString();
a_value = line.midRef(sepPos+1).trimmed().toString();
a_name = QStringView(line).left(sepPos).trimmed().toString();
a_value = QStringView(line).mid(sepPos+1).trimmed().toString();
return true;
}
else
@@ -864,13 +865,13 @@ bool LogViewXdrParser::isNextWord(const char *a_word, const bool a_doIncrement)
void LogViewXdrParser::fillWordList(const QString& a_line)
{
QString line = a_line;
line.replace(QLatin1Char('('), QLatin1String(" ( "));
line.replace(QLatin1Char(')'), QLatin1String(" ) "));
line.replace(QLatin1Char('{'), QLatin1String(" { "));
line.replace(QLatin1Char('}'), QLatin1String(" } "));
line.replace(QLatin1Char(':'), QLatin1String(" : "));
line.replace(QLatin1Char(';'), QLatin1String(" ; "));
m_WordList = line.split(QLatin1Char(' '), QString::SkipEmptyParts);
line.replace(QLatin1Char('('), QStringLiteral(" ( "));
line.replace(QLatin1Char(')'), QStringLiteral(" ) "));
line.replace(QLatin1Char('{'), QStringLiteral(" { "));
line.replace(QLatin1Char('}'), QStringLiteral(" } "));
line.replace(QLatin1Char(':'), QStringLiteral(" : "));
line.replace(QLatin1Char(';'), QStringLiteral(" ; "));
m_WordList = line.split(QLatin1Char(' '), Qt::SkipEmptyParts);
m_WordListIndex = 0;
@@ -906,8 +907,8 @@ QString LogViewXdrParser::getNextType(bool& a_ok)
a_ok = true;
QString type = getNextWord("Typ");
if (type.isEmpty()) a_ok = false;
if (type == QLatin1String("unsigned") ||
type == QLatin1String("signed"))
if (type == QStringLiteral("unsigned") ||
type == QStringLiteral("signed"))
{
QString type2 = getNextWord("Typ");
if (type2.isEmpty()) a_ok = false;
@@ -951,7 +952,7 @@ bool LogViewXdrParser::parseBitfield(const QString& a_fieldText, int16_t& a_firs
a_lastBit = -1;
bool isLast = true;
int doublePointPos = a_fieldText.indexOf(QLatin1String(".."));
int doublePointPos = a_fieldText.indexOf(QStringLiteral(".."));
if (doublePointPos != -1)
{
QString bitText = a_fieldText.left(doublePointPos);