From 7011be6f86fcdc3b3f379cdaba99408acc38aa7a Mon Sep 17 00:00:00 2001 From: Scott Smith Date: Mon, 15 Nov 2021 16:44:39 -0800 Subject: [PATCH] Test for stack use after free in ASAN. (#3552) Fix two cases that didn't affect the product, but did affect our ability to test. --- .github/workflows/build-unit-tests.yaml | 2 +- .github/workflows/gen-configs.yaml | 2 +- .../tests/sensor/test_turbocharger_speed_converter.cpp | 9 +++++---- unit_tests/tests/sensor/test_vehicle_speed_converter.cpp | 9 +++++---- 4 files changed, 12 insertions(+), 10 deletions(-) diff --git a/.github/workflows/build-unit-tests.yaml b/.github/workflows/build-unit-tests.yaml index 8eabeb7269..d15630b4cf 100644 --- a/.github/workflows/build-unit-tests.yaml +++ b/.github/workflows/build-unit-tests.yaml @@ -56,7 +56,7 @@ jobs: - name: Run Tests working-directory: ./unit_tests/ - run: build/rusefi_test + run: ASAN_OPTIONS=detect_stack_use_after_return=1 build/rusefi_test - name: Install Coverage Tools if: ${{ matrix.os != 'macos-latest' }} diff --git a/.github/workflows/gen-configs.yaml b/.github/workflows/gen-configs.yaml index a44892f0f0..04de467b3b 100644 --- a/.github/workflows/gen-configs.yaml +++ b/.github/workflows/gen-configs.yaml @@ -82,7 +82,7 @@ jobs: - name: Run Tests working-directory: ./unit_tests/ - run: build/rusefi_test + run: ASAN_OPTIONS=detect_stack_use_after_return=1 build/rusefi_test # Commit changes and catch the error that occurs if nothing has been changed (without catching other errors) - name: Commit fresh triggers.txt diff --git a/unit_tests/tests/sensor/test_turbocharger_speed_converter.cpp b/unit_tests/tests/sensor/test_turbocharger_speed_converter.cpp index 8ed64f03cb..9b270fb6d4 100644 --- a/unit_tests/tests/sensor/test_turbocharger_speed_converter.cpp +++ b/unit_tests/tests/sensor/test_turbocharger_speed_converter.cpp @@ -6,14 +6,15 @@ static constexpr engine_type_e ENGINE_TEST_HELPER = TEST_ENGINE; class TurbochargerSpeedConverterTest : public ::testing::Test { public: + EngineTestHelper eth; TurbochargerSpeedConverter dut; - TurbochargerSpeedConverterTest(){ - + TurbochargerSpeedConverterTest() + : eth(ENGINE_TEST_HELPER, std::unordered_map{}) { } void SetUp() override { - WITH_ENGINE_TEST_HELPER(ENGINE_TEST_HELPER); + EXPAND_EngineTestHelper; dut.inject(PASS_ENGINE_PARAMETER_SIGNATURE); } @@ -72,4 +73,4 @@ TEST_F(TurbochargerSpeedConverterTest, zeroCoefReturnsZeroSpeedOnAnyInput) { ASSERT_TRUE(result.Valid); ASSERT_FLOAT_EQ(0.0f, result.Value); } -} \ No newline at end of file +} diff --git a/unit_tests/tests/sensor/test_vehicle_speed_converter.cpp b/unit_tests/tests/sensor/test_vehicle_speed_converter.cpp index 0b72d11cf3..7166238800 100644 --- a/unit_tests/tests/sensor/test_vehicle_speed_converter.cpp +++ b/unit_tests/tests/sensor/test_vehicle_speed_converter.cpp @@ -6,14 +6,15 @@ static constexpr engine_type_e ENGINE_TEST_HELPER = TEST_ENGINE; class VehicleSpeedConverterTest : public ::testing::Test { public: + EngineTestHelper eth; VehicleSpeedConverter dut; - VehicleSpeedConverterTest(){ - + VehicleSpeedConverterTest() + : eth(ENGINE_TEST_HELPER, std::unordered_map{}) { } void SetUp() override { - WITH_ENGINE_TEST_HELPER(ENGINE_TEST_HELPER); + EXPAND_EngineTestHelper; dut.inject(PASS_ENGINE_PARAMETER_SIGNATURE); } @@ -72,4 +73,4 @@ TEST_F(VehicleSpeedConverterTest, zeroCoefReturnsZeroSpeedOnAnyInput) { ASSERT_TRUE(result.Valid); ASSERT_FLOAT_EQ(0.0f, result.Value); } -} \ No newline at end of file +}