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

@@ -14,8 +14,8 @@
int main(int argc, char **argv)
{
QCoreApplication::setApplicationName(QLatin1String("TTS"));
QCoreApplication::setOrganizationName(QLatin1String("RME"));
QCoreApplication::setApplicationName(QStringLiteral("TTS"));
QCoreApplication::setOrganizationName(QStringLiteral("RME"));
NGLCoreApplication app(argc, argv);
app.createLogger("tts", "log4cxx_tetratestserver.props");
@@ -26,96 +26,96 @@ int main(int argc, char **argv)
LtsCommandLineParser::LtsCommandLineParser options(LtsCommandLineParser::LtsCommandLineParser::CustomConfigFile);
options.addOption({ QStringList() << QLatin1String("p") << QLatin1String("player")
, QLatin1String("number of players to be simulated.")
, QLatin1String("Default value")
, QLatin1String("5")
options.addOption({ QStringList() << QStringLiteral("p") << QStringLiteral("player")
, QStringLiteral("number of players to be simulated.")
, QStringLiteral("Default value")
, QStringLiteral("5")
});
options.addOption({ QStringList() << QLatin1String("n") << QLatin1String("northing")
, QLatin1String("initial position UTM north.")
, QLatin1String("Default value")
, QLatin1String("77777")
options.addOption({ QStringList() << QStringLiteral("n") << QStringLiteral("northing")
, QStringLiteral("initial position UTM north.")
, QStringLiteral("Default value")
, QStringLiteral("77777")
});
options.addOption({ QStringList() << QLatin1String("e") << QLatin1String("easting")
, QLatin1String("initial position UTM east.")
, QLatin1String("Default value")
, QLatin1String("99999")
options.addOption({ QStringList() << QStringLiteral("e") << QStringLiteral("easting")
, QStringLiteral("initial position UTM east.")
, QStringLiteral("Default value")
, QStringLiteral("99999")
});
options.addOption({ QStringList() << QLatin1String("f") << QLatin1String("first-id")
, QLatin1String("first equipment ID to use.")
, QLatin1String("Default value")
, QLatin1String("1101")
options.addOption({ QStringList() << QStringLiteral("f") << QStringLiteral("first-id")
, QStringLiteral("first equipment ID to use.")
, QStringLiteral("Default value")
, QStringLiteral("1101")
});
options.addOption({ QStringList() << QLatin1String("r") << QLatin1String("pprow")
, QLatin1String("players per row.")
, QLatin1String("Default value")
, QLatin1String("25")
options.addOption({ QStringList() << QStringLiteral("r") << QStringLiteral("pprow")
, QStringLiteral("players per row.")
, QStringLiteral("Default value")
, QStringLiteral("25")
});
options.addOption({ QStringList() << QLatin1String("s") << QLatin1String("pspacing")
, QLatin1String("utm based spacing between the players.")
, QLatin1String("Default value")
, QLatin1String("100")
options.addOption({ QStringList() << QStringLiteral("s") << QStringLiteral("pspacing")
, QStringLiteral("utm based spacing between the players.")
, QStringLiteral("Default value")
, QStringLiteral("100")
});
options.addOption({ QStringList() << QLatin1String("z") << QLatin1String("issi")
, QLatin1String("DestinationIssi / HostISSI")
, QLatin1String("Default value")
, QLatin1String("2")
options.addOption({ QStringList() << QStringLiteral("z") << QStringLiteral("issi")
, QStringLiteral("DestinationIssi / HostISSI")
, QStringLiteral("Default value")
, QStringLiteral("2")
});
options.addOption({ QStringList() << QLatin1String("m") << QLatin1String("movements")
, QLatin1String("how many movements per milliseconds to make.")
, QLatin1String("Default value")
, QLatin1String("2000")
options.addOption({ QStringList() << QStringLiteral("m") << QStringLiteral("movements")
, QStringLiteral("how many movements per milliseconds to make.")
, QStringLiteral("Default value")
, QStringLiteral("2000")
});
options.addOption({ QStringList() << QLatin1String("d") << QLatin1String("death")
, QLatin1String("minimum times, after the movements timer is triggered, a dead player can revive.")
, QLatin1String("Default value")
, QLatin1String("100")
options.addOption({ QStringList() << QStringLiteral("d") << QStringLiteral("death")
, QStringLiteral("minimum times, after the movements timer is triggered, a dead player can revive.")
, QStringLiteral("Default value")
, QStringLiteral("100")
});
options.addOption({ QStringList() << QLatin1String("o") << QLatin1String("death-offset")
, QLatin1String("maximum times, after the movements timer is triggered, a dead player can revive.")
, QLatin1String("(0 -> identical to min)")
, QLatin1String("0")
options.addOption({ QStringList() << QStringLiteral("o") << QStringLiteral("death-offset")
, QStringLiteral("maximum times, after the movements timer is triggered, a dead player can revive.")
, QStringLiteral("(0 -> identical to min)")
, QStringLiteral("0")
});
options.addOption({ QStringList() << QLatin1String("t") << QLatin1String("pattern")
, QLatin1String("pattern the player has to walk [enter pattern by hand or pattern alias-name from settings file]\r\nfor more info, enter '--pattern-help'.")
, QLatin1String("Default value")
, QLatin1String("3,30,20#3,30,-20#3,-30,-20#3,-30,20")
options.addOption({ QStringList() << QStringLiteral("t") << QStringLiteral("pattern")
, QStringLiteral("pattern the player has to walk [enter pattern by hand or pattern alias-name from settings file]\r\nfor more info, enter '--pattern-help'.")
, QStringLiteral("Default value")
, QStringLiteral("3,30,20#3,30,-20#3,-30,-20#3,-30,20")
});
options.addOption({ QStringList() << QLatin1String("demand-old-broadcast-telegrams")
, QLatin1String("player demand old broadcast telegrams starting at BCI <default value>")
, QLatin1String("Default value")
, QLatin1String("0")
options.addOption({ QStringList() << QStringLiteral("demand-old-broadcast-telegrams")
, QStringLiteral("player demand old broadcast telegrams starting at BCI <default value>")
, QStringLiteral("Default value")
, QStringLiteral("0")
});
options.addOption({ QStringList() << QLatin1String("deactivate-single-mines")
, QLatin1String("the first player deactivates single mines with ids from minimum-mine-id to maximum-mine-id")
options.addOption({ QStringList() << QStringLiteral("deactivate-single-mines")
, QStringLiteral("the first player deactivates single mines with ids from minimum-mine-id to maximum-mine-id")
});
options.addOption({ QStringList() << QLatin1String("minimum-mine-id")
, QLatin1String("sets the value for minimum-mine-id used within deactivate-single-mines command")
, QLatin1String("Default value")
, QLatin1String("minimum-mine-id 2048")
options.addOption({ QStringList() << QStringLiteral("minimum-mine-id")
, QStringLiteral("sets the value for minimum-mine-id used within deactivate-single-mines command")
, QStringLiteral("Default value")
, QStringLiteral("minimum-mine-id 2048")
});
options.addOption({ QStringList() << QLatin1String("maximum-mine-id")
, QLatin1String("sets the value for maximum-mine-Id used within deactivate-single-mines command")
, QLatin1String("Default value")
, QLatin1String("maximum-mine-id 2100")
options.addOption({ QStringList() << QStringLiteral("maximum-mine-id")
, QStringLiteral("sets the value for maximum-mine-Id used within deactivate-single-mines command")
, QStringLiteral("Default value")
, QStringLiteral("maximum-mine-id 2100")
});
options.addOption({ QStringList() << QLatin1String("pattern-help")
, QLatin1String("help for the pattern interpreter.")
options.addOption({ QStringList() << QStringLiteral("pattern-help")
, QStringLiteral("help for the pattern interpreter.")
});
@@ -124,30 +124,30 @@ int main(int argc, char **argv)
options.showHelp();
return -1;
}
QSettings serverSettings(app.applicationDirPath() + QLatin1String("/") + options.iniFile(), QSettings::IniFormat);
QSettings serverSettings(app.applicationDirPath() + QStringLiteral("/") + options.iniFile(), QSettings::IniFormat);
TTSArgs ttsArgs;
ttsArgs.destIssi = options.isSet(QLatin1String("issi")) ? options.value(QLatin1String("issi")).toInt() : 2;
ttsArgs.cntPlayer = options.isSet(QLatin1String("player")) ? options.value(QLatin1String("player")).toInt() : 0;
int northPos_arg = options.isSet(QLatin1String("northing")) ? options.value(QLatin1String("northing")).toInt() : 77777;
int eastPos_arg = options.isSet(QLatin1String("easting")) ? options.value(QLatin1String("easting")).toInt() : 90000;
ttsArgs.destIssi = options.isSet(QStringLiteral("issi")) ? options.value(QStringLiteral("issi")).toInt() : 2;
ttsArgs.cntPlayer = options.isSet(QStringLiteral("player")) ? options.value(QStringLiteral("player")).toInt() : 0;
int northPos_arg = options.isSet(QStringLiteral("northing")) ? options.value(QStringLiteral("northing")).toInt() : 77777;
int eastPos_arg = options.isSet(QStringLiteral("easting")) ? options.value(QStringLiteral("easting")).toInt() : 90000;
ttsArgs.position = QPointF(eastPos_arg, northPos_arg);
ttsArgs.eqIdStart = options.isSet(QLatin1String("first-id")) ? options.value(QLatin1String("first-id")).toInt() : 1101;
ttsArgs.pprow = options.isSet(QLatin1String("pprow")) ? options.value(QLatin1String("pprow")).toInt() : 25;
ttsArgs.pspacing = options.isSet(QLatin1String("pspacing")) ? options.value(QLatin1String("pspacing")).toInt() : 100;
ttsArgs.movs_per_msec = options.isSet(QLatin1String("movements")) ? options.value(QLatin1String("movements")).toInt() : 2000;
ttsArgs.minimumDeathTicks = options.isSet(QLatin1String("death")) ? options.value(QLatin1String("death")).toInt() : 10;
ttsArgs.maximumDeathTicks = options.isSet(QLatin1String("death-offset")) ? options.value(QLatin1String("death-offset")).toInt() : 20;
ttsArgs.demandOldBraodcastTelegrams = options.isSet(QLatin1String("demand-old-broadcast-telegrams")) ? true : false;
ttsArgs.eqIdStart = options.isSet(QStringLiteral("first-id")) ? options.value(QStringLiteral("first-id")).toInt() : 1101;
ttsArgs.pprow = options.isSet(QStringLiteral("pprow")) ? options.value(QStringLiteral("pprow")).toInt() : 25;
ttsArgs.pspacing = options.isSet(QStringLiteral("pspacing")) ? options.value(QStringLiteral("pspacing")).toInt() : 100;
ttsArgs.movs_per_msec = options.isSet(QStringLiteral("movements")) ? options.value(QStringLiteral("movements")).toInt() : 2000;
ttsArgs.minimumDeathTicks = options.isSet(QStringLiteral("death")) ? options.value(QStringLiteral("death")).toInt() : 10;
ttsArgs.maximumDeathTicks = options.isSet(QStringLiteral("death-offset")) ? options.value(QStringLiteral("death-offset")).toInt() : 20;
ttsArgs.demandOldBraodcastTelegrams = options.isSet(QStringLiteral("demand-old-broadcast-telegrams")) ? true : false;
if (ttsArgs.demandOldBraodcastTelegrams)
ttsArgs.demandOldBraodcastTelegramsCounter = options.value(QLatin1String("demand-old-broadcast-telegrams")).toInt();
ttsArgs.deactivationSingleMines = options.isSet(QLatin1String("deactivate-single-mines")) ? true : false;
ttsArgs.minimumMineId = options.isSet(QLatin1String("minimum-mine-id")) ? options.value(QLatin1String("minimum-mine-id")).toInt() : 2048;
ttsArgs.maximumMineId = options.isSet(QLatin1String("maximum-mine-id")) ? options.value(QLatin1String("maximum-mine-id")).toInt() : 2100;
ttsArgs.pattern = options.isSet(QLatin1String("pattern")) ? options.value(QLatin1String("pattern")) : QLatin1String("3,30,20#3,30,-20#3,-30,-20#3,-30,20");
ttsArgs.demandOldBraodcastTelegramsCounter = options.value(QStringLiteral("demand-old-broadcast-telegrams")).toInt();
ttsArgs.deactivationSingleMines = options.isSet(QStringLiteral("deactivate-single-mines")) ? true : false;
ttsArgs.minimumMineId = options.isSet(QStringLiteral("minimum-mine-id")) ? options.value(QStringLiteral("minimum-mine-id")).toInt() : 2048;
ttsArgs.maximumMineId = options.isSet(QStringLiteral("maximum-mine-id")) ? options.value(QStringLiteral("maximum-mine-id")).toInt() : 2100;
ttsArgs.pattern = options.isSet(QStringLiteral("pattern")) ? options.value(QStringLiteral("pattern")) : QStringLiteral("3,30,20#3,30,-20#3,-30,-20#3,-30,20");
if (options.isSet(QLatin1String("pattern-help")))
if (options.isSet(QStringLiteral("pattern-help")))
{
options.showHelp();
return -1;
@@ -170,9 +170,9 @@ int main(int argc, char **argv)
TTServer *s = new TTServer(ttsArgs);
if (!s->listen(QHostAddress::Any, serverSettings.value(QLatin1String("Radio/Port"), 4200).toInt()))
if (!s->listen(QHostAddress::Any, serverSettings.value(QStringLiteral("Radio/Port"), 4200).toInt()))
{
ERROR_LOG(logger) << "Error listening on localhost:" << serverSettings.value(QLatin1String("Radio/Port"), 52010).toInt() << ": "
ERROR_LOG(logger) << "Error listening on localhost:" << serverSettings.value(QStringLiteral("Radio/Port"), 52010).toInt() << ": "
<< s->errorString();
delete s;
return -1;