diff options
Diffstat (limited to 'NodeStateMachineTest/NodeStateTest_WATCHDOG.cpp')
-rw-r--r-- | NodeStateMachineTest/NodeStateTest_WATCHDOG.cpp | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/NodeStateMachineTest/NodeStateTest_WATCHDOG.cpp b/NodeStateMachineTest/NodeStateTest_WATCHDOG.cpp new file mode 100644 index 0000000..3cec079 --- /dev/null +++ b/NodeStateMachineTest/NodeStateTest_WATCHDOG.cpp @@ -0,0 +1,95 @@ +/********************************************************************************************************************** + * + * Copyright (C) 2017 BMW AG + * + * Implements tests for NSM + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + **********************************************************************************************************************/ + +#include <gtest/gtest.h> +#include <iostream> +#include <dlt.h> + +#include "../NodeStateManager/Watchdog.hpp" + +DLT_DECLARE_CONTEXT(NsmContext); + +class NSMTest_WATCHDOG: public testing::Test +{ +protected: + virtual void SetUp() + { + + } + + virtual void TearDown() + { + + } + +public: + +}; + +/******************************************************************************************** + * main() + ********************************************************************************************/ + +int main(int argc, char **argv) +{ + int retVal = 1; + DLT_REGISTER_APP("NSMT", "Unit tests for NSM"); + DLT_REGISTER_CONTEXT(NsmContext,"WD","Context for Watchdog Tests"); + + testing::InitGoogleTest(&argc, argv); + retVal = RUN_ALL_TESTS(); + + // unregister debug log and trace + DLT_UNREGISTER_CONTEXT(NsmContext); + DLT_UNREGISTER_APP(); + return retVal; +} + +/******************************************************************************************** + * Timeout Tests + ********************************************************************************************/ + +TEST_F(NSMTest_WATCHDOG, WatchdogTimeout) +{ + RecordProperty("TestCaseID", "WatchdogTimeout"); + RecordProperty("TestCaseDescription", ""); + + DLT_LOG(NsmContext, DLT_LOG_INFO, DLT_STRING("run_test_WatchdogTimeout ==> start")); + + NSMTriggerWatchdog(NsmWatchdogState_Active); + ASSERT_TRUE(NSMWatchdogIsHappy()); + NSMTriggerWatchdog(NsmWatchdogState_Active); + ASSERT_TRUE(NSMWatchdogIsHappy()); + ASSERT_FALSE(NSMWatchdogIsHappy()); + NSMTriggerWatchdog(NsmWatchdogState_Active); + ASSERT_TRUE(NSMWatchdogIsHappy()); + NSMUnregisterWatchdog(); + ASSERT_TRUE(NSMWatchdogIsHappy()); + NSMTriggerWatchdog(NsmWatchdogState_Active); + ASSERT_TRUE(NSMWatchdogIsHappy()); + NSMTriggerWatchdog(NsmWatchdogState_Active); + NSMTriggerWatchdog(NsmWatchdogState_Sleep); + ASSERT_TRUE(NSMWatchdogIsHappy()); + ASSERT_TRUE(NSMWatchdogIsHappy()); + NSMTriggerWatchdog(NsmWatchdogState_Active); + ASSERT_TRUE(NSMWatchdogIsHappy()); + ASSERT_FALSE(NSMWatchdogIsHappy()); + + NSMTriggerWatchdog(NsmWatchdogState_Sleep); + NSMTriggerSpecificWatchdog(NsmWatchdogState_Active, 1); + ASSERT_TRUE(NSMWatchdogIsHappy()); + ASSERT_FALSE(NSMWatchdogIsHappy()); + + DLT_LOG(NsmContext, DLT_LOG_INFO, DLT_STRING("run_test_WatchdogTimeout ==> end")); +} + + |