From 1111c557e6ee3f532e0d8e372391501c5a2e0bfe Mon Sep 17 00:00:00 2001 From: Mateusz Krajewski Date: Fri, 28 Nov 2025 19:30:03 +0100 Subject: [PATCH 1/2] add ut config wchich fix ut errors after release 0.0.6SQFTU --- .bazelrc | 5 ++++- BUILD | 11 +++++++++-- WORKSPACE | 2 +- apps/fc/gps_service/gps_app.cpp | 7 +++---- core/gpio/gpio_driver.cpp | 2 +- core/gpio/gpio_driver.hpp | 2 +- core/gpio/sim_gpio_driver.cpp | 27 +++++++++++++-------------- tools/coverage/coverage.sh | 24 +++++++++++++++++++++++- tools/coverage/generate_html.sh | 2 +- tools/ut/unittest.sh | 2 +- 10 files changed, 57 insertions(+), 27 deletions(-) diff --git a/.bazelrc b/.bazelrc index 894685a9..e97fd71d 100644 --- a/.bazelrc +++ b/.bazelrc @@ -4,6 +4,9 @@ build:platform_build --incompatible_enable_cc_toolchain_resolution --crosstool_t build:bbb-platform --config=platform_build --platforms=//bazel/platforms:bbb build:adaptive -c opt --copt=-O3 +build:ut --define build_mode=ut +test:ut --define build_mode=ut + build --action_env=BAZEL_CXXOPTS="-std=c++20" --config=adaptive --define srp_platform=external/srp_platform -test --test_output=all --action_env=BAZEL_CXXOPTS="-std=c++20" +test --test_output=all --action_env=BAZEL_CXXOPTS="-std=c++20" --config=ut coverage --instrument_test_targets --experimental_cc_coverage --combined_report=lcov --instrumentation_filter="[:],-external/[:]" --coverage_report_generator=@bazel_tools//tools/test/CoverageOutputGenerator/java/com/google/devtools/coverageoutputgenerator:Main \ No newline at end of file diff --git a/BUILD b/BUILD index 71054470..ebca3c60 100644 --- a/BUILD +++ b/BUILD @@ -1,6 +1,13 @@ config_setting( name = "sim", define_values = { - "build_mode": "sim" - }, + "build_mode": "sim", + }, +) + +config_setting( + name = "ut", + define_values = { + "build_mode": "ut", + }, ) diff --git a/WORKSPACE b/WORKSPACE index 23c012f6..2a7020e1 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -8,7 +8,7 @@ load("//third_party:deps.bzl", "deps") deps() load("//bazel/libs:third_party_repositories.bzl", "include_srp_platform", "include_srp_mavlink", "include_gtest_mock", "include_json") -include_srp_platform("0.0.6SQF") +include_srp_platform("0.0.6SQFU") load("@srp_platform//:download.bzl", "download") download() diff --git a/apps/fc/gps_service/gps_app.cpp b/apps/fc/gps_service/gps_app.cpp index ea6a4b2c..99a6ff46 100644 --- a/apps/fc/gps_service/gps_app.cpp +++ b/apps/fc/gps_service/gps_app.cpp @@ -44,10 +44,9 @@ std::optional GPSApp::ParseGPSData(const std::vector& return std::nullopt; } auto someip_data = GetSomeIPData(res.value()); - // TODO(matikrajek42@gmail.com) uncoment afer basn advice - // ara::log::LogDebug() << "GPS latitude: " << someip_data.latitude - // << ", longtitude: " << someip_data.longitude << ",height(M):" - // << res.value().height << "satelite_nr: " << res.value().satellite_nr; + ara::log::LogDebug() << "GPS latitude: " << someip_data.latitude + << ", longtitude: " << someip_data.longitude << ",height(M):" + << res.value().height << "satelite_nr: " << res.value().satellite_nr; return someip_data; } diff --git a/core/gpio/gpio_driver.cpp b/core/gpio/gpio_driver.cpp index c8cb6b6e..e3a72912 100644 --- a/core/gpio/gpio_driver.cpp +++ b/core/gpio/gpio_driver.cpp @@ -22,7 +22,7 @@ namespace { } GpioDriver::GpioDriver(std::unique_ptr file): file_(std::move(file)) -// , gpio_logger_{ara::log::LoggingMenager::GetInstance()->CreateLogger("gpio", "", ara::log::LogLevel::kInfo)} +, gpio_logger_{ara::log::LoggingMenager::GetInstance()->CreateLogger("gpio", "", ara::log::LogLevel::kInfo)} {} GpioDriver::~GpioDriver() {} diff --git a/core/gpio/gpio_driver.hpp b/core/gpio/gpio_driver.hpp index 82460df0..859ce916 100644 --- a/core/gpio/gpio_driver.hpp +++ b/core/gpio/gpio_driver.hpp @@ -27,7 +27,7 @@ namespace gpio { class GpioDriver: public IGpioDriver{ protected: std::unique_ptr file_; - // ara::log::Logger gpio_logger_; + ara::log::Logger gpio_logger_; public: explicit GpioDriver(std::unique_ptr file); diff --git a/core/gpio/sim_gpio_driver.cpp b/core/gpio/sim_gpio_driver.cpp index fce51b3e..35cfe38d 100644 --- a/core/gpio/sim_gpio_driver.cpp +++ b/core/gpio/sim_gpio_driver.cpp @@ -22,20 +22,19 @@ namespace { constexpr std::string kGpioPath = "/sys/class/gpio"; } -GpioDriver::GpioDriver(std::unique_ptr file):file_(std::move(file)) { -// gpio_logger_{ara::log::LoggingMenager::GetInstance()->CreateLogger("GPIO", "", ara::log::LogLevel::kDebug)}, -} +GpioDriver::GpioDriver(std::unique_ptr file):file_(std::move(file)), +gpio_logger_{ara::log::LoggingMenager::GetInstance()->CreateLogger("GPIO", "", ara::log::LogLevel::kDebug)} {} GpioDriver::~GpioDriver() {} core::ErrorCode GpioDriver::unregisterPin(const uint16_t& pinNumber) { - // ara::log::LogInfo() << "Unregister PIN with ID:" << pinNumber; + ara::log::LogInfo() << "Unregister PIN with ID:" << pinNumber; return core::ErrorCode::kOk; } core::ErrorCode GpioDriver::initializePin(const uint16_t& pinNumber, const direction_t& direction) { - // ara::log::LogInfo() << "Initialize PIN with ID:" << pinNumber - // << "direction:" << ((direction == direction_t::IN) ? "IN" : "OUT"); + ara::log::LogInfo() << "Initialize PIN with ID:" << pinNumber + << "direction:" << ((direction == direction_t::IN) ? "IN" : "OUT"); return core::ErrorCode::kOk; } @@ -45,28 +44,28 @@ std::string GpioDriver::getEndpointPath(const uint16_t& pinNumber, const std::st } core::ErrorCode GpioDriver::setValue(const uint16_t& pinNumber , const uint8_t& value) { - // ara::log::LogInfo() << "SET VALUE PIN with ID:" << pinNumber - // << "value:" << std::to_string(static_cast(value)); + ara::log::LogInfo() << "SET VALUE PIN with ID:" << pinNumber + << "value:" << std::to_string(static_cast(value)); return core::ErrorCode::kOk; } core::ErrorCode GpioDriver::setDirection(const uint16_t& pinNumber , const direction_t& direction) { - // ara::log::LogInfo() << "SET DIRECTION PIN with ID:" << pinNumber - // << "direction:" << ((direction == direction_t::IN) ? "IN" : "OUT"); + ara::log::LogInfo() << "SET DIRECTION PIN with ID:" << pinNumber + << "direction:" << ((direction == direction_t::IN) ? "IN" : "OUT"); return ErrorCode::kOk; } uint8_t GpioDriver::getValue(const uint16_t& pinNumber) { const uint8_t value = 1; - // ara::log::LogInfo() << "GET VALUE PIN with ID:" << pinNumber - // << "VALUE:" << value; + ara::log::LogInfo() << "GET VALUE PIN with ID:" << pinNumber + << "VALUE:" << value; return value; } direction_t GpioDriver::getDirection(const uint16_t& pinNumber) { const direction_t direction = direction_t::IN; - // ara::log::LogInfo() << "GET VALUE PIN with ID:" << pinNumber - // << "VALUE:" << ((direction == direction_t::IN) ? "IN" : "OUT"); + ara::log::LogInfo() << "GET VALUE PIN with ID:" << pinNumber + << "VALUE:" << ((direction == direction_t::IN) ? "IN" : "OUT"); return direction; } diff --git a/tools/coverage/coverage.sh b/tools/coverage/coverage.sh index b980976a..08656f22 100755 --- a/tools/coverage/coverage.sh +++ b/tools/coverage/coverage.sh @@ -12,13 +12,18 @@ else fi # Uruchomienie bazel coverage i ukrycie wyjścia -bazel coverage --nocache_test_results `bazel query 'kind(cc_test, //...)'` -s \ +bazel coverage --nocache_test_results --config=ut `bazel query 'kind(cc_test, //...)'` -s \ --instrument_test_targets \ --experimental_cc_coverage \ --combined_report=lcov \ --instrumentation_filter="[:]" \ --coverage_report_generator=@bazel_tools//tools/test/CoverageOutputGenerator/java/com/google/devtools/coverageoutputgenerator:Main +if [ $? -ne 0 ]; then + echo "❌ Bazel coverage failed. Please inspect the failing tests above." + exit 1 +fi + python3 tools/coverage/remove_external.py # Uruchomienie polecenia lcov i zapisanie wyniku do zmiennej @@ -32,4 +37,21 @@ function_coverage=$(echo "$output" | grep "functions..:" | awk '{print $2}' | se echo "Pokrycie linii: $line_coverage%" echo "Pokrycie funkcji: $function_coverage%" +# Wymagania +required_line_coverage=65 +required_function_coverage=65 + +# Sprawdzenie wymagań dla floatów +if ! awk -v val="$line_coverage" -v req="$required_line_coverage" 'BEGIN {exit !(val >= req)}'; then + echo "❌ Błąd: pokrycie linii (${line_coverage}%) jest mniejsze niż wymagane ${required_line_coverage}%." + exit 1 +fi + +if ! awk -v val="$function_coverage" -v req="$required_function_coverage" 'BEGIN {exit !(val >= req)}'; then + echo "❌ Błąd: pokrycie funkcji (${function_coverage}%) jest mniejsze niż wymagane ${required_function_coverage}%." + exit 1 +fi + +echo "✅ Pokrycie spełnia wymagania." exit 0 + diff --git a/tools/coverage/generate_html.sh b/tools/coverage/generate_html.sh index 9d530645..4ab8e5d7 100755 --- a/tools/coverage/generate_html.sh +++ b/tools/coverage/generate_html.sh @@ -1,6 +1,6 @@ #!/bin/bash export GCOV=/usr/bin/gcov-13 -bazel coverage --nocache_test_results `bazel query 'kind(cc_test, //...)'` -s \ +bazel coverage --nocache_test_results --config=ut `bazel query 'kind(cc_test, //...)'` -s \ --instrument_test_targets \ --experimental_cc_coverage \ --combined_report=lcov \ diff --git a/tools/ut/unittest.sh b/tools/ut/unittest.sh index f669bcd6..f6c0d955 100755 --- a/tools/ut/unittest.sh +++ b/tools/ut/unittest.sh @@ -1,2 +1,2 @@ #!/bin/bash -bazel test --nocache_test_results --test_output=all `bazel query 'kind(cc_test, //...)'` +bazel test --nocache_test_results --test_output=all `bazel query 'kind(cc_test, //...)'` From d35d4987d96f951bcfdb7dd9770c7bd8e395efd4 Mon Sep 17 00:00:00 2001 From: Mateusz Krajewski Date: Fri, 28 Nov 2025 19:39:57 +0100 Subject: [PATCH 2/2] add triger for merge_queue and --- .github/workflows/lint_build_test.yml | 2 ++ tools/coverage/coverage.sh | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/lint_build_test.yml b/.github/workflows/lint_build_test.yml index 75d6fc36..c6a440c4 100644 --- a/.github/workflows/lint_build_test.yml +++ b/.github/workflows/lint_build_test.yml @@ -7,6 +7,8 @@ on: pull_request: branches: - master + merge_group: + jobs: cpplint: name: CppLint Check diff --git a/tools/coverage/coverage.sh b/tools/coverage/coverage.sh index b980976a..473582d1 100755 --- a/tools/coverage/coverage.sh +++ b/tools/coverage/coverage.sh @@ -12,7 +12,7 @@ else fi # Uruchomienie bazel coverage i ukrycie wyjścia -bazel coverage --nocache_test_results `bazel query 'kind(cc_test, //...)'` -s \ +bazel coverage `bazel query 'kind(cc_test, //...)'` -s \ --instrument_test_targets \ --experimental_cc_coverage \ --combined_report=lcov \