Skip to content

Add UEFI target - #235

Open
Totto16 wants to merge 89 commits into
mainfrom
add_uefi_target
Open

Add UEFI target#235
Totto16 wants to merge 89 commits into
mainfrom
add_uefi_target

Conversation

@Totto16

@Totto16 Totto16 commented Aug 5, 2026

Copy link
Copy Markdown
Collaborator

Merge after #234

Totto16 added 30 commits July 31, 2026 13:35
- allow gcc 14 and 15 under linux
- disable sdl2_image tests for the flatpak test run
- make better wildcard, so that only installable packages are found
did rebase of main on 8602033 and that conflicts with some changes here
- especially gcc reports many error with the new strict compiler flags
- especially gcc reports many error with the new strict compiler flags
@Totto16 Totto16 self-assigned this Aug 5, 2026
@Totto16 Totto16 added the new-platform yet another platform label Aug 5, 2026
@github-actions

github-actions Bot commented Aug 5, 2026

Copy link
Copy Markdown

Cpp-Linter Report ⚠️

Some files did not pass the configured checks!

clang-format (v21.1.8) reports: 1 file(s) not formatted
  • src/lobby/uefi_client.cpp
clang-tidy (v21.1.8) reports: 68 concern(s)
  • src/executables/game/application.cpp:113:2: warning: [readability-use-concise-preprocessor-directives]

    preprocessor condition can be written more concisely using '#ifndef'

      113 | #if !defined(__OOPETRIS_NO_EXCEPTIONS)
          |  ^~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          |  ifndef __OOPETRIS_NO_EXCEPTIONS
  • src/executables/game/main.cpp:180:2: warning: [readability-use-concise-preprocessor-directives]

    preprocessor condition can be written more concisely using '#ifdef'

      180 | #if defined(__UEFI__)
          |  ^~ ~~~~~~~~~~~~~~~~~
          |  ifdef __UEFI__
  • src/helper/graphic_utils.cpp:166:2: warning: [readability-use-concise-preprocessor-directives]

    preprocessor condition can be written more concisely using '#ifndef'

      166 | #if !defined(__OOPETRIS_NO_EXCEPTIONS)
          |  ^~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          |  ifndef __OOPETRIS_NO_EXCEPTIONS
  • src/helper/graphic_utils.cpp:183:2: warning: [readability-use-concise-preprocessor-directives]

    preprocessor condition can be written more concisely using '#ifndef'

      183 | #if !defined(__OOPETRIS_NO_EXCEPTIONS)
          |  ^~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          |  ifndef __OOPETRIS_NO_EXCEPTIONS
  • src/helper/nfd_include.hpp:15:2: warning: [readability-use-concise-preprocessor-directives]

    preprocessor condition can be written more concisely using '#ifdef'

       15 | #if defined(__GNUC__)
          |  ^~ ~~~~~~~~~~~~~~~~~
          |  ifdef __GNUC__
  • src/helper/nfd_include.hpp:23:2: warning: [readability-use-concise-preprocessor-directives]

    preprocessor condition can be written more concisely using '#ifdef'

       23 | #if defined(__GNUC__)
          |  ^~ ~~~~~~~~~~~~~~~~~
          |  ifdef __GNUC__
  • src/helper/platform.cpp:52:2: warning: [readability-use-concise-preprocessor-directives]

    preprocessor condition can be written more concisely using '#elifdef'

       52 | #elif defined(__UEFI__)
          |  ^~~~ ~~~~~~~~~~~~~~~~~
          |  elifdef __UEFI__
  • src/helper/platform.cpp:81:2: warning: [readability-use-concise-preprocessor-directives]

    preprocessor condition can be written more concisely using '#elifdef'

       81 | #elif defined(__UEFI__)
          |  ^~~~ ~~~~~~~~~~~~~~~~~
          |  elifdef __UEFI__
  • src/input/input_creator.hpp:24:17: warning: [bugprone-easily-swappable-parameters]

    2 adjacent parameters of 'StartingParameters' of convertible types are easily swapped by mistake

       24 |                 u32 starting_level_a,
          |                 ^~~~~~~~~~~~~~~~~~~~~
       25 |                 u8 tetrion_index_a,
          |                 ~~~~~~~~~~~~~~~~~~
    /home/runner/work/oopetris/oopetris/src/input/input_creator.hpp:24:21: note: the first parameter in the range is 'starting_level_a'
       24 |                 u32 starting_level_a,
          |                     ^~~~~~~~~~~~~~~~
    /home/runner/work/oopetris/oopetris/src/input/input_creator.hpp:25:20: note: the last parameter in the range is 'tetrion_index_a'
       25 |                 u8 tetrion_index_a,
          |                    ^~~~~~~~~~~~~~~
    /home/runner/work/oopetris/oopetris/src/input/input_creator.hpp:24:17: note: 
       24 |                 u32 starting_level_a,
          |                 ^
    /home/runner/work/oopetris/oopetris/src/input/input_creator.hpp:25:17: note: 'u32' and 'u8' may be implicitly converted: 'u32' (as 'unsigned int') -> 'u8' (as 'unsigned char'), 'u8' (as 'unsigned char') -> 'u32' (as 'unsigned int')
       25 |                 u8 tetrion_index_a,
          |                 ^
  • src/input/joystick_input.cpp:748:2: warning: [readability-use-concise-preprocessor-directives]

    preprocessor condition can be written more concisely using '#ifndef'

      748 | #if !defined(__OOPETRIS_NO_EXCEPTIONS)
          |  ^~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          |  ifndef __OOPETRIS_NO_EXCEPTIONS
  • src/input/joystick_input.cpp:758:2: warning: [readability-use-concise-preprocessor-directives]

    preprocessor condition can be written more concisely using '#ifndef'

      758 | #if !defined(__OOPETRIS_NO_EXCEPTIONS)
          |  ^~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          |  ifndef __OOPETRIS_NO_EXCEPTIONS
  • src/libs/core/helper/date.cpp:76:2: warning: [readability-use-concise-preprocessor-directives]

    preprocessor condition can be written more concisely using '#elifdef'

       76 | #elif defined(__UEFI__)
          |  ^~~~ ~~~~~~~~~~~~~~~~~
          |  elifdef __UEFI__
  • src/libs/core/helper/date.cpp:97:2: warning: [readability-use-concise-preprocessor-directives]

    preprocessor condition can be written more concisely using '#ifdef'

       97 | #if defined(__GNUC__)
          |  ^~ ~~~~~~~~~~~~~~~~~
          |  ifdef __GNUC__
  • src/libs/core/helper/date.cpp:104:2: warning: [readability-use-concise-preprocessor-directives]

    preprocessor condition can be written more concisely using '#ifdef'

      104 | #if defined(__GNUC__)
          |  ^~ ~~~~~~~~~~~~~~~~~
          |  ifdef __GNUC__
  • src/libs/core/helper/parse_json.hpp:61:2: warning: [readability-use-concise-preprocessor-directives]

    preprocessor condition can be written more concisely using '#ifdef'

       61 | #if defined(__OOPETRIS_NO_EXCEPTIONS)
          |  ^~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          |  ifdef __OOPETRIS_NO_EXCEPTIONS
  • src/libs/core/helper/parse_json.hpp:130:2: warning: [readability-use-concise-preprocessor-directives]

    preprocessor condition can be written more concisely using '#ifdef'

      130 | #if defined(__OOPETRIS_NO_EXCEPTIONS)
          |  ^~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          |  ifdef __OOPETRIS_NO_EXCEPTIONS
  • src/libs/core/helper/sleep.cpp:23:2: warning: [readability-use-concise-preprocessor-directives]

    preprocessor condition can be written more concisely using '#ifdef'

       23 | #if defined(__UEFI__)
          |  ^~ ~~~~~~~~~~~~~~~~~
          |  ifdef __UEFI__
  • src/libs/core/helper/utils.hpp:18:2: warning: [readability-use-concise-preprocessor-directives]

    preprocessor condition can be written more concisely using '#ifdef'

       18 | #if defined(__UEFI__)
          |  ^~ ~~~~~~~~~~~~~~~~~
          |  ifdef __UEFI__
  • src/libs/core/helper/utils.hpp:133:2: warning: [readability-use-concise-preprocessor-directives]

    preprocessor condition can be written more concisely using '#ifdef'

      133 | #if defined(__OOPETRIS_NO_EXCEPTIONS)
          |  ^~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          |  ifdef __OOPETRIS_NO_EXCEPTIONS
  • src/libs/core/helper/utils.hpp:151:2: warning: [readability-use-concise-preprocessor-directives]

    preprocessor condition can be written more concisely using '#ifdef'

      151 | #if defined(__UEFI__)
          |  ^~ ~~~~~~~~~~~~~~~~~
          |  ifdef __UEFI__
  • src/libs/core/helper/utils.hpp:180:2: warning: [readability-use-concise-preprocessor-directives]

    preprocessor condition can be written more concisely using '#ifdef'

      180 | #if defined(__UEFI__)
          |  ^~ ~~~~~~~~~~~~~~~~~
          |  ifdef __UEFI__
  • src/lobby/api.cpp:97:2: warning: [readability-use-concise-preprocessor-directives]

    preprocessor condition can be written more concisely using '#ifndef'

       97 | #if !defined(__OOPETRIS_NO_EXCEPTIONS)
          |  ^~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          |  ifndef __OOPETRIS_NO_EXCEPTIONS
  • src/lobby/api.cpp:112:2: warning: [readability-use-concise-preprocessor-directives]

    preprocessor condition can be written more concisely using '#ifndef'

      112 | #if !defined(__OOPETRIS_NO_EXCEPTIONS)
          |  ^~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          |  ifndef __OOPETRIS_NO_EXCEPTIONS
  • src/lobby/credentials/secret.cpp:4:2: warning: [readability-use-concise-preprocessor-directives]

    preprocessor condition can be written more concisely using '#ifdef'

        4 | #if defined(_HAVE_KEYUTILS)
          |  ^~ ~~~~~~~~~~~~~~~~~~~~~~~
          |  ifdef _HAVE_KEYUTILS
  • src/lobby/credentials/secret.hpp:15:9: warning: [bugprone-reserved-identifier]

    declaration uses identifier '_HAVE_KEYUTILS', which is a reserved identifier

       15 | #define _HAVE_KEYUTILS
          |         ^
    note: this fix will not be applied because it overlaps with another fix
  • src/lobby/credentials/secret.hpp:15:9: warning: [readability-identifier-naming]

    invalid case style for macro definition '_HAVE_KEYUTILS'

    note: this fix will not be applied because it overlaps with another fix
  • src/lobby/credentials/secret.hpp:18:2: warning: [readability-use-concise-preprocessor-directives]

    preprocessor condition can be written more concisely using '#ifdef'

       18 | #if defined(_HAVE_KEYUTILS)
          |  ^~ ~~~~~~~~~~~~~~~~~~~~~~~
          |  ifdef _HAVE_KEYUTILS
  • src/lobby/credentials/secret.hpp:20:2: warning: [readability-use-concise-preprocessor-directives]

    preprocessor condition can be written more concisely using '#ifdef'

       20 | #if defined(__GNUC__)
          |  ^~ ~~~~~~~~~~~~~~~~~
          |  ifdef __GNUC__
  • src/lobby/credentials/secret.hpp:27:2: warning: [readability-use-concise-preprocessor-directives]

    preprocessor condition can be written more concisely using '#ifdef'

       27 | #if defined(__GNUC__)
          |  ^~ ~~~~~~~~~~~~~~~~~
          |  ifdef __GNUC__
  • src/lobby/credentials/secret.hpp:50:2: warning: [readability-use-concise-preprocessor-directives]

    preprocessor condition can be written more concisely using '#ifdef'

       50 | #if defined(_HAVE_KEYUTILS)
          |  ^~ ~~~~~~~~~~~~~~~~~~~~~~~
          |  ifdef _HAVE_KEYUTILS
  • src/lobby/uefi_client.cpp:13:17: warning: [llvm-prefer-static-over-anonymous-namespace]

    function 'get_headers' is declared in an anonymous namespace; prefer using 'static' for restricting visibility

       13 |     FetchHeader get_headers(const std::unique_ptr<emscripten_fetch_t>& request) {
          |                 ^
  • src/lobby/uefi_client.cpp:17:9: warning: [cppcoreguidelines-owning-memory]

    initializing non-owner 'auto *' with a newly created 'gsl::owner<>'

       17 |         auto* headersRawDst = new char[header_length + 1];
          |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • src/lobby/uefi_client.cpp:17:15: warning: [readability-identifier-naming]

    invalid case style for local pointer 'headersRawDst'

       17 |         auto* headersRawDst = new char[header_length + 1];
          |               ^~~~~~~~~~~~~
          |               headers_raw_dst
  • src/lobby/uefi_client.cpp:20:16: warning: [readability-identifier-naming]

    invalid case style for local pointer 'unpackedHeaders'

       20 |         char** unpackedHeaders = emscripten_fetch_unpack_response_headers(headersRawDst);
          |                ^~~~~~~~~~~~~~~
          |                unpacked_headers
       21 | 
       22 |         FetchHeader result{};
       23 | 
       24 |         u32 i = 0;
       25 |         while (true) {
       26 |             auto* headerKey = unpackedHeaders[i];
          |                               ~~~~~~~~~~~~~~~
          |                               unpacked_headers
       27 | 
       28 |             if (headerKey == nullptr) {
       29 |                 break;
       30 |             }
       31 | 
       32 |             auto* headerValue = unpackedHeaders[i + 1];
          |                                 ~~~~~~~~~~~~~~~
          |                                 unpacked_headers
  • src/lobby/uefi_client.cpp:24:13: warning: [readability-identifier-length]

    variable name 'i' is too short, expected at least 3 characters

       24 |         u32 i = 0;
          |             ^
  • src/lobby/uefi_client.cpp:26:19: warning: [readability-identifier-naming]

    invalid case style for local pointer 'headerKey'

       26 |             auto* headerKey = unpackedHeaders[i];
          |                   ^~~~~~~~~
          |                   header_key
       27 | 
       28 |             if (headerKey == nullptr) {
          |                 ~~~~~~~~~
          |                 header_key
  • src/lobby/uefi_client.cpp:26:31: warning: [cppcoreguidelines-pro-bounds-pointer-arithmetic]

    do not use pointer arithmetic

       26 |             auto* headerKey = unpackedHeaders[i];
          |                               ^
  • src/lobby/uefi_client.cpp:32:19: warning: [readability-identifier-naming]

    invalid case style for local pointer 'headerValue'

       32 |             auto* headerValue = unpackedHeaders[i + 1];
          |                   ^~~~~~~~~~~
          |                   header_value
       33 |             if (headerValue == nullptr) {
          |                 ~~~~~~~~~~~
          |                 header_value
  • src/lobby/uefi_client.cpp:32:33: warning: [cppcoreguidelines-pro-bounds-pointer-arithmetic]

    do not use pointer arithmetic

       32 |             auto* headerValue = unpackedHeaders[i + 1];
          |                                 ^
  • src/lobby/uefi_client.cpp:35:17: warning: [google-readability-todo]

    missing username/bug in TODO

       35 |                 //TODO: report that properly
          |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
          |                 // TODO(runner): report that properly
  • src/lobby/uefi_client.cpp:59:16: warning: [performance-enum-size]

    enum 'FetchReadyState' uses a larger base type ('int', size: 4 bytes) than necessary for its value set, consider using 'std::uint8_t' (1 byte) as the base type to reduce its size

       59 |     enum class FetchReadyState {
          |                ^
  • src/lobby/uefi_client.cpp:62:9: warning: [readability-identifier-naming]

    invalid case style for scoped enum constant 'HEADERS_RECEIVED'

       62 |         HEADERS_RECEIVED = 2,
          |         ^~~~~~~~~~~~~~~~
          |         HeadersReceived
  • src/lobby/uefi_client.cpp:72:1: warning: [cppcoreguidelines-pro-type-member-init]

    constructor does not initialize these fields: m_response

       72 | oopetris::http::implementation::ActualResult::ActualResult(std::unique_ptr<emscripten_fetch_t>&& request)
          | ^
  • src/lobby/uefi_client.cpp:72:98: warning: [cppcoreguidelines-rvalue-reference-param-not-moved]

    rvalue reference parameter 'request' is never moved from inside the function body

       72 | oopetris::http::implementation::ActualResult::ActualResult(std::unique_ptr<emscripten_fetch_t>&& request)
          |                                                                                                  ^
  • src/lobby/uefi_client.cpp:83:1: warning: [cppcoreguidelines-pro-type-member-init]

    constructor does not initialize these fields: m_response

       83 | oopetris::http::implementation::ActualResult::ActualResult(ActualResult&& other) noexcept
          | ^
  • src/lobby/uefi_client.cpp:100:17: warning: [cppcoreguidelines-init-variables]

    variable 'result' is not initialized

      100 |     std::string result{ m_request->data, m_request->data + size };
          |                 ^                      
          |                                         = 0
  • src/lobby/uefi_client.cpp:111:10: warning: [readability-identifier-naming]

    invalid case style for local variable 'readyState'

      111 |     auto readyState = static_cast<FetchReadyState>(m_request->readyState);
          |          ^~~~~~~~~~
          |          ready_state
      112 | 
      113 |     if (readyState != FetchReadyState::DONE) {
          |         ~~~~~~~~~~
          |         ready_state
  • src/lobby/uefi_client.cpp:123:17: warning: [llvm-prefer-static-over-anonymous-namespace]

    function 'normalize_url' is declared in an anonymous namespace; prefer using 'static' for restricting visibility

      123 |     std::string normalize_url(const std::string& value) {
          |                 ^
  • src/lobby/uefi_client.cpp:131:17: warning: [llvm-prefer-static-over-anonymous-namespace]

    function 'concat_url' is declared in an anonymous namespace; prefer using 'static' for restricting visibility

      131 |     std::string concat_url(const std::string& normalized_base, const std::string& value) {
          |                 ^
  • src/lobby/uefi_client.cpp:136:32: warning: [cppcoreguidelines-pro-bounds-pointer-arithmetic]

    do not use pointer arithmetic

      136 |         return normalized_base + "/" + value;
          |                                ^
  • src/lobby/uefi_client.cpp:136:38: warning: [cppcoreguidelines-pro-bounds-pointer-arithmetic]

    do not use pointer arithmetic

      136 |         return normalized_base + "/" + value;
          |                                      ^
  • src/lobby/uefi_client.cpp:139:41: warning: [llvm-prefer-static-over-anonymous-namespace]

    function 'make_request_impl' is declared in an anonymous namespace; prefer using 'static' for restricting visibility

      139 |     std::unique_ptr<emscripten_fetch_t> make_request_impl(
          |                                         ^
  • src/lobby/uefi_client.cpp:140:13: warning: [bugprone-easily-swappable-parameters]

    3 adjacent parameters of 'make_request_impl' of similar type are easily swapped by mistake

      140 |             const std::string& method,
          |             ^~~~~~~~~~~~~~~~~~~~~~~~~~
      141 |             const std::string& url,
          |             ~~~~~~~~~~~~~~~~~~~~~~~
      142 |             const FetchHeader& header,
          |             ~~~~~~~~~~~~~~~~~~~~~~~~~
    /home/runner/work/oopetris/oopetris/src/lobby/uefi_client.cpp:140:32: note: the first parameter in the range is 'method'
      140 |             const std::string& method,
          |                                ^~~~~~
    /home/runner/work/oopetris/oopetris/src/lobby/uefi_client.cpp:142:32: note: the last parameter in the range is 'header'
      142 |             const FetchHeader& header,
          |                                ^~~~~~
    /home/runner/work/oopetris/oopetris/src/lobby/uefi_client.cpp:140:13: note: after resolving type aliases, 'const std::string &' and 'const int &' are the same
      140 |             const std::string& method,
          |             ^
  • src/lobby/uefi_client.cpp:181:5: warning: [llvm-prefer-static-over-anonymous-namespace]

    function 'make_request' is declared in an anonymous namespace; prefer using 'static' for restricting visibility

      181 |     make_request(const std::string& method, const std::string& url, const FetchHeader& header) {
          |     ^
  • src/lobby/uefi_client.cpp:181:18: warning: [bugprone-easily-swappable-parameters]

    3 adjacent parameters of 'make_request' of similar type are easily swapped by mistake

      181 |     make_request(const std::string& method, const std::string& url, const FetchHeader& header) {
          |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /home/runner/work/oopetris/oopetris/src/lobby/uefi_client.cpp:181:37: note: the first parameter in the range is 'method'
      181 |     make_request(const std::string& method, const std::string& url, const FetchHeader& header) {
          |                                     ^~~~~~
    /home/runner/work/oopetris/oopetris/src/lobby/uefi_client.cpp:181:88: note: the last parameter in the range is 'header'
      181 |     make_request(const std::string& method, const std::string& url, const FetchHeader& header) {
          |                                                                                        ^~~~~~
    /home/runner/work/oopetris/oopetris/src/lobby/uefi_client.cpp:181:18: note: after resolving type aliases, 'const std::string &' and 'const int &' are the same
      181 |     make_request(const std::string& method, const std::string& url, const FetchHeader& header) {
          |                  ^
  • src/lobby/uefi_client.cpp:185:41: warning: [llvm-prefer-static-over-anonymous-namespace]

    function 'make_request_with_data' is declared in an anonymous namespace; prefer using 'static' for restricting visibility

      185 |     std::unique_ptr<emscripten_fetch_t> make_request_with_data(
          |                                         ^
  • src/lobby/uefi_client.cpp:186:13: warning: [bugprone-easily-swappable-parameters]

    3 adjacent parameters of 'make_request_with_data' of similar type are easily swapped by mistake

      186 |             const std::string& method,
          |             ^~~~~~~~~~~~~~~~~~~~~~~~~~
      187 |             const std::string& url,
          |             ~~~~~~~~~~~~~~~~~~~~~~~
      188 |             const FetchHeader& header,
          |             ~~~~~~~~~~~~~~~~~~~~~~~~~
    /home/runner/work/oopetris/oopetris/src/lobby/uefi_client.cpp:186:32: note: the first parameter in the range is 'method'
      186 |             const std::string& method,
          |                                ^~~~~~
    /home/runner/work/oopetris/oopetris/src/lobby/uefi_client.cpp:188:32: note: the last parameter in the range is 'header'
      188 |             const FetchHeader& header,
          |                                ^~~~~~
    /home/runner/work/oopetris/oopetris/src/lobby/uefi_client.cpp:186:13: note: after resolving type aliases, 'const std::string &' and 'const int &' are the same
      186 |             const std::string& method,
          |             ^
  • src/lobby/uefi_client.cpp:196:1: warning: [cppcoreguidelines-pro-type-member-init]

    constructor does not initialize these fields: m_headers

      196 | oopetris::http::implementation::ActualClient::ActualClient(ActualClient&& other) noexcept
          | ^
  • src/lobby/uefi_client.cpp:202:1: warning: [cppcoreguidelines-pro-type-member-init]

    constructor does not initialize these fields: m_headers

      202 | oopetris::http::implementation::ActualClient::ActualClient(const std::string& api_url)
          | ^
  • src/lobby/uefi_client.cpp:209:101: warning: [readability-make-member-function-const]

    method 'Get' can be made const

      209 | [[nodiscard]] std::unique_ptr<oopetris::http::Result> oopetris::http::implementation::ActualClient::Get(
          |                                                                                                     ^
      210 |         const std::string& url
      211 | ) {
          |   const
  • src/lobby/uefi_client.cpp:218:101: warning: [readability-make-member-function-const]

    method 'Delete' can be made const

      218 | [[nodiscard]] std::unique_ptr<oopetris::http::Result> oopetris::http::implementation::ActualClient::Delete(
          |                                                                                                     ^
      219 |         const std::string& url
      220 | ) {
          |   const
  • src/lobby/uefi_client.cpp:226:101: warning: [readability-make-member-function-const]

    method 'Post' can be made const

      226 | [[nodiscard]] std::unique_ptr<oopetris::http::Result> oopetris::http::implementation::ActualClient::Post(
          |                                                                                                     ^
      227 |         const std::string& url,
      228 |         const std::optional<std::pair<std::string, std::string>>& payload
      229 | ) {
          |   const
  • src/lobby/uefi_client.cpp:241:101: warning: [readability-make-member-function-const]

    method 'Put' can be made const

      241 | [[nodiscard]] std::unique_ptr<oopetris::http::Result> oopetris::http::implementation::ActualClient::Put(
          |                                                                                                     ^
      242 |         const std::string& url,
      243 |         const std::optional<std::pair<std::string, std::string>>& payload
      244 | ) {
          |   const
  • src/lobby/uefi_client.hpp:2:1: warning: [portability-avoid-pragma-once]

    avoid 'pragma once' directive; use include guards instead

        2 | #pragma once
          | ^
  • src/lobby/uefi_client.hpp:11:10: error: [clang-diagnostic-error]

    'Library/HttpIoLib.h' file not found

       11 | #include <Library/HttpIoLib.h>
          |          ^~~~~~~~~~~~~~~~~~~~~
  • src/scenes/main_menu/main_menu.cpp:108:14: warning: [readability-identifier-naming]

    invalid case style for local variable '_ignore'

      108 |         auto _ignore = service_provider->music_manager()
          |              ^~~~~~~
          |              ignore
      109 |                                .load_and_play_music(
      110 |                                        utils::get_assets_folder() / "music"
      111 |                                        / utils::get_supported_music_extension("01. Main Menu")
      112 |                                )
      113 |                                .and_then(utils::log_error);
      114 |         UNUSED(_ignore);
          |                ~~~~~~~
          |                ignore
  • src/scenes/replay_game/replay_game.cpp:73:14: warning: [readability-identifier-naming]

    invalid case style for local variable '_ignore'

       73 |         auto _ignore = m_service_provider->music_manager()
          |              ^~~~~~~
          |              ignore
       74 |                                .load_and_play_music(
       75 |                                        utils::get_assets_folder() / "music"
       76 |                                        / utils::get_supported_music_extension("02. Game Theme")
       77 |                                )
       78 |                                .and_then(utils::log_error);
       79 |         UNUSED(_ignore);
          |                ~~~~~~~
          |                ignore
  • src/scenes/single_player_game/game_over.cpp:35:14: warning: [readability-identifier-naming]

    invalid case style for local variable '_ignore'

       35 |         auto _ignore = service_provider->music_manager()
          |              ^~~~~~~
          |              ignore
       36 |                                .load_and_play_music(
       37 |                                        utils::get_assets_folder() / "music"
       38 |                                        / utils::get_supported_music_extension("05. Results")
       39 |                                )
       40 |                                .and_then(utils::log_error);
       41 |         UNUSED(_ignore);
          |                ~~~~~~~
          |                ignore

Have any feedback or feature suggestions? Share it here.

@github-actions

github-actions Bot commented Aug 5, 2026

Copy link
Copy Markdown

badge

Code Coverage Summary

Details
Filename                                                    Stmts    Miss  Cover    Missing
--------------------------------------------------------  -------  ------  -------  ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
src/discord/core.cpp                                          132     132  0.00%    11-251
src/discord/core.hpp                                            7       7  0.00%    99-111
src/game/bag.cpp                                               22       0  100.00%
src/game/bag.hpp                                                2       0  100.00%
src/game/command_line_arguments.cpp                             5       5  0.00%    7-16
src/game/game.cpp                                              61      61  0.00%    9-110
src/game/game.hpp                                               1       1  0.00%    16
src/game/graphic_helpers.cpp                                   42      42  0.00%    12-94
src/game/grid.cpp                                              74      74  0.00%    6-113
src/game/grid.hpp                                               0       0  100.00%
src/game/rotation.cpp                                          23      23  0.00%    5-37
src/game/simulated_tetrion.cpp                                358     287  19.83%   32-125, 139-175, 181-349, 353, 375-376, 408-410, 424, 429-455, 463-541
src/game/simulated_tetrion.hpp                                 18       7  61.11%   137-143
src/game/simulation.cpp                                        53      26  50.94%   30-39, 61-62, 81-103
src/game/simulation.hpp                                         1       0  100.00%
src/game/tetrion.cpp                                           78      78  0.00%    15-148
src/game/tetromino.cpp                                         44      24  45.45%   5-36, 42-48
src/game/tetromino.hpp                                          5       0  100.00%
src/graphics/rect.hpp                                          23      23  0.00%    16-55
src/graphics/renderer.cpp                                      76      76  0.00%    8-131
src/graphics/renderer.hpp                                      30      30  0.00%    35-79
src/graphics/sdl_context.cpp                                   14      14  0.00%    20-55
src/graphics/text.cpp                                          11      11  0.00%    34-53
src/graphics/text.hpp                                           0       0  100.00%
src/graphics/texture.cpp                                       71      71  0.00%    7-118
src/graphics/texture.hpp                                        9       9  0.00%    52-62
src/graphics/window.cpp                                        41      41  0.00%    6-62
src/helper/clock_source.cpp                                    28      28  0.00%    8-47
src/helper/clock_source.hpp                                     7       7  0.00%    13-28
src/helper/git_helper.hpp                                       2       2  0.00%    7-11
src/helper/graphic_utils.cpp                                   40      40  0.00%    10-200
src/helper/graphic_utils.hpp                                    0       0  100.00%
src/helper/message_box.cpp                                      7       7  0.00%    9-24
src/helper/music_utils.hpp                                      4       4  0.00%    9-30
src/helper/nfd.cpp                                            108     108  0.00%    22-197
src/helper/nfd_include.hpp                                      1       1  0.00%    36
src/helper/platform.cpp                                        12      12  0.00%    21-119
src/helper/platform.hpp                                         4       4  0.00%    16-40
src/input/controller_input.cpp                                162     162  0.00%    12-328
src/input/controller_input.hpp                                 52      52  0.00%    58-167
src/input/game_input.cpp                                       72      71  1.39%    8-78, 82-110
src/input/game_input.hpp                                       12       7  41.67%   59-90, 97-99
src/input/guid.cpp                                             18      18  0.00%    10-41
src/input/guid.hpp                                             46      46  0.00%    34-143
src/input/input.cpp                                           200     200  0.00%    20-429
src/input/input_creator.cpp                                    75      75  0.00%    22-161
src/input/input_creator.hpp                                     6       0  100.00%
src/input/input.hpp                                             9       9  0.00%    132-146
src/input/joystick_input.cpp                                  206     206  0.00%    18-977
src/input/joystick_input.hpp                                   77      77  0.00%    35-458
src/input/keyboard_input.cpp                                  128     128  0.00%    8-224
src/input/keyboard_input.hpp                                   53      53  0.00%    48-167
src/input/mouse_input.cpp                                      36      36  0.00%    9-80
src/input/mouse_input.hpp                                       0       0  100.00%
src/input/replay_input.cpp                                     53      49  7.55%    14-97
src/input/replay_input.hpp                                      2       0  100.00%
src/input/touch_input.cpp                                     177     177  0.00%    13-351
src/input/touch_input.hpp                                      56      56  0.00%    66-227
src/libs/core/game/mino.cpp                                    10       6  40.00%   3-4, 15-20
src/libs/core/game/mino.hpp                                     3       0  100.00%
src/libs/core/game/mino_stack.cpp                              55      46  16.36%   7-17, 21, 29-30, 36-86
src/libs/core/game/mino_stack.hpp                               0       0  100.00%
src/libs/core/game/tetromino_type.cpp                          22      22  0.00%    5-45
src/libs/core/hash-library/sha256.cpp                         417      28  93.29%   473-476, 506, 517, 523, 532, 548, 553-568, 595-606
src/libs/core/helper/bool_wrapper.hpp                          11      11  0.00%    15-37
src/libs/core/helper/color.cpp                                 86      36  58.14%   11-31, 38-53, 61, 75, 145-157, 161-164
src/libs/core/helper/color.hpp                                 95      86  9.47%    29-59, 85-113, 156-263
src/libs/core/helper/color_literals.hpp                       320      30  90.62%   412, 582, 647-694, 708-711
src/libs/core/helper/const_utils.hpp                           17       1  94.12%   82
src/libs/core/helper/date.cpp                                  46      46  0.00%    10-132
src/libs/core/helper/errors.cpp                                29      29  0.00%    3-49
src/libs/core/helper/errors.hpp                                 0       0  100.00%
src/libs/core/helper/parse_json.cpp                            29      29  0.00%    9-69
src/libs/core/helper/parse_json.hpp                            77      77  0.00%    28-193
src/libs/core/helper/point.hpp                                 32      17  46.88%   29, 34-35, 46-47, 62-78, 89-90, 109, 143-144
src/libs/core/helper/random.cpp                                14       7  50.00%   5, 11-16, 24-25
src/libs/core/helper/random.hpp                                 5       0  100.00%
src/libs/core/helper/sleep.cpp                                 15      15  0.00%    51-104
src/libs/core/helper/static_string.hpp                         30      30  0.00%    17-140
src/libs/core/helper/string_manipulation.cpp                   41       7  82.93%   16-23
src/libs/core/helper/timer.cpp                                 20      20  0.00%    6-32
src/libs/core/helper/timer.hpp                                  1       1  0.00%    18
src/libs/core/helper/utils.hpp                                 20      14  30.00%   65-141
src/libs/recordings/utility/additional_information.cpp        330     201  39.09%   9-44, 54, 59, 79-90, 93-104, 107-112, 115-120, 123-128, 139-144, 154-188, 210, 219, 228, 247, 255, 262-274, 278-290, 295-300, 305-310, 315-320, 327, 335-340, 347, 352-394, 400, 409, 412, 418, 427-428, 435-436, 447, 455, 458-460, 467-525, 546, 556-569
src/libs/recordings/utility/additional_information.hpp         23      14  39.13%   58, 62-179
src/libs/recordings/utility/checksum_helper.cpp                10       5  50.00%   7-13
src/libs/recordings/utility/checksum_helper.hpp                13       0  100.00%
src/libs/recordings/utility/helper.hpp                         81      28  65.43%   36-37, 59-60, 68, 74-75, 85, 94, 103, 110, 116, 128-156
src/libs/recordings/utility/recording.cpp                      21       3  85.71%   19-20, 45
src/libs/recordings/utility/recording.hpp                       4       0  100.00%
src/libs/recordings/utility/recording_reader.cpp              152      63  58.55%   42, 45, 52, 55-57, 63, 72, 80, 92, 95-97, 131, 137, 143, 147-148, 153, 161-208, 214-215, 222-223, 229-230, 241-242, 248-249, 256-257, 263-264, 268-269, 275-277
src/libs/recordings/utility/recording_reader.hpp                0       0  100.00%
src/libs/recordings/utility/recording_writer.cpp               90      90  0.00%    5-184
src/libs/recordings/utility/recording_writer.hpp                6       6  0.00%    55-62
src/libs/recordings/utility/tetrion_core_information.hpp        6       0  100.00%
src/libs/recordings/utility/tetrion_snapshot.cpp              110      70  36.36%   32, 37, 42, 47, 52, 57, 65, 70, 75, 80-81, 105-225
src/libs/recordings/utility/tetrion_snapshot.hpp                0       0  100.00%
src/lobby/api.cpp                                             145     145  0.00%    32-304
src/lobby/client.cpp                                           42      42  0.00%    10-116
src/lobby/client.hpp                                           12      12  0.00%    81-100
src/lobby/httplib_client.cpp                                   52      52  0.00%    8-122
src/lobby/types.hpp                                            13      13  0.00%    15-82
src/lobby/credentials/buffer.cpp                               30      30  0.00%    7-51
src/lobby/credentials/buffer.hpp                                1       1  0.00%    13
src/lobby/credentials/secret.cpp                               68      68  0.00%    16-148
src/manager/event_dispatcher.hpp                               37      37  0.00%    39-123
src/manager/event_listener.hpp                                  6       6  0.00%    6-19
src/manager/font.cpp                                           13      13  0.00%    5-21
src/manager/font.hpp                                            2       2  0.00%    19-20
src/manager/music_manager.cpp                                 234     234  0.00%    17-421
src/manager/music_manager.hpp                                  13      13  0.00%    33-86
src/manager/resource_manager.hpp                                2       2  0.00%    30-31
src/manager/sdl_controller_key.cpp                             18      18  0.00%    5-34
src/manager/sdl_controller_key.hpp                              3       3  0.00%    34-36
src/manager/sdl_key.cpp                                       222      29  86.94%   27, 75-76, 154-156, 205-211, 222-223, 230, 288, 313, 367-368, 418-436, 446-447
src/manager/sdl_key.hpp                                         3       3  0.00%    119-121
src/manager/settings.cpp                                       18      18  0.00%    10-34
src/manager/settings.hpp                                       34      34  0.00%    20-73
src/manager/settings_manager.cpp                               44      44  0.00%    21-140
src/scenes/scene.cpp                                           18      18  0.00%    15-56
src/scenes/scene.hpp                                           13      13  0.00%    25-75
src/scenes/about_page/about_page.cpp                           62      62  0.00%    19-121
src/scenes/about_page/about_page.hpp                            1       1  0.00%    13
src/scenes/loading_screen/loading_screen.cpp                   68      68  0.00%    16-127
src/scenes/logo/logo.cpp                                       25      25  0.00%    11-147
src/scenes/main_menu/main_menu.cpp                            102     102  0.00%    13-175
src/scenes/main_menu/main_menu.hpp                              0       0  100.00%
src/scenes/multiplayer_menu/multiplayer_menu.cpp               76      76  0.00%    12-129
src/scenes/multiplayer_menu/multiplayer_menu.hpp                0       0  100.00%
src/scenes/online_lobby/online_lobby.cpp                       87      87  0.00%    19-157
src/scenes/online_lobby/online_lobby.hpp                        0       0  100.00%
src/scenes/play_select_menu/play_select_menu.cpp               76      76  0.00%    11-129
src/scenes/play_select_menu/play_select_menu.hpp                0       0  100.00%
src/scenes/recording_selector/recording_chooser.cpp            75      75  0.00%    12-136
src/scenes/recording_selector/recording_chooser.hpp             0       0  100.00%
src/scenes/recording_selector/recording_component.cpp          93      93  0.00%    13-162
src/scenes/recording_selector/recording_component.hpp           1       1  0.00%    22
src/scenes/recording_selector/recording_selector.cpp          130     130  0.00%    30-235
src/scenes/recording_selector/recording_selector.hpp            3       3  0.00%    23-36
src/scenes/replay_game/replay_game.cpp                         84      84  0.00%    14-169
src/scenes/replay_game/replay_game.hpp                          0       0  100.00%
src/scenes/settings_menu/color_setting_row.cpp                131     131  0.00%    16-248
src/scenes/settings_menu/color_setting_row.hpp                  1       1  0.00%    48
src/scenes/settings_menu/settings_details.hpp                   1       1  0.00%    11
src/scenes/settings_menu/settings_menu.cpp                    167     167  0.00%    22-279
src/scenes/settings_menu/settings_menu.hpp                      6       6  0.00%    29-53
src/scenes/single_player_game/game_over.cpp                    38      38  0.00%    14-71
src/scenes/single_player_game/game_over.hpp                     1       1  0.00%    10
src/scenes/single_player_game/pause.cpp                        37      37  0.00%    11-63
src/scenes/single_player_game/pause.hpp                         1       1  0.00%    12
src/scenes/single_player_game/single_player_game.cpp           76      76  0.00%    20-143
src/scenes/single_player_game/single_player_game.hpp            0       0  100.00%
src/ui/focusable.hpp                                           26      26  0.00%    15-66
src/ui/hoverable.hpp                                           31      31  0.00%    17-80
src/ui/layout.cpp                                              35      35  0.00%    4-66
src/ui/layout.hpp                                              36      36  0.00%    21-146
src/ui/widget.cpp                                               4       4  0.00%    7-12
src/ui/widget.hpp                                              12      12  0.00%    29-56
src/ui/components/abstract_slider.hpp                         128     128  0.00%    27-242
src/ui/components/button.hpp                                   54      54  0.00%    30-131
src/ui/components/color_picker.cpp                            322     322  0.00%    17-565
src/ui/components/color_picker.hpp                              1       1  0.00%    51
src/ui/components/image_button.cpp                             12      12  0.00%    5-27
src/ui/components/image_button.hpp                              0       0  100.00%
src/ui/components/image_view.cpp                               16      16  0.00%    5-34
src/ui/components/image_view.hpp                                0       0  100.00%
src/ui/components/label.cpp                                    15      15  0.00%    6-36
src/ui/components/label.hpp                                     0       0  100.00%
src/ui/components/link_label.cpp                               43      43  0.00%    6-81
src/ui/components/link_label.hpp                                0       0  100.00%
src/ui/components/slider.cpp                                   39      39  0.00%    7-75
src/ui/components/slider.hpp                                    0       0  100.00%
src/ui/components/text_button.cpp                              33      33  0.00%    5-65
src/ui/components/text_button.hpp                               0       0  100.00%
src/ui/components/textinput.cpp                               301     301  0.00%    17-550
src/ui/components/textinput.hpp                                 2       2  0.00%    21-30
src/ui/layouts/focus_layout.cpp                               169     169  0.00%    10-296
src/ui/layouts/focus_layout.hpp                                29      29  0.00%    48-107
src/ui/layouts/grid_layout.cpp                                 45      45  0.00%    5-74
src/ui/layouts/grid_layout.hpp                                  0       0  100.00%
src/ui/layouts/scroll_layout.cpp                              227     227  0.00%    6-394
src/ui/layouts/scroll_layout.hpp                               14      14  0.00%    53-91
src/ui/layouts/tile_layout.cpp                                 40      40  0.00%    5-57
src/ui/layouts/tile_layout.hpp                                  9       9  0.00%    31-49
TOTAL                                                        9123    7550  17.24%

Results for commit: f61399e

Minimum allowed coverage is 0%

♻️ This comment has been updated with latest results

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

new-platform yet another platform

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant