Skip to content
Snippets Groups Projects
Commit 71f0d3df authored by Tomas Vybiral's avatar Tomas Vybiral
Browse files

fixing docs and removing deprecated things

parent dfd44c84
No related branches found
No related tags found
No related merge requests found
......@@ -86,11 +86,6 @@ if(ENABLE_TESTING)
add_subdirectory(test)
endif()
 
if(ENABLE_FUZZING)
message("Building Fuzz Tests, using fuzzing sanitizer https://www.llvm.org/docs/LibFuzzer.html")
add_subdirectory(fuzz_test)
endif()
add_subdirectory(src)
 
option(ENABLE_UNITY "Enable Unity builds of projects" OFF)
......
<diagram program="umletino" version="14.4.0-SNAPSHOT"><zoom_level>10</zoom_level><element><id>UMLClass</id><coordinates><x>620</x><y>579</y><w>100</w><h>30</h></coordinates><panel_attributes>game</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>50</x><y>349</y><w>150</w><h>80</h></coordinates><panel_attributes>state
--
--
+save(path: std::string)
+load(path: std::string)</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>560</x><y>349</y><w>220</w><h>90</h></coordinates><panel_attributes>game_logic
--
--
+update_state(state: state)
*process_input(event: input_event)
</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>870</x><y>349</y><w>140</w><h>90</h></coordinates><panel_attributes>renderer
--
+draw(state: state)</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>140</x><y>419</y><w>500</w><h>200</h></coordinates><panel_attributes>lt=-
m1=1
m2=1
&lt; has</panel_attributes><additional_attributes>10;10;10;170;480;170</additional_attributes></element><element><id>Relation</id><coordinates><x>190</x><y>369</y><w>390</w><h>40</h></coordinates><panel_attributes>lt=.
changes</panel_attributes><additional_attributes>10;20;370;20</additional_attributes></element><element><id>Relation</id><coordinates><x>670</x><y>429</y><w>120</w><h>170</h></coordinates><panel_attributes>lt=-
m1=1
m2=1
&lt; updates state</panel_attributes><additional_attributes>10;10;10;150</additional_attributes></element><element><id>Relation</id><coordinates><x>710</x><y>429</y><w>260</w><h>190</h></coordinates><panel_attributes>lt=-
m1=1
m2=1
renders state &gt;</panel_attributes><additional_attributes>10;160;230;160;230;10</additional_attributes></element><element><id>Relation</id><coordinates><x>170</x><y>409</y><w>720</w><h>100</h></coordinates><panel_attributes>lt=.</panel_attributes><additional_attributes>10;20;10;80;660;80;660;10;700;10</additional_attributes></element><element><id>UMLClass</id><coordinates><x>350</x><y>189</y><w>130</w><h>100</h></coordinates><panel_attributes>/input_processor/
--
#input_index: int
--
+get_next_event()
+load_next_batch()
+has_events()</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>370</x><y>279</y><w>210</w><h>110</h></coordinates><panel_attributes>lt=-
m1=1
m2=1
&lt; loads events</panel_attributes><additional_attributes>10;10;10;80;190;80</additional_attributes></element><element><id>UMLClass</id><coordinates><x>280</x><y>99</y><w>120</w><h>30</h></coordinates><panel_attributes>json_event_loader</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>430</x><y>69</y><w>130</w><h>60</h></coordinates><panel_attributes>sdl_event_processor
--
#is_recording: bool</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>330</x><y>119</y><w>110</w><h>90</h></coordinates><panel_attributes>lt=&lt;&lt;-</panel_attributes><additional_attributes>10;10;10;50;90;50;90;70</additional_attributes></element><element><id>Relation</id><coordinates><x>410</x><y>119</y><w>110</w><h>90</h></coordinates><panel_attributes>lt=&lt;&lt;-</panel_attributes><additional_attributes>90;10;90;50;10;50;10;70</additional_attributes></element><element><id>UMLClass</id><coordinates><x>630</x><y>219</y><w>100</w><h>30</h></coordinates><panel_attributes>input_event
</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>470</x><y>209</y><w>180</w><h>50</h></coordinates><panel_attributes>lt=-
m1=1
m2=0..n
loads &gt;</panel_attributes><additional_attributes>10;20;160;20</additional_attributes></element><element><id>UMLClass</id><coordinates><x>570</x><y>149</y><w>100</w><h>30</h></coordinates><panel_attributes>exit_program</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>710</x><y>149</y><w>100</w><h>30</h></coordinates><panel_attributes>move_player</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>570</x><y>99</y><w>100</w><h>30</h></coordinates><panel_attributes>start_recording</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>710</x><y>99</y><w>100</w><h>30</h></coordinates><panel_attributes>end_recording
</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>660</x><y>149</y><w>50</w><h>90</h></coordinates><panel_attributes>lt=&lt;&lt;-</panel_attributes><additional_attributes>10;10;30;10;30;70</additional_attributes></element><element><id>Relation</id><coordinates><x>680</x><y>149</y><w>50</w><h>90</h></coordinates><panel_attributes>lt=&lt;&lt;-</panel_attributes><additional_attributes>30;10;10;10;10;70</additional_attributes></element><element><id>Relation</id><coordinates><x>660</x><y>109</y><w>50</w><h>130</h></coordinates><panel_attributes>lt=&lt;&lt;-</panel_attributes><additional_attributes>10;10;30;10;30;110</additional_attributes></element><element><id>Relation</id><coordinates><x>680</x><y>109</y><w>50</w><h>130</h></coordinates><panel_attributes>lt=&lt;&lt;-</panel_attributes><additional_attributes>30;10;10;10;10;110</additional_attributes></element><element><id>UMLClass</id><coordinates><x>570</x><y>50</y><w>100</w><h>30</h></coordinates><panel_attributes>shoot</panel_attributes><additional_attributes></additional_attributes></element><element><id>UMLClass</id><coordinates><x>710</x><y>50</y><w>100</w><h>30</h></coordinates><panel_attributes>change_mode</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>660</x><y>60</y><w>50</w><h>180</h></coordinates><panel_attributes>lt=&lt;&lt;-</panel_attributes><additional_attributes>10;10;30;10;30;160</additional_attributes></element><element><id>Relation</id><coordinates><x>680</x><y>60</y><w>50</w><h>180</h></coordinates><panel_attributes>lt=&lt;&lt;-</panel_attributes><additional_attributes>30;10;10;10;10;160</additional_attributes></element><element><id>UMLClass</id><coordinates><x>710</x><y>0</y><w>100</w><h>30</h></coordinates><panel_attributes>push_state</panel_attributes><additional_attributes></additional_attributes></element><element><id>Relation</id><coordinates><x>680</x><y>0</y><w>50</w><h>240</h></coordinates><panel_attributes>lt=&lt;&lt;-</panel_attributes><additional_attributes>30;10;10;10;10;220</additional_attributes></element><element><id>Relation</id><coordinates><x>660</x><y>0</y><w>50</w><h>240</h></coordinates><panel_attributes>lt=&lt;&lt;-</panel_attributes><additional_attributes>10;10;30;10;30;220</additional_attributes></element><element><id>UMLClass</id><coordinates><x>570</x><y>0</y><w>100</w><h>30</h></coordinates><panel_attributes>pop_state</panel_attributes><additional_attributes></additional_attributes></element></diagram>
\ No newline at end of file
# A fuzz test runs until it finds an error. This particular one is going to rely on libFuzzer.
#
add_executable(fuzz_tester fuzz_tester.cpp)
target_link_libraries(
fuzz_tester
PRIVATE project_options
project_warnings
CONAN_PKG::fmt
-coverage
-fsanitize=fuzzer,undefined,address)
target_compile_options(fuzz_tester PRIVATE -fsanitize=fuzzer,undefined,address)
# Allow short runs during automated testing to see if something new breaks
set(FUZZ_RUNTIME
10
CACHE STRING "Number of seconds to run fuzz tests during ctest run") # Default of 10 seconds
add_test(NAME fuzz_tester_run COMMAND fuzz_tester -max_total_time=${FUZZ_RUNTIME})
#include <iterator>
#include <utility>
#include <fmt/format.h>
[[nodiscard]] auto sum_values(const uint8_t *Data, size_t Size)
{
constexpr auto scale = 1000;
int value = 0;
for (std::size_t offset = 0; offset < Size; ++offset) {
value += static_cast<int>(*std::next(Data, static_cast<long>(offset))) * scale;
}
return value;
}
// Fuzzer that attempts to invoke undefined behavior for signed integer overflow
// cppcheck-suppress unusedFunction symbolName=LLVMFuzzerTestOneInput
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size)
{
fmt::print("Value sum: {}, len{}\n", sum_values(Data,Size), Size);
return 0;
}
......@@ -17,7 +17,7 @@ T max(const T& a, const T& b) {
}
 
 
/// Helper class that helps to keep value in specified range.
/// @brief Helper class that helps to keep value in specified range.
/// Since it is templated it needs to be defined in header. (Actually it might not be if I not use it some other library)
template<typename T>
class ranged_value {
......
......@@ -10,7 +10,7 @@
 
 
 
/// This class stores games state. Also it can store history of all previous states.
/// @brief This class stores games state. Also it can store history of all previous states.
/// This is what is serialized while saving/loading the game.
class state {
public:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment