mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-10-17 03:59:19 +02:00
- test::definition_error for unusable test vehicle definitions instead of std::runtime_error (S112) - the rows of a table section written by a function of their own, less nesting in definition::text() (S134) - std::less<> for the section table (S6045) - comments in the empty methods of the reseeding listener and stub (S1186) - NOSONAR where the engine's headers fix the stubs: the extern globals and the member function signatures (S5421, S5817, S1238) - NOSONAR on LoadFIZ_Parse(): the cognitive complexity is the former body of LoadFIZ(), moved as it was (S3776) - a comment Sonar took for code reworded (S125) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
82 lines
2.7 KiB
C++
82 lines
2.7 KiB
C++
// stand-ins for the parts of the engine which the core library (eu07_core) links against, but which the
|
|
// unit tests don't exercise. when a change makes the library use something new from the engine and the
|
|
// test build fails to link, either move the real source into the library (CORE_SOURCES in the main
|
|
// CMakeLists.txt, if it stands on its own) or add a stub here.
|
|
|
|
#include "stdafx.h"
|
|
#include "utilities/Globals.h"
|
|
#include "utilities/Logs.h"
|
|
#include "scene/scenenodegroups.h"
|
|
#include "scene/scenelayers.h"
|
|
|
|
#include <cstdlib>
|
|
#include <iostream>
|
|
|
|
// settings ---------------------------------------------------------------------------------------
|
|
|
|
global_settings &GetGlobalSettings() {
|
|
// defaults, as before reading eu07.ini
|
|
static global_settings settings;
|
|
return settings;
|
|
}
|
|
|
|
// logs: quiet, unless EU07_UNIT_TESTS_LOG is set --------------------------------------------------
|
|
|
|
namespace {
|
|
bool log_enabled() {
|
|
static bool const enabled{std::getenv("EU07_UNIT_TESTS_LOG") != nullptr};
|
|
return enabled;
|
|
}
|
|
} // namespace
|
|
|
|
void WriteLog(const char *str, logtype const, bool const isError) {
|
|
if (log_enabled() && str != nullptr) {
|
|
(isError ? std::cerr : std::cout) << str << "\n";
|
|
}
|
|
}
|
|
|
|
void WriteLog(const std::string &str, logtype const Type) {
|
|
WriteLog(str.c_str(), Type, false);
|
|
}
|
|
|
|
void ErrorLog(const std::string &str, logtype const Type) {
|
|
WriteLog(str.c_str(), Type, true);
|
|
}
|
|
|
|
// scenery structure, which the parser reports include directives to --------------------------------
|
|
// the declarations come from the engine's headers, the stubs can't change them (hence the NOSONARs)
|
|
|
|
namespace scene {
|
|
|
|
node_groups Groups; // NOSONAR the engine's extern global, scene/scenenodegroups.h
|
|
node_layers Layers; // NOSONAR the engine's extern global, scene/scenelayers.h
|
|
|
|
group_handle node_groups::create(bool const) { // NOSONAR signature from scene/scenenodegroups.h
|
|
return null_handle;
|
|
}
|
|
|
|
group_handle node_groups::close() { // NOSONAR signature from scene/scenenodegroups.h
|
|
return null_handle;
|
|
}
|
|
|
|
layer_handle node_layers::open(std::string const &, include_site) { // NOSONAR signature from scene/scenelayers.h
|
|
return null_handle;
|
|
}
|
|
|
|
layer_handle node_layers::close() { // NOSONAR signature from scene/scenelayers.h
|
|
return null_handle;
|
|
}
|
|
|
|
void node_layers::instance_begin(std::string const &, source_span const &) { // NOSONAR signature from scene/scenelayers.h
|
|
// no layers in the tests, so nothing to keep track of
|
|
}
|
|
|
|
// basic_node has no key function for the Itanium C++ ABI (tooltip() is declared plain but defined inline), so
|
|
// GCC and Clang emit its vtable wherever scenenode.h is used, here too, and the vtable wants radius_().
|
|
// the same as the game's, in scene/scenenode.cpp
|
|
float basic_node::radius_() {
|
|
return 0.f;
|
|
}
|
|
|
|
} // namespace scene
|