Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
abe2ff9
Updated SCH app test case(removed compile warning for unit test code)
ynielson Sep 27, 2022
1b13e03
Updated SCH app unit test cases and command test cases
ynielson Sep 28, 2022
5c014ab
Merge branch 'integration' into 209-unit-test-for-sch-application
ynielson Oct 26, 2022
9da1245
Merge branch 'integration' into 209-unit-test-for-sch-application
ynielson Oct 27, 2022
eeff483
Merge branch '209-unit-test-for-sch-application' of github.com:Windho…
ynielson Oct 27, 2022
d420845
Merge branch 'integration' into 209-unit-test-for-sch-application
mbenson1 Nov 8, 2022
971f7f3
Merge commit '1b13e03da31f968599540b4c4cd7e632f1dce98b' into develop_…
ynielson Nov 9, 2022
cba94a6
Added SCH unit test cases(app test cases)
ynielson Nov 17, 2022
2e9e2d6
Updated SCH unit test(app test cases and config table and ut stubs an…
ynielson Nov 18, 2022
14be15b
Updated SCH unit test(cmds test cases)
ynielson Nov 21, 2022
977196b
Updated SCH test cases(cmds/config tbl test cases) and minor updates
ynielson Nov 22, 2022
b6af397
Updated SCH unit test(config tbl test cases) and organized SCH custom…
ynielson Nov 24, 2022
2253f0b
Updated SCH unit test(app, cmds test cases)
ynielson Nov 28, 2022
b1eaa04
Updated SCH unit test(updated app test cases)
ynielson Nov 29, 2022
f04fa82
Updated SCH unit test(app/cmds test cases)
ynielson Nov 30, 2022
78efd19
Updated SCH unit test(app test cases)
ynielson Dec 1, 2022
bcbd413
Updated SCH unit test(app and api test cases)
ynielson Dec 2, 2022
fc4f3c2
Updated SCH unit test(api test cases)
ynielson Dec 3, 2022
cceb85f
Merge branch '209-unit-test-for-sch-application' of github.com:Windho…
ynielson Dec 3, 2022
ac286f8
Merge branch 'develop_sch_ut' into 209-unit-test-for-sch-application
ynielson Dec 3, 2022
e613c22
Updated SCH unit test(SCH_ADChildTask test cases)
ynielson Dec 6, 2022
67c3e60
Removed obsolete SCH unit test log
ynielson Dec 6, 2022
b8eba57
Updated SCH unit test(SCH_ADChildTask test cases)
ynielson Dec 7, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 7 additions & 6 deletions apps/sch/fsw/for_build/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -87,18 +87,20 @@ buildliner_add_app_unit_test(sch-ut
${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/sch_app_test.h
${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/sch_cmds_test.c
${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/sch_cmds_test.h
${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/sch_config_tbl_test.c
${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/sch_config_tbl_test.h
${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/sch_test_utils.c
${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/sch_test_utils.h
${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/sch_testrunner.c
${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/sch_mock_os.c
${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/sch_mock_os.h
${CMAKE_CURRENT_SOURCE_DIR}/../mission_inc/sch_perfids.h
${CMAKE_CURRENT_SOURCE_DIR}/../platform_inc/sch_msgids.h
${CMAKE_CURRENT_SOURCE_DIR}/../platform_inc/sch_platform_cfg.h
${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/sch_custom_stubs.c
${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/sch_custom_stubs.h
${PROJECT_SOURCE_DIR}/core/base/ut_assert/src/utassert.c
${PROJECT_SOURCE_DIR}/core/base/ut_assert/src/ut_cfe_es_hooks.c
${PROJECT_SOURCE_DIR}/core/base/ut_assert/src/ut_cfe_es_stubs.c
${PROJECT_SOURCE_DIR}/core/base/ut_assert/src/ut_cfe_evs_hooks.c
${PROJECT_SOURCE_DIR}/core/base/ut_assert/src/ut_cfe_evs_stubs.c
${PROJECT_SOURCE_DIR}/core/base/ut_assert/src/ut_cfe_fs_stubs.c
${PROJECT_SOURCE_DIR}/core/base/ut_assert/src/ut_cfe_psp_eeprom_stubs.c
${PROJECT_SOURCE_DIR}/core/base/ut_assert/src/ut_cfe_psp_memrange_stubs.c
Expand All @@ -107,22 +109,21 @@ buildliner_add_app_unit_test(sch-ut
${PROJECT_SOURCE_DIR}/core/base/ut_assert/src/ut_cfe_psp_timer_stubs.c
${PROJECT_SOURCE_DIR}/core/base/ut_assert/src/ut_cfe_psp_watchdog_stubs.c
${PROJECT_SOURCE_DIR}/core/base/ut_assert/src/ut_cfe_sb_hooks.c
${PROJECT_SOURCE_DIR}/core/base/ut_assert/src/ut_cfe_sb_stubs.c
${PROJECT_SOURCE_DIR}/core/base/ut_assert/src/ut_cfe_tbl_hooks.c
${PROJECT_SOURCE_DIR}/core/base/ut_assert/src/ut_cfe_tbl_stubs.c
${PROJECT_SOURCE_DIR}/core/base/ut_assert/src/ut_cfe_time_hooks.c
${PROJECT_SOURCE_DIR}/core/base/ut_assert/src/ut_cfe_time_stubs.c
${PROJECT_SOURCE_DIR}/core/base/ut_assert/src/utlist.c
${PROJECT_SOURCE_DIR}/core/base/ut_assert/src/ut_osapi_stubs.c
${PROJECT_SOURCE_DIR}/core/base/ut_assert/src/ut_osfileapi_stubs.c
${PROJECT_SOURCE_DIR}/core/base/ut_assert/src/uttest.c
${PROJECT_SOURCE_DIR}/core/base/ut_assert/src/uttools.c

INCLUDES
${CMAKE_CURRENT_SOURCE_DIR}/../mission_inc/
${CMAKE_CURRENT_SOURCE_DIR}/../platform_inc/
${CMAKE_CURRENT_SOURCE_DIR}/../public_inc/
${CMAKE_CURRENT_SOURCE_DIR}/../src/
${CMAKE_CURRENT_SOURCE_DIR}/../unit_test/
${PROJECT_SOURCE_DIR}/core/base/ut_assert/inc/

REFERENCE_CUSTOM_SOURCE
${CMAKE_CURRENT_SOURCE_DIR}/../src/sch_custom.c
Expand Down
224 changes: 162 additions & 62 deletions apps/sch/fsw/unit_test/sch_api_test.c
Original file line number Diff line number Diff line change
@@ -1,50 +1,61 @@
/*************************************************************************
** File:
** $Id: sch_api_test.c 1.2 2017/06/21 15:28:56EDT mdeschu Exp $
**
** Purpose:
** This file contains unit test cases for the functions contained in the file sch_api.c
**
** References:
** Flight Software Branch C Coding Standard Version 1.2
** CFS Development Standards Document
** Notes:
**
*************************************************************************/

/*
* Includes
*/
/****************************************************************************
*
* Copyright (c) 2017 Windhover Labs, L.L.C. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
* 3. Neither the name Windhover Labs nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
*****************************************************************************/

#include "sch_api_test.h"
#include "sch_apipriv.h"
#include "sch_app.h"
#include "sch_msg.h"
#include "sch_msgdefs.h"
#include "sch_events.h"
#include "sch_version.h"
#include "sch_test_utils.h"

#include "uttest.h"
#include "utassert.h"
#include "ut_osapi_stubs.h"
#include "ut_cfe_es_stubs.h"
#include "ut_cfe_es_hooks.h"
// FIXME: these need to be implemented/updated in UT-Assert (by copying from sch_test_utils.c/.h):
//#include "ut_cfe_evs_stubs.h"
//#include "ut_cfe_time_stubs.h"
//#include "ut_ostimer_stubs.h"
//#include "ut_cfe_sb_stubs.h"
#include "ut_cfe_sb_stubs.h"
#include "ut_cfe_sb_hooks.h"
#include "ut_cfe_psp_memutils_stubs.h"
#include "ut_cfe_psp_watchdog_stubs.h"
#include "ut_cfe_psp_timer_stubs.h"
#include "ut_cfe_tbl_stubs.h"
#include "ut_cfe_fs_stubs.h"
#include <sys/fcntl.h>
#include <unistd.h>
#include <stdlib.h>

#include <time.h>


CFE_SB_MsgId_t ActivityComplete_SendMsgHook_MsgId = 0;


/*
* Function Definitions
* SCH_LibInit_Test
*/

void SCH_LibInit_Test(void)
{
int32 Result;
Expand All @@ -53,13 +64,16 @@ void SCH_LibInit_Test(void)
Result = SCH_LibInit();

/* Verify results */
UtAssert_True (SCH_LibData.ProcessingDisabledCtr == SCH_LIB_DIS_CTR, "SCH_LibData.ProcessingDisabledCtr == SCH_LIB_DIS_CTR");
UtAssert_True (Result == OS_SUCCESS, "Result == OS_SUCCESS");
UtAssert_True(SCH_LibData.ProcessingDisabledCtr == SCH_LIB_DIS_CTR,
"SCH_LibData.ProcessingDisabledCtr == SCH_LIB_DIS_CTR");

UtAssert_True (Ut_CFE_EVS_GetEventQueueDepth() == 0, "Ut_CFE_EVS_GetEventQueueDepth() == 0");
UtAssert_True(Result == OS_SUCCESS, "Result == OS_SUCCESS");
}

} /* end SCH_LibInit_Test */

/*
* SCH_EnableProcessing_Test
*/
void SCH_EnableProcessing_Test(void)
{
SCH_LibData.ProcessingDisabledCtr = 1;
Expand All @@ -68,24 +82,28 @@ void SCH_EnableProcessing_Test(void)
SCH_EnableProcessing();

/* Verify results */
UtAssert_True (SCH_LibData.ProcessingDisabledCtr == 0, "SCH_LibData.ProcessingDisabledCtr == 0");

UtAssert_True (Ut_CFE_EVS_GetEventQueueDepth() == 0, "Ut_CFE_EVS_GetEventQueueDepth() == 0");
UtAssert_True(SCH_LibData.ProcessingDisabledCtr == 0,
"SCH_LibData.ProcessingDisabledCtr == 0");
}

} /* end SCH_EnableProcessing_Test */

/*
* SCH_DisableProcessing_Test
*/
void SCH_DisableProcessing_Test(void)
{
/* Execute the function being tested */
SCH_DisableProcessing();

/* Verify results */
UtAssert_True (SCH_LibData.ProcessingDisabledCtr == 1, "SCH_LibData.ProcessingDisabledCtr == 1");
UtAssert_True(SCH_LibData.ProcessingDisabledCtr == 1,
"SCH_LibData.ProcessingDisabledCtr == 1");
}

UtAssert_True (Ut_CFE_EVS_GetEventQueueDepth() == 0, "Ut_CFE_EVS_GetEventQueueDepth() == 0");

} /* end SCH_DisableProcessing_Test */

/*
* SCH_GetProcessingState_Test_True
*/
void SCH_GetProcessingState_Test_True(void)
{
boolean Result;
Expand All @@ -96,12 +114,13 @@ void SCH_GetProcessingState_Test_True(void)
Result = SCH_GetProcessingState();

/* Verify results */
UtAssert_True (Result == TRUE, "Result == TRUE");

UtAssert_True (Ut_CFE_EVS_GetEventQueueDepth() == 0, "Ut_CFE_EVS_GetEventQueueDepth() == 0");
UtAssert_True(Result == TRUE, "GetProcessingState_Test_True");
}

} /* end SCH_GetProcessingState_Test_True */

/*
* SCH_GetProcessingState_Test_False
*/
void SCH_GetProcessingState_Test_False(void)
{
boolean Result;
Expand All @@ -112,25 +131,106 @@ void SCH_GetProcessingState_Test_False(void)
Result = SCH_GetProcessingState();

/* Verify results */
UtAssert_True (Result == FALSE, "Result == FALSE");
UtAssert_True(Result == FALSE, "GetProcessingState_Test_False");
}

UtAssert_True (Ut_CFE_EVS_GetEventQueueDepth() == 0, "Ut_CFE_EVS_GetEventQueueDepth() == 0");

} /* end SCH_GetProcessingState_Test_False */
/*
* SCH_ActivityComplete_Test_Nominal_SendMsgHook
*/
int32 SCH_ActivityComplete_Test_Nominal_SendMsgHook(CFE_SB_Msg_t *MsgPtr)
{
unsigned char* pBuff = NULL;
uint16 msgLen = 0;
int i = 0;
CFE_SB_MsgId_t MsgId;
time_t localTime;
struct tm *loc_time;
CFE_TIME_SysTime_t TimeFromMsg;
SCH_ActivityDoneMsg_t DoneMsg;

pBuff = (unsigned char*)MsgPtr;

msgLen = CFE_SB_GetTotalMsgLength(MsgPtr);
printf("###ActivityComplete_SendMsgHook: MsgLen(%u)\n", msgLen);
for (i = 0; i < msgLen; i++)
{
printf("0x%02x ", *pBuff);
pBuff++;
}
printf("\n");

TimeFromMsg = CFE_SB_GetMsgTime(MsgPtr);
localTime = SCH_Test_GetTimeFromMsg(TimeFromMsg);
loc_time = localtime(&localTime);
printf("TimeFromMessage: %s", asctime(loc_time));

MsgId = CFE_SB_GetMsgId(MsgPtr);
if (MsgId == SCH_ACTIVITY_DONE_MID)
{
ActivityComplete_SendMsgHook_MsgId = MsgId;
CFE_PSP_MemCpy((void*)&DoneMsg, (void*)MsgPtr, sizeof(DoneMsg));

printf("Sent SCH_ACTIVITY_DONE_MID:\n");
printf("MsgID: 0x%04X\n", DoneMsg.MsgID);
}
else
{
printf("Sent MID(0x%04X)\n", MsgId);
}

return CFE_SUCCESS;
}

void SCH_API_Test_AddTestCases(void)

/*
* SCH_ActivityComplete_Test_Nominal
*/
void SCH_ActivityComplete_Test_Nominal(void)
{
UtTest_Add(SCH_LibInit_Test, SCH_Test_Setup, SCH_Test_TearDown, "SCH_LibInit_Test");
int32 SlotIdx = 0;
int32 ActIdx = 2;

ActivityComplete_SendMsgHook_MsgId = 0;
Ut_CFE_SB_SetFunctionHook(UT_CFE_SB_SENDMSG_INDEX,
(void *)&SCH_ActivityComplete_Test_Nominal_SendMsgHook);

UtTest_Add(SCH_EnableProcessing_Test, SCH_Test_Setup, SCH_Test_TearDown, "SCH_EnableProcessing_Test");
/* Execute the function being tested */
SCH_AppInit();
SCH_ActivityComplete(SCH_TEST_MID);

UtTest_Add(SCH_DisableProcessing_Test, SCH_Test_Setup, SCH_Test_TearDown, "SCH_DisableProcessing_Test");
/* Verify results */
UtAssert_True(ActivityComplete_SendMsgHook_MsgId == SCH_ACTIVITY_DONE_MID,
"SCH_ActivityComplete_Test_Nominal");
}

UtTest_Add(SCH_GetProcessingState_Test_True, SCH_Test_Setup, SCH_Test_TearDown, "SCH_GetProcessingState_Test_True");
UtTest_Add(SCH_GetProcessingState_Test_False, SCH_Test_Setup, SCH_Test_TearDown, "SCH_GetProcessingState_Test_False");

} /* end SCH_API_Test_AddTestCases */

/************************/
/* End of File Comment */
/************************/
/**************************************************************************
* Rollup Test Cases
**************************************************************************/
void SCH_API_Test_AddTestCases(void)
{
UtTest_Add(SCH_LibInit_Test,
SCH_Test_Setup, SCH_Test_TearDown,
"SCH_LibInit_Test");

UtTest_Add(SCH_EnableProcessing_Test,
SCH_Test_Setup, SCH_Test_TearDown,
"SCH_EnableProcessing_Test");

UtTest_Add(SCH_DisableProcessing_Test,
SCH_Test_Setup, SCH_Test_TearDown,
"SCH_DisableProcessing_Test");

UtTest_Add(SCH_GetProcessingState_Test_True,
SCH_Test_Setup, SCH_Test_TearDown,
"SCH_GetProcessingState_Test_True");
UtTest_Add(SCH_GetProcessingState_Test_False,
SCH_Test_Setup, SCH_Test_TearDown,
"SCH_GetProcessingState_Test_False");

UtTest_Add(SCH_ActivityComplete_Test_Nominal,
SCH_Test_Setup, SCH_Test_TearDown,
"SCH_ActivityComplete_Test_Nominal");
}
Loading