From 67f2ac5b62dc77d52a79850a2fb1997517ac0300 Mon Sep 17 00:00:00 2001 From: Ladislas de Toldi Date: Fri, 25 Nov 2022 15:35:59 +0100 Subject: [PATCH] :white_check_mark: (tests): on device - add deep sleep core buffered serial tests --- tests/functional/CMakeLists.txt | 1 + .../CMakeLists.txt | 16 +++ .../suite_core_buffered_serial.cpp | 110 ++++++++++++++++++ 3 files changed, 127 insertions(+) create mode 100644 tests/functional/tests/deep_sleep_core_buffered_serial/CMakeLists.txt create mode 100644 tests/functional/tests/deep_sleep_core_buffered_serial/suite_core_buffered_serial.cpp diff --git a/tests/functional/CMakeLists.txt b/tests/functional/CMakeLists.txt index c79973d95c..0491fe8c24 100644 --- a/tests/functional/CMakeLists.txt +++ b/tests/functional/CMakeLists.txt @@ -40,6 +40,7 @@ endfunction() add_subdirectory(${TESTS_FUNCTIONAL_TESTS_DIR}/boost_ut) add_subdirectory(${TESTS_FUNCTIONAL_TESTS_DIR}/core_imu) +add_subdirectory(${TESTS_FUNCTIONAL_TESTS_DIR}/deep_sleep_core_buffered_serial) add_subdirectory(${TESTS_FUNCTIONAL_TESTS_DIR}/deep_sleep_log_kit) add_subdirectory(${TESTS_FUNCTIONAL_TESTS_DIR}/deep_sleep_mbed_hal) add_subdirectory(${TESTS_FUNCTIONAL_TESTS_DIR}/file_manager) diff --git a/tests/functional/tests/deep_sleep_core_buffered_serial/CMakeLists.txt b/tests/functional/tests/deep_sleep_core_buffered_serial/CMakeLists.txt new file mode 100644 index 0000000000..7a095bc43d --- /dev/null +++ b/tests/functional/tests/deep_sleep_core_buffered_serial/CMakeLists.txt @@ -0,0 +1,16 @@ +# Leka - LekaOS +# Copyright 2022 APF France handicap +# SPDX-License-Identifier: Apache-2.0 + +register_functional_test( + TARGET + functional_ut_deep_sleep_core_buffered_serial + + INCLUDE_DIRECTORIES + + SOURCES + suite_core_buffered_serial.cpp + + LINK_LIBRARIES + CoreBufferedSerial +) diff --git a/tests/functional/tests/deep_sleep_core_buffered_serial/suite_core_buffered_serial.cpp b/tests/functional/tests/deep_sleep_core_buffered_serial/suite_core_buffered_serial.cpp new file mode 100644 index 0000000000..928256e76a --- /dev/null +++ b/tests/functional/tests/deep_sleep_core_buffered_serial/suite_core_buffered_serial.cpp @@ -0,0 +1,110 @@ +// Leka - LekaOS +// Copyright 2022 APF France handicap +// SPDX-License-Identifier: Apache-2.0 + +#include + +#include "CoreBufferedSerial.h" +#include "tests/config.h" +#include "tests/utils.h" +#include "tests/utils_sleep.h" + +using namespace leka; +using namespace boost::ut; +using namespace std::chrono; +using namespace boost::ut::bdd; + +suite suite_core_buffered_serial = [] { + scenario("default configuration") = [] { + given("serial is in default configuration") = [] { + auto serial = CoreBufferedSerial(RFID_UART_TX, RFID_UART_RX, 57600); + + expect(neq(&serial, nullptr)); + // }; + when("I do nothing") = [] { + then("I expect deep sleep to not be possible") = [] { + auto status = utils::sleep::system_deep_sleep_check(); + + expect(not status.can_deep_sleep); + expect(not status.test_check_ok); + }; + }; + }; + }; + + scenario("disable input") = [] { + given("serial is in default configuration") = [] { + auto serial = CoreBufferedSerial(RFID_UART_TX, RFID_UART_RX, 57600); + + expect(neq(&serial, nullptr)); + + when("I disable input") = [&] { + serial.disable_input(); + + then("I expect deep sleep to be possible") = [] { + auto status = utils::sleep::system_deep_sleep_check(); + + expect(status.can_deep_sleep); + expect(status.test_check_ok); + }; + }; + }; + }; + + scenario("default, disable, enable, disable input") = [] { + given("serial is in default configuration") = [] { + auto serial = CoreBufferedSerial(RFID_UART_TX, RFID_UART_RX, 57600); + + expect(neq(&serial, nullptr)); + + when("I do nothing") = [] { + then("I expect deep sleep to not be possible") = [] { + auto status = utils::sleep::system_deep_sleep_check(); + + expect(not status.can_deep_sleep); + expect(not status.test_check_ok); + }; + }; + + when("I disable input") = [&] { + serial.disable_input(); + + then("I expect deep sleep to be possible") = [] { + auto status = utils::sleep::system_deep_sleep_check(); + + expect(status.can_deep_sleep); + expect(status.test_check_ok); + }; + }; + + when("I enable input") = [&] { + serial.enable_input(); + + then("I expect deep sleep to not be possible") = [] { + auto status = utils::sleep::system_deep_sleep_check(); + + expect(not status.can_deep_sleep); + expect(not status.test_check_ok); + }; + }; + + then("I expect deep sleep to not be possible") = [] { + auto status = utils::sleep::system_deep_sleep_check(); + + expect(not status.can_deep_sleep); + expect(not status.test_check_ok); + }; + + when("I disable input") = [&] { + serial.disable_input(); + + then("I expect deep sleep to be possible") = [] { + auto status = utils::sleep::system_deep_sleep_check(); + + expect(status.can_deep_sleep); + expect(status.test_check_ok); + }; + }; + }; + }; +};