InitDeinit tests

This commit is contained in:
myles-parfeniuk 2024-11-14 14:04:01 -08:00
parent 5b0af503ae
commit 348a18267f
4 changed files with 151 additions and 12 deletions

View File

@ -575,4 +575,6 @@ class BNO08x
static const constexpr uint8_t TARE_SET_REORIENTATION = 2U; ///< See SH2 Ref. Manual 6.4.4.3 static const constexpr uint8_t TARE_SET_REORIENTATION = 2U; ///< See SH2 Ref. Manual 6.4.4.3
static const constexpr char* TAG = "BNO08x"; ///< Class tag used for serial print statements static const constexpr char* TAG = "BNO08x"; ///< Class tag used for serial print statements
friend class BNO08xTestHelper; //allow test helper to access private members for unit tests
}; };

View File

@ -53,4 +53,44 @@ class BNO08xTestHelper
{ {
return test_imu; return test_imu;
} }
static esp_err_t call_init_config_args()
{
if (test_imu == nullptr)
return ESP_FAIL;
return test_imu->init_config_args();
}
static esp_err_t call_init_gpio()
{
if (test_imu == nullptr)
return ESP_FAIL;
return test_imu->init_gpio();
}
static esp_err_t call_init_hint_isr()
{
if (test_imu == nullptr)
return ESP_FAIL;
return test_imu->init_hint_isr();
}
static esp_err_t call_init_spi()
{
if (test_imu == nullptr)
return ESP_FAIL;
return test_imu->init_spi();
}
static esp_err_t call_launch_tasks()
{
if (test_imu == nullptr)
return ESP_FAIL;
return test_imu->launch_tasks();
}
}; };

View File

@ -7,6 +7,10 @@ void BNO08xTestSuite::run_all_tests()
void BNO08xTestSuite::run_init_deinit_tests() void BNO08xTestSuite::run_init_deinit_tests()
{ {
UNITY_BEGIN();
unity_run_tests_by_tag("[Init]", false);
UNITY_END();
UNITY_BEGIN(); UNITY_BEGIN();
unity_run_test_by_name("Full Init & Deinit"); unity_run_test_by_name("Full Init & Deinit");
UNITY_END(); UNITY_END();

View File

@ -1,10 +1,103 @@
#include "unity.h" #include "unity.h"
#include "../include/BNO08xTestHelper.hpp" #include "../include/BNO08xTestHelper.hpp"
TEST_CASE("Full Init & Deinit", "[InitDenit]") TEST_CASE("Init Config Args", "[Init]")
{
const constexpr char* TEST_TAG = "Init Config Args";
BNO08x* imu = nullptr;
BNO08xTestHelper::print_test_start_banner(TEST_TAG);
BNO08xTestHelper::print_test_msg(TEST_TAG, "Creating test IMU.");
BNO08xTestHelper::create_test_imu();
imu = BNO08xTestHelper::get_test_imu();
TEST_ASSERT_EQUAL(ESP_OK, BNO08xTestHelper::call_init_config_args());
BNO08xTestHelper::print_test_end_banner(TEST_TAG);
}
TEST_CASE("Init GPIO", "[Init]")
{
const constexpr char* TEST_TAG = "Init GPIO";
BNO08x* imu = nullptr;
BNO08xTestHelper::print_test_start_banner(TEST_TAG);
imu = BNO08xTestHelper::get_test_imu();
TEST_ASSERT_EQUAL(ESP_OK, BNO08xTestHelper::call_init_gpio());
BNO08xTestHelper::print_test_end_banner(TEST_TAG);
}
TEST_CASE("Init HINT ISR", "[Init]")
{
const constexpr char* TEST_TAG = "Init HINT_ISR";
BNO08x* imu = nullptr;
BNO08xTestHelper::print_test_start_banner(TEST_TAG);
imu = BNO08xTestHelper::get_test_imu();
TEST_ASSERT_EQUAL(ESP_OK, BNO08xTestHelper::call_init_hint_isr());
BNO08xTestHelper::print_test_end_banner(TEST_TAG);
}
TEST_CASE("Init SPI", "[Init]")
{
const constexpr char* TEST_TAG = "Init SPI";
BNO08x* imu = nullptr;
BNO08xTestHelper::print_test_start_banner(TEST_TAG);
imu = BNO08xTestHelper::get_test_imu();
TEST_ASSERT_EQUAL(ESP_OK, BNO08xTestHelper::call_init_spi());
BNO08xTestHelper::print_test_end_banner(TEST_TAG);
}
TEST_CASE("Init Tasks", "[Init]")
{
const constexpr char* TEST_TAG = "Init Tasks";
BNO08x* imu = nullptr;
BNO08xTestHelper::print_test_start_banner(TEST_TAG);
imu = BNO08xTestHelper::get_test_imu();
TEST_ASSERT_EQUAL(ESP_OK, BNO08xTestHelper::call_launch_tasks());
BNO08xTestHelper::print_test_end_banner(TEST_TAG);
}
TEST_CASE("Finish Init", "[Init]")
{
const constexpr char* TEST_TAG = "Finish Init";
BNO08x* imu = nullptr;
BNO08xTestHelper::print_test_start_banner(TEST_TAG);
imu = BNO08xTestHelper::get_test_imu();
// reset imu
TEST_ASSERT_EQUAL(true, imu->hard_reset());
// check if reason is valid
TEST_ASSERT_NOT_EQUAL(IMUResetReason::UNDEFINED, imu->get_reset_reason());
BNO08xTestHelper::print_test_msg(TEST_TAG, "Destroying test IMU.");
BNO08xTestHelper::destroy_test_imu();
BNO08xTestHelper::print_test_end_banner(TEST_TAG);
}
TEST_CASE("Full Init & Deinit", "[FullInitDenit]")
{ {
const constexpr char* TEST_TAG = "Full Init & Deinit"; const constexpr char* TEST_TAG = "Full Init & Deinit";
BNO08x* imu; BNO08x* imu = nullptr;
BNO08xTestHelper::print_test_start_banner(TEST_TAG); BNO08xTestHelper::print_test_start_banner(TEST_TAG);