diff --git a/modules/cfe_testcase/CMakeLists.txt b/modules/cfe_testcase/CMakeLists.txt index c5abc909e..31ba90dc5 100644 --- a/modules/cfe_testcase/CMakeLists.txt +++ b/modules/cfe_testcase/CMakeLists.txt @@ -12,6 +12,7 @@ add_cfe_app(cfe_testcase src/es_counter_test.c src/es_misc_test.c src/es_mempool_test.c + src/es_perf_test.c src/es_resource_id_test.c src/evs_filters_test.c src/evs_send_test.c diff --git a/modules/cfe_testcase/src/cfe_test.c b/modules/cfe_testcase/src/cfe_test.c index 580074d4f..c009b6efd 100644 --- a/modules/cfe_testcase/src/cfe_test.c +++ b/modules/cfe_testcase/src/cfe_test.c @@ -64,6 +64,7 @@ void CFE_TestMain(void) ESInfoTestSetup(); ESMemPoolTestSetup(); ESMiscTestSetup(); + ESPerfTestSetup(); ESResourceIDTestSetup(); ESTaskTestSetup(); EVSFiltersTestSetup(); diff --git a/modules/cfe_testcase/src/cfe_test.h b/modules/cfe_testcase/src/cfe_test.h index 09614a2c5..e386094cf 100644 --- a/modules/cfe_testcase/src/cfe_test.h +++ b/modules/cfe_testcase/src/cfe_test.h @@ -95,6 +95,7 @@ void ESCounterTestSetup(void); void ESInfoTestSetup(void); void ESMemPoolTestSetup(void); void ESMiscTestSetup(void); +void ESPerfTestSetup(void); void ESResourceIDTestSetup(void); void ESTaskTestSetup(void); void EVSFiltersTestSetup(void); diff --git a/modules/cfe_testcase/src/es_perf_test.c b/modules/cfe_testcase/src/es_perf_test.c new file mode 100644 index 000000000..ac84286bc --- /dev/null +++ b/modules/cfe_testcase/src/es_perf_test.c @@ -0,0 +1,74 @@ +/************************************************************************* +** +** 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_perf_test.c +** +** Purpose: +** Functional test of ES Performance APIs +** +*************************************************************************/ + +/* + * Includes + */ + +#include "cfe_test.h" + +void TestPerfLogEntry(void) +{ + UtAssert_VOIDCALL(CFE_ES_PerfLogEntry(0)); + UtAssert_VOIDCALL(CFE_ES_PerfLogEntry(CFE_MISSION_ES_PERF_MAX_IDS - 1)); + UtAssert_VOIDCALL(CFE_ES_PerfLogEntry(CFE_MISSION_ES_PERF_MAX_IDS)); +} + +void TestPerfLogExit(void) +{ + UtAssert_VOIDCALL(CFE_ES_PerfLogExit(0)); + UtAssert_VOIDCALL(CFE_ES_PerfLogExit(CFE_MISSION_ES_PERF_MAX_IDS - 1)); + UtAssert_VOIDCALL(CFE_ES_PerfLogExit(CFE_MISSION_ES_PERF_MAX_IDS)); +} + +void TestPerfLogAdd(void) +{ + UtAssert_VOIDCALL(CFE_ES_PerfLogAdd(0, 0)); + UtAssert_VOIDCALL(CFE_ES_PerfLogAdd(0, 1)); + UtAssert_VOIDCALL(CFE_ES_PerfLogAdd(0, 0xFFFFFFFF)); + UtAssert_VOIDCALL(CFE_ES_PerfLogAdd(CFE_MISSION_ES_PERF_MAX_IDS - 1, 0)); + UtAssert_VOIDCALL(CFE_ES_PerfLogAdd(CFE_MISSION_ES_PERF_MAX_IDS - 1, 1)); + UtAssert_VOIDCALL(CFE_ES_PerfLogAdd(CFE_MISSION_ES_PERF_MAX_IDS - 1, 0xFFFFFFFF)); + UtAssert_VOIDCALL(CFE_ES_PerfLogAdd(CFE_MISSION_ES_PERF_MAX_IDS, 0)); + UtAssert_VOIDCALL(CFE_ES_PerfLogAdd(CFE_MISSION_ES_PERF_MAX_IDS, 1)); + UtAssert_VOIDCALL(CFE_ES_PerfLogAdd(CFE_MISSION_ES_PERF_MAX_IDS, 0xFFFFFFFF)); +} + +/* These commands should trigger and stop perf data (based on value commanded in functional test workflow) */ +void TestPerfLogTrigger(void) +{ + UtAssert_VOIDCALL(CFE_ES_PerfLogEntry(126)); + UtAssert_VOIDCALL(CFE_ES_PerfLogExit(126)); +} + +void ESPerfTestSetup(void) +{ + UtTest_Add(TestPerfLogEntry, NULL, NULL, "Test PerfLogEntry"); + UtTest_Add(TestPerfLogExit, NULL, NULL, "Test PerfLogExit"); + UtTest_Add(TestPerfLogAdd, NULL, NULL, "Test PerfLogAdd"); + UtTest_Add(TestPerfLogTrigger, NULL, NULL, "Test Perf Trigger"); +}