Skip to content

Commit

Permalink
Fix #810, add ES CDS Functional test
Browse files Browse the repository at this point in the history
  • Loading branch information
zanzaben committed Apr 28, 2021
1 parent 73c338d commit 8f77718
Show file tree
Hide file tree
Showing 4 changed files with 93 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 @@ -3,6 +3,7 @@
add_cfe_app(cfe_testcase
src/cfe_test.c
src/es_info_test.c
src/es_cds_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 @@ -51,6 +51,7 @@ void CFE_TestMain(void)
* Register test cases in UtAssert
*/
ESInfoTestSetup();
ESCDSTestSetup();

/*
* 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 @@ -54,5 +54,6 @@

void CFE_TestMain(void);
void ESInfoTestSetup(void);
void ESCDSTestSetup(void);

#endif /* CFE_TEST_H */
90 changes: 90 additions & 0 deletions modules/cfe_testcase/src/es_cds_test.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
/*************************************************************************
**
** 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: es_info_test.c
**
** Purpose:
** Functional test of basic ES Critical Data Store APIs
**
** Demonstration of how to register and use the UT assert functions.
**
*************************************************************************/

/*
* Includes
*/

#include "cfe_test.h"

void TestCDS(void)
{
CFE_ES_CDSHandle_t CDSHandlePtr;
size_t BlockSize = 10;
const char * Name = "CDS_Test";
const char * CDSName = "CFE_TEST_APP.CDS_Test";
CFE_ES_CDSHandle_t IdByName;
char CDSNameBuf[CFE_MISSION_ES_CDS_MAX_FULL_NAME_LEN];
CFE_Status_t status;

UtPrintf("Testing: CFE_ES_RegisterCDS, CFE_ES_GetCDSBlockIDByName, CFE_ES_GetCDSBlockName");

status = CFE_ES_RegisterCDS(&CDSHandlePtr, BlockSize, Name);

if (status == CFE_ES_CDS_ALREADY_EXISTS)
{
UtAssert_NA("CDS already exists. CFE_ES_RegisterCDS new allocation could not be properly tested");
}
else
{
UtAssert_INT32_EQ(status, CFE_SUCCESS);
}

UtAssert_INT32_EQ(CFE_ES_GetCDSBlockName(CDSNameBuf, CDSHandlePtr, sizeof(CDSNameBuf)), CFE_SUCCESS);
UtAssert_StrCmp(CDSNameBuf, CDSName, "CFE_ES_GetCDSBlockName() = %s", CDSNameBuf);
UtAssert_INT32_EQ(CFE_ES_GetCDSBlockIDByName(&IdByName, CDSNameBuf), CFE_SUCCESS);
UtAssert_ResourceID_EQ(CDSHandlePtr, IdByName);
}

void TestCopyRestoreCDS(void)
{
CFE_ES_CDSHandle_t CDSHandlePtr;
size_t BlockSize = 10;
const char * Name = "CDS_Copy_Test";
CFE_Status_t status;
char Data[BlockSize];
char DataBuff[BlockSize];

UtPrintf("Testing: CFE_ES_CopyToCDS, CFE_ES_RestoreFromCDS");

snprintf(Data, BlockSize, "Test Data");
status = CFE_ES_RegisterCDS(&CDSHandlePtr, BlockSize, Name);

UtAssert_True(status == CFE_SUCCESS || status == CFE_ES_CDS_ALREADY_EXISTS, "Register CDS status = %d",
(int)status);
UtAssert_INT32_EQ(CFE_ES_CopyToCDS(CDSHandlePtr, Data), CFE_SUCCESS);
UtAssert_INT32_EQ(CFE_ES_RestoreFromCDS(DataBuff, CDSHandlePtr), CFE_SUCCESS);
UtAssert_StrCmp(Data, DataBuff, "RestoreFromCDS = %s", DataBuff);
}

void ESCDSTestSetup(void)
{
UtTest_Add(TestCDS, NULL, NULL, "Test CDS");
UtTest_Add(TestCopyRestoreCDS, NULL, NULL, "Test Copy Restore CDS");
}

0 comments on commit 8f77718

Please sign in to comment.