Skip to content

Commit

Permalink
Fix #1691, Add External Time Source Functional Tests
Browse files Browse the repository at this point in the history
  • Loading branch information
zanzaben committed Aug 10, 2021
1 parent cfadad6 commit 667d510
Show file tree
Hide file tree
Showing 4 changed files with 91 additions and 0 deletions.
1 change: 1 addition & 0 deletions modules/cfe_testcase/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ add_cfe_app(cfe_testcase
src/time_arithmetic_test.c
src/time_current_test.c
src/time_conversion_test.c
src/time_external_test.c
)

# register the dependency on cfe_assert
Expand Down
1 change: 1 addition & 0 deletions modules/cfe_testcase/src/cfe_test.c
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ void CFE_TestMain(void)
TimeArithmeticTestSetup();
TimeCurrentTestSetup();
TimeConversionTestSetup();
TimeExternalTestSetup();

/*
* Execute the tests
Expand Down
1 change: 1 addition & 0 deletions modules/cfe_testcase/src/cfe_test.h
Original file line number Diff line number Diff line change
Expand Up @@ -93,5 +93,6 @@ void SBPipeMangSetup(void);
void TimeArithmeticTestSetup(void);
void TimeCurrentTestSetup(void);
void TimeConversionTestSetup(void);
void TimeExternalTestSetup(void);

#endif /* CFE_TEST_H */
88 changes: 88 additions & 0 deletions modules/cfe_testcase/src/time_external_test.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
/*************************************************************************
**
** GSC-18128-1, "Core Flight Executive Version 6.7"
**
** Copyright (c) 2006-2019 United States Government as represented by
** the Administrator of the National Aeronautics and Space Administration.
** All Rights Reserved.
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
** You may obtain a copy of the License at
**
** http://www.apache.org/licenses/LICENSE-2.0
**
** Unless required by applicable law or agreed to in writing, software
** distributed under the License is distributed on an "AS IS" BASIS,
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
** See the License for the specific language governing permissions and
** limitations under the License.
**
** File: time_external_test.c
**
** Purpose:
** Functional test of basic External Time Source APIs
**
** Demonstration of how to register and use the UT assert functions.
**
*************************************************************************/

/*
* Includes
*/

#include "cfe_test.h"

int32 TestCallbackFunction(void)
{
return CFE_SUCCESS;
}

int32 TestCallbackFunction2(void)
{
return CFE_SUCCESS;
}

void TestExternal(void)
{
#if ((CFE_PLATFORM_TIME_CFG_SRC_MET == true) || (CFE_PLATFORM_TIME_CFG_SRC_GPS == true) || \
(CFE_PLATFORM_TIME_CFG_SRC_TIME == true))
CFE_TIME_SysTime_t time = {1000, 0};
#endif

UtPrintf("Testing: CFE_TIME_ExternalTone, CFE_TIME_ExternalMET, CFE_TIME_ExternalGPS, CFE_TIME_ExternalTime");

UtAssert_VOIDCALL(CFE_TIME_ExternalTone());

#if (CFE_PLATFORM_TIME_CFG_SRC_MET == true)
UtAssert_VOIDCALL(CFE_TIME_ExternalMET(time));
#endif

#if (CFE_PLATFORM_TIME_CFG_SRC_GPS == true)
UtAssert_VOIDCALL(CFE_TIME_ExternalGPS(time, 5));
#endif

#if (CFE_PLATFORM_TIME_CFG_SRC_TIME == true)
UtAssert_VOIDCALL(CFE_TIME_ExternalTime(time));
#endif
}

void TestCallback(void)
{
UtPrintf("Testing: CFE_TIME_RegisterSynchCallback, CFE_TIME_UnregisterSynchCallback");

UtAssert_INT32_EQ(CFE_TIME_RegisterSynchCallback(&TestCallbackFunction), CFE_SUCCESS);
UtAssert_INT32_EQ(CFE_TIME_RegisterSynchCallback(&TestCallbackFunction2), CFE_TIME_TOO_MANY_SYNCH_CALLBACKS);

UtAssert_INT32_EQ(CFE_TIME_UnregisterSynchCallback(&TestCallbackFunction), CFE_SUCCESS);
UtAssert_INT32_EQ(CFE_TIME_UnregisterSynchCallback(&TestCallbackFunction), CFE_TIME_CALLBACK_NOT_REGISTERED);

UtAssert_INT32_EQ(CFE_TIME_UnregisterSynchCallback(NULL), CFE_TIME_BAD_ARGUMENT);
UtAssert_INT32_EQ(CFE_TIME_RegisterSynchCallback(NULL), CFE_TIME_BAD_ARGUMENT);
}

void TimeExternalTestSetup(void)
{
UtTest_Add(TestExternal, NULL, NULL, "Test External Sources");
UtTest_Add(TestCallback, NULL, NULL, "Test Time Synch Callbacks");
}

0 comments on commit 667d510

Please sign in to comment.