From 69c31d2cee87af1007b1ed3fa741a93ab06c08a9 Mon Sep 17 00:00:00 2001 From: Alex Campbell Date: Mon, 5 Apr 2021 11:59:16 -0400 Subject: [PATCH] Fix #808, use strict ID types. --- modules/cfe_testcase/src/cfe_test.h | 9 +++ modules/cfe_testcase/src/es_info_test.c | 96 ++++++++++++------------- 2 files changed, 57 insertions(+), 48 deletions(-) diff --git a/modules/cfe_testcase/src/cfe_test.h b/modules/cfe_testcase/src/cfe_test.h index 02ddece23..e775956e6 100644 --- a/modules/cfe_testcase/src/cfe_test.h +++ b/modules/cfe_testcase/src/cfe_test.h @@ -43,6 +43,15 @@ #include "uttest.h" #include "utassert.h" +/* Compare two Resource IDs */ +#define UtAssert_ResourceID_EQ(actual, expect) \ + UtAssert_True(CFE_RESOURCEID_TEST_EQUAL(actual, expect), "%s (%lu) == %s (%lu)", #actual, \ + CFE_RESOURCEID_TO_ULONG(actual), #expect, CFE_RESOURCEID_TO_ULONG(expect)) + +/* Check if a Resource ID is Undeifined */ +#define UtAssert_ResourceID_Undifeined(id) \ + UtAssert_True(!CFE_RESOURCEID_TEST_DEFINED(id), "%s (%lu) not defined", #id, CFE_RESOURCEID_TO_ULONG(id)) + int32 CFE_Test_Init(int32 LibId); int32 ESInfoTestSetup(int32 LibId); diff --git a/modules/cfe_testcase/src/es_info_test.c b/modules/cfe_testcase/src/es_info_test.c index 685a9c500..5f3be49fd 100644 --- a/modules/cfe_testcase/src/es_info_test.c +++ b/modules/cfe_testcase/src/es_info_test.c @@ -49,8 +49,7 @@ void TestAppInfo(void) UtAssert_INT32_EQ(CFE_ES_GetAppIDByName(&AppIdByName, TestAppName), CFE_SUCCESS); UtAssert_INT32_EQ(CFE_ES_GetAppID(&TestAppId), CFE_SUCCESS); - UtAssert_INT32_EQ(TestAppId, AppIdByName); - + UtAssert_ResourceID_EQ(TestAppId, AppIdByName); UtAssert_INT32_EQ(CFE_ES_GetAppName(AppNameBuf, TestAppId, sizeof(AppNameBuf)), CFE_SUCCESS); UtAssert_StrCmp(AppNameBuf, TestAppName, "CFE_ES_GetAppName() = %s", AppNameBuf); @@ -58,8 +57,8 @@ void TestAppInfo(void) UtAssert_INT32_EQ(CFE_ES_GetAppIDByName(&ESAppId, ESAppName), CFE_SUCCESS); UtAssert_INT32_EQ(CFE_ES_GetAppInfo(&ESAppInfo, ESAppId), CFE_SUCCESS); - UtAssert_True(TestAppInfo.Type == CFE_ES_AppType_EXTERNAL, "Test App Info -> Type = %d", TestAppInfo.Type); - UtAssert_True(ESAppInfo.Type == CFE_ES_AppType_CORE, "ES App Info -> Type = %d", ESAppInfo.Type); + UtAssert_True(TestAppInfo.Type == CFE_ES_AppType_EXTERNAL, "Test App Info -> Type = %d", (int)TestAppInfo.Type); + UtAssert_True(ESAppInfo.Type == CFE_ES_AppType_CORE, "ES App Info -> Type = %d", (int)ESAppInfo.Type); UtAssert_StrCmp(TestAppInfo.Name, TestAppName, "Test App Info -> Name = %s", TestAppInfo.Name); UtAssert_StrCmp(ESAppInfo.Name, ESAppName, "ES App Info -> Name = %s", ESAppInfo.Name); @@ -71,19 +70,19 @@ void TestAppInfo(void) TestAppInfo.FileName); UtAssert_True(strlen(ESAppInfo.FileName) == 0, "ES App Info -> FileName = %s", ESAppInfo.FileName); - UtAssert_True(TestAppInfo.StackSize > 0, "Test App Info -> StackSz = %d", TestAppInfo.StackSize); - UtAssert_True(ESAppInfo.StackSize > 0, "ES App Info -> StackSz = %d", ESAppInfo.StackSize); + UtAssert_True(TestAppInfo.StackSize > 0, "Test App Info -> StackSz = %d", (int)TestAppInfo.StackSize); + UtAssert_True(ESAppInfo.StackSize > 0, "ES App Info -> StackSz = %d", (int)ESAppInfo.StackSize); if (TestAppInfo.AddressesAreValid) { UtAssert_True(TestAppInfo.AddressesAreValid > 0, "Test App Info -> AddrsValid? = %d", - TestAppInfo.AddressesAreValid); - UtAssert_True(TestAppInfo.CodeAddress > 0, "Test App Info -> CodeAddress = %d", TestAppInfo.CodeAddress); - UtAssert_True(TestAppInfo.CodeSize > 0, "Test App Info -> CodeSize = %d", TestAppInfo.CodeSize); - UtAssert_True(TestAppInfo.DataAddress > 0, "Test App Info -> DataAddress = %d", TestAppInfo.DataAddress); - UtAssert_True(TestAppInfo.DataSize > 0, "Test App Info -> DataSize = %d", TestAppInfo.DataSize); - UtAssert_True(TestAppInfo.BSSAddress > 0, "Test App Info -> BSSAddress = %d", TestAppInfo.BSSAddress); - UtAssert_True(TestAppInfo.BSSSize > 0, "Test App Info -> BSSSize = %d", TestAppInfo.BSSSize); + (int)TestAppInfo.AddressesAreValid); + UtAssert_True(TestAppInfo.CodeAddress > 0, "Test App Info -> CodeAddress = %d", (int)TestAppInfo.CodeAddress); + UtAssert_True(TestAppInfo.CodeSize > 0, "Test App Info -> CodeSize = %d", (int)TestAppInfo.CodeSize); + UtAssert_True(TestAppInfo.DataAddress > 0, "Test App Info -> DataAddress = %d", (int)TestAppInfo.DataAddress); + UtAssert_True(TestAppInfo.DataSize > 0, "Test App Info -> DataSize = %d", (int)TestAppInfo.DataSize); + UtAssert_True(TestAppInfo.BSSAddress > 0, "Test App Info -> BSSAddress = %d", (int)TestAppInfo.BSSAddress); + UtAssert_True(TestAppInfo.BSSSize > 0, "Test App Info -> BSSSize = %d", (int)TestAppInfo.BSSSize); } else { @@ -95,7 +94,8 @@ void TestAppInfo(void) UtAssert_NA("AddressesAreValid is false: BSS Size test skipped"); } - UtAssert_True(ESAppInfo.AddressesAreValid == 0, "ES App Info -> AddrsValid? = %d", ESAppInfo.AddressesAreValid); + UtAssert_True(ESAppInfo.AddressesAreValid == 0, "ES App Info -> AddrsValid? = %d", + (int)ESAppInfo.AddressesAreValid); UtAssert_True(TestAppInfo.StartAddress > 0, "Test App Info -> StartAddress = 0x%4x", TestAppInfo.StartAddress); UtAssert_True(ESAppInfo.StartAddress == 0, "ES App Info -> StartAddress = 0x%4x", ESAppInfo.StartAddress); @@ -103,22 +103,22 @@ void TestAppInfo(void) UtAssert_INT32_EQ(TestAppInfo.ExceptionAction, 0); UtAssert_INT32_EQ(ESAppInfo.ExceptionAction, 1); - UtAssert_True(TestAppInfo.Priority > 0, "Test App Info -> Priority = %d", TestAppInfo.Priority); - UtAssert_True(ESAppInfo.Priority > 0, "ES App Info -> Priority = %d", ESAppInfo.Priority); + UtAssert_True(TestAppInfo.Priority > 0, "Test App Info -> Priority = %d", (int)TestAppInfo.Priority); + UtAssert_True(ESAppInfo.Priority > 0, "ES App Info -> Priority = %d", (int)ESAppInfo.Priority); - UtAssert_True(TestAppInfo.NumOfChildTasks == 0, "Test App Info -> Child Tasks = %d", TestAppInfo.NumOfChildTasks); - UtAssert_True(ESAppInfo.NumOfChildTasks > 0, "ES App Info -> Child Tasks = %d", ESAppInfo.NumOfChildTasks); + UtAssert_True(TestAppInfo.NumOfChildTasks == 0, "Test App Info -> Child Tasks = %d", + (int)TestAppInfo.NumOfChildTasks); + UtAssert_True(ESAppInfo.NumOfChildTasks > 0, "ES App Info -> Child Tasks = %d", (int)ESAppInfo.NumOfChildTasks); UtAssert_INT32_EQ(CFE_ES_GetAppIDByName(&AppIdByName, InvalidName), CFE_ES_ERR_NAME_NOT_FOUND); - UtAssert_INT32_EQ(AppIdByName, CFE_ES_APPID_UNDEFINED); - + UtAssert_ResourceID_Undifeined(AppIdByName); UtAssert_INT32_EQ(CFE_ES_GetAppID(NULL), CFE_ES_BAD_ARGUMENT); UtAssert_INT32_EQ(CFE_ES_GetAppIDByName(NULL, TestAppName), CFE_ES_BAD_ARGUMENT); - UtAssert_INT32_EQ(CFE_ES_GetAppName(AppNameBuf, OS_OBJECT_ID_UNDEFINED, sizeof(AppNameBuf)), + UtAssert_INT32_EQ(CFE_ES_GetAppName(AppNameBuf, CFE_ES_APPID_UNDEFINED, sizeof(AppNameBuf)), CFE_ES_ERR_RESOURCEID_NOT_VALID); UtAssert_INT32_EQ(CFE_ES_GetAppName(NULL, TestAppId, sizeof(AppNameBuf)), CFE_ES_BAD_ARGUMENT); - UtAssert_INT32_EQ(CFE_ES_GetAppInfo(&TestAppInfo, OS_OBJECT_ID_UNDEFINED), CFE_ES_ERR_RESOURCEID_NOT_VALID); - UtAssert_INT32_EQ(CFE_ES_GetAppInfo(NULL, OS_OBJECT_ID_UNDEFINED), CFE_ES_BAD_ARGUMENT); + UtAssert_INT32_EQ(CFE_ES_GetAppInfo(&TestAppInfo, CFE_ES_APPID_UNDEFINED), CFE_ES_ERR_RESOURCEID_NOT_VALID); + UtAssert_INT32_EQ(CFE_ES_GetAppInfo(NULL, CFE_ES_APPID_UNDEFINED), CFE_ES_BAD_ARGUMENT); } void TestTaskInfo(void) @@ -135,19 +135,19 @@ void TestTaskInfo(void) UtAssert_INT32_EQ(CFE_ES_GetTaskInfo(&TaskInfo, AppInfo.MainTaskId), CFE_SUCCESS); UtAssert_INT32_EQ(CFE_ES_GetTaskID(&TaskId), CFE_SUCCESS); - UtAssert_INT32_EQ(TaskId, AppInfo.MainTaskId); + UtAssert_ResourceID_EQ(TaskId, AppInfo.MainTaskId); UtAssert_StrCmp(TaskInfo.AppName, AppInfo.Name, "TaskInfo.AppName (%s) = AppInfo.name (%s)", TaskInfo.AppName, AppInfo.Name); UtAssert_StrCmp(TaskInfo.TaskName, AppInfo.MainTaskName, "TaskInfo.TaskName (%s) = AppInfo.MainTaskName (%s)", TaskInfo.TaskName, AppInfo.MainTaskName); - UtAssert_INT32_EQ(TaskInfo.TaskId, AppInfo.MainTaskId); - UtAssert_INT32_EQ(TaskInfo.AppId, AppId); + UtAssert_ResourceID_EQ(TaskInfo.TaskId, AppInfo.MainTaskId); + UtAssert_ResourceID_EQ(TaskInfo.AppId, AppId); UtAssert_INT32_EQ(TaskInfo.ExecutionCounter, AppInfo.ExecutionCounter); - UtAssert_INT32_EQ(CFE_ES_GetTaskInfo(&TaskInfo, OS_OBJECT_ID_UNDEFINED), CFE_ES_ERR_RESOURCEID_NOT_VALID); - UtAssert_INT32_EQ(CFE_ES_GetTaskInfo(NULL, OS_OBJECT_ID_UNDEFINED), CFE_ES_BAD_ARGUMENT); + UtAssert_INT32_EQ(CFE_ES_GetTaskInfo(&TaskInfo, CFE_ES_TASKID_UNDEFINED), CFE_ES_ERR_RESOURCEID_NOT_VALID); + UtAssert_INT32_EQ(CFE_ES_GetTaskInfo(NULL, CFE_ES_TASKID_UNDEFINED), CFE_ES_BAD_ARGUMENT); UtAssert_INT32_EQ(CFE_ES_GetTaskID(NULL), CFE_ES_BAD_ARGUMENT); } @@ -165,21 +165,21 @@ void TestLibInfo(void) UtAssert_INT32_EQ(CFE_ES_GetLibInfo(&LibInfo, LibIdByName), CFE_SUCCESS); UtAssert_INT32_EQ(CFE_ES_GetLibName(LibNameBuf, LibIdByName, sizeof(LibNameBuf)), CFE_SUCCESS); UtAssert_StrCmp(LibNameBuf, LibName, "CFE_ES_GetLibName() = %s", LibNameBuf); - UtAssert_True(LibInfo.Type == CFE_ES_AppType_LIBRARY, "Lib Info -> Type = %d", LibInfo.Type); + UtAssert_True(LibInfo.Type == CFE_ES_AppType_LIBRARY, "Lib Info -> Type = %d", (int)LibInfo.Type); UtAssert_StrCmp(LibInfo.Name, LibName, "Lib Info -> Name = %s", LibInfo.Name); UtAssert_StrCmp(LibInfo.EntryPoint, "CFE_Assert_LibInit", "Lib Info -> EntryPt = %s", LibInfo.EntryPoint); UtAssert_StrCmp(LibInfo.FileName, "/cf/cfe_assert.so", "Lib Info -> FileName = %s", LibInfo.FileName); - UtAssert_True(LibInfo.StackSize == 0, "Lib Info -> StackSz = %d", LibInfo.StackSize); + UtAssert_True(LibInfo.StackSize == 0, "Lib Info -> StackSz = %d", (int)LibInfo.StackSize); if (LibInfo.AddressesAreValid) { - UtAssert_True(LibInfo.AddressesAreValid > 0, "Lib Info -> AddrsValid? = %d", LibInfo.AddressesAreValid); - UtAssert_True(LibInfo.CodeAddress > 0, "Lib Info -> CodeAddress = %d", LibInfo.CodeAddress); - UtAssert_True(LibInfo.CodeSize > 0, "Lib Info -> CodeSize = %d", LibInfo.CodeSize); - UtAssert_True(LibInfo.DataAddress > 0, "Lib Info -> DataAddress = %d", LibInfo.DataAddress); - UtAssert_True(LibInfo.DataSize > 0, "Lib Info -> DataSize = %d", LibInfo.DataSize); - UtAssert_True(LibInfo.BSSAddress > 0, "Lib Info -> BSSAddress = %d", LibInfo.BSSAddress); - UtAssert_True(LibInfo.BSSSize > 0, "Lib Info -> BSSSize = %d", LibInfo.BSSSize); + UtAssert_True(LibInfo.AddressesAreValid > 0, "Lib Info -> AddrsValid? = %d", (int)LibInfo.AddressesAreValid); + UtAssert_True(LibInfo.CodeAddress > 0, "Lib Info -> CodeAddress = %d", (int)LibInfo.CodeAddress); + UtAssert_True(LibInfo.CodeSize > 0, "Lib Info -> CodeSize = %d", (int)LibInfo.CodeSize); + UtAssert_True(LibInfo.DataAddress > 0, "Lib Info -> DataAddress = %d", (int)LibInfo.DataAddress); + UtAssert_True(LibInfo.DataSize > 0, "Lib Info -> DataSize = %d", (int)LibInfo.DataSize); + UtAssert_True(LibInfo.BSSAddress > 0, "Lib Info -> BSSAddress = %d", (int)LibInfo.BSSAddress); + UtAssert_True(LibInfo.BSSSize > 0, "Lib Info -> BSSSize = %d", (int)LibInfo.BSSSize); } else { @@ -192,17 +192,17 @@ void TestLibInfo(void) } UtAssert_INT32_EQ(LibInfo.ExceptionAction, 0); - UtAssert_True(LibInfo.Priority == 0, "Lib Info -> Priority = %d", LibInfo.Priority); - UtAssert_True(LibInfo.MainTaskId == 0, "Lib Info -> MainTaskId = %d", LibInfo.MainTaskId); - UtAssert_True(LibInfo.ExecutionCounter == 0, "Lib Info -> ExecutionCounter = %d", LibInfo.ExecutionCounter); + UtAssert_True(LibInfo.Priority == 0, "Lib Info -> Priority = %d", (int)LibInfo.Priority); + UtAssert_ResourceID_Undifeined(LibInfo.MainTaskId); + UtAssert_True(LibInfo.ExecutionCounter == 0, "Lib Info -> ExecutionCounter = %d", (int)LibInfo.ExecutionCounter); UtAssert_True(strlen(LibInfo.MainTaskName) == 0, "Lib Info -> Task Name = %s", LibInfo.MainTaskName); - UtAssert_True(LibInfo.NumOfChildTasks == 0, "Lib Info -> Child Tasks = %d", LibInfo.NumOfChildTasks); + UtAssert_True(LibInfo.NumOfChildTasks == 0, "Lib Info -> Child Tasks = %d", (int)LibInfo.NumOfChildTasks); UtAssert_INT32_EQ(CFE_ES_GetLibIDByName(&LibIdByName, InvalidName), CFE_ES_ERR_NAME_NOT_FOUND); UtAssert_INT32_EQ(CFE_ES_GetLibInfo(&LibInfo, LibIdByName), CFE_ES_ERR_RESOURCEID_NOT_VALID); UtAssert_INT32_EQ(CFE_ES_GetLibIDByName(NULL, LibName), CFE_ES_BAD_ARGUMENT); UtAssert_INT32_EQ(CFE_ES_GetLibInfo(NULL, LibIdByName), CFE_ES_BAD_ARGUMENT); - UtAssert_INT32_EQ(CFE_ES_GetLibName(LibNameBuf, OS_OBJECT_ID_UNDEFINED, sizeof(LibNameBuf)), + UtAssert_INT32_EQ(CFE_ES_GetLibName(LibNameBuf, CFE_ES_LIBID_UNDEFINED, sizeof(LibNameBuf)), CFE_ES_ERR_RESOURCEID_NOT_VALID); UtAssert_INT32_EQ(CFE_ES_GetLibName(NULL, LibIdByName, sizeof(LibNameBuf)), CFE_ES_BAD_ARGUMENT); } @@ -216,10 +216,10 @@ void TestResetType(void) rType = CFE_ES_GetResetType(NULL); UtAssert_True((rType == CFE_PSP_RST_TYPE_POWERON) || (rType == CFE_PSP_RST_TYPE_PROCESSOR), "Reset Type = %d", - rType); + (int)rType); CFE_ES_GetResetType(&rSubType); - UtAssert_True((rSubType > 0) && (rSubType < 10), "Reset Sub-Type = %d", rSubType); + UtAssert_True((rSubType > 0) && (rSubType < 10), "Reset Sub-Type = %d", (int)rSubType); } void TestModuleInfo(void) @@ -235,18 +235,18 @@ void TestModuleInfo(void) UtAssert_INT32_EQ(CFE_ES_GetAppID(&TestAppId), CFE_SUCCESS); UtAssert_INT32_EQ(CFE_ES_GetAppInfo(&TestAppInfo, TestAppId), CFE_SUCCESS); - UtAssert_INT32_EQ(CFE_ES_GetModuleInfo(&ModuleInfo, TestAppId), CFE_SUCCESS); + UtAssert_INT32_EQ(CFE_ES_GetModuleInfo(&ModuleInfo, CFE_RESOURCEID_UNWRAP(TestAppId)), CFE_SUCCESS); UtAssert_StrCmp(TestAppInfo.Name, ModuleInfo.Name, "App Info Name (%s) = Module Info Name (%s) ", TestAppInfo.Name, ModuleInfo.Name); UtAssert_INT32_EQ(CFE_ES_GetLibIDByName(&LibIdByName, LibName), CFE_SUCCESS); UtAssert_INT32_EQ(CFE_ES_GetLibInfo(&LibInfo, LibIdByName), CFE_SUCCESS); - UtAssert_INT32_EQ(CFE_ES_GetModuleInfo(&ModuleInfo, LibIdByName), CFE_SUCCESS); + UtAssert_INT32_EQ(CFE_ES_GetModuleInfo(&ModuleInfo, CFE_RESOURCEID_UNWRAP(LibIdByName)), CFE_SUCCESS); UtAssert_StrCmp(LibInfo.Name, ModuleInfo.Name, "Lib Info Name (%s) = Module Info Name (%s) ", LibInfo.Name, ModuleInfo.Name); - UtAssert_INT32_EQ(CFE_ES_GetModuleInfo(&ModuleInfo, OS_OBJECT_ID_UNDEFINED), CFE_ES_ERR_RESOURCEID_NOT_VALID); - UtAssert_INT32_EQ(CFE_ES_GetModuleInfo(NULL, TestAppId), CFE_ES_BAD_ARGUMENT); + UtAssert_INT32_EQ(CFE_ES_GetModuleInfo(&ModuleInfo, CFE_RESOURCEID_UNDEFINED), CFE_ES_ERR_RESOURCEID_NOT_VALID); + UtAssert_INT32_EQ(CFE_ES_GetModuleInfo(NULL, CFE_RESOURCEID_UNWRAP(TestAppId)), CFE_ES_BAD_ARGUMENT); } int32 ESInfoTestSetup(int32 LibId)