From 6eab62ff04651420d854cb0c22f96077a0316641 Mon Sep 17 00:00:00 2001 From: "Jose F. Martinez Pedraza" Date: Tue, 10 Aug 2021 15:54:42 -0400 Subject: [PATCH] Fix #812 Add Perf API functional tests Add Perf Trigger and Perf Start commands to functional tests workflow --- .github/workflows/functional-tests.yml | 2 + modules/cfe_testcase/CMakeLists.txt | 1 + modules/cfe_testcase/src/cfe_test.c | 1 + modules/cfe_testcase/src/cfe_test.h | 1 + modules/cfe_testcase/src/es_perf_test.c | 63 +++++++++++++++++++++++++ modules/es/fsw/src/cfe_es_perf.c | 1 + 6 files changed, 69 insertions(+) create mode 100644 modules/cfe_testcase/src/es_perf_test.c diff --git a/.github/workflows/functional-tests.yml b/.github/workflows/functional-tests.yml index 7f0ff0965..65462a95b 100644 --- a/.github/workflows/functional-tests.yml +++ b/.github/workflows/functional-tests.yml @@ -67,6 +67,8 @@ jobs: run: | ./core-cpu1 & sleep 10 + ../host/cmdUtil --pktid=0x1806 --cmdcode=17 --endian=LE --uint32=3 --uint32=0x40000000 & + ../host/cmdUtil --pktid=0x1806 --cmdcode=14 --endian=LE --uint32=2 & ../host/cmdUtil --pktid=0x1806 --cmdcode=4 --endian=LE --string="20:CFE_TEST_APP" --string="20:CFE_TestMain" --string="64:cfe_testcase" --uint32=16384 --uint8=0 --uint8=0 --uint16=100 & sleep 30 diff --git a/modules/cfe_testcase/CMakeLists.txt b/modules/cfe_testcase/CMakeLists.txt index 8189dba9b..e2ac654bb 100644 --- a/modules/cfe_testcase/CMakeLists.txt +++ b/modules/cfe_testcase/CMakeLists.txt @@ -6,6 +6,7 @@ add_cfe_app(cfe_testcase src/es_task_test.c src/es_cds_test.c src/es_misc_test.c + src/es_perf_test.c src/es_mempool_test.c src/evs_send_test.c src/fs_header_test.c diff --git a/modules/cfe_testcase/src/cfe_test.c b/modules/cfe_testcase/src/cfe_test.c index b1dbe4767..bb4b3ed32 100644 --- a/modules/cfe_testcase/src/cfe_test.c +++ b/modules/cfe_testcase/src/cfe_test.c @@ -55,6 +55,7 @@ void CFE_TestMain(void) ESInfoTestSetup(); ESMemPoolTestSetup(); ESMiscTestSetup(); + ESPerfTestSetup(); ESTaskTestSetup(); EVSSendTestSetup(); FSHeaderTestSetup(); diff --git a/modules/cfe_testcase/src/cfe_test.h b/modules/cfe_testcase/src/cfe_test.h index 558b0a1f6..27e6fc3ea 100644 --- a/modules/cfe_testcase/src/cfe_test.h +++ b/modules/cfe_testcase/src/cfe_test.h @@ -84,6 +84,7 @@ void ESCDSTestSetup(void); void ESInfoTestSetup(void); void ESMemPoolTestSetup(void); void ESMiscTestSetup(void); +void ESPerfTestSetup(void); void ESTaskTestSetup(void); void EVSSendTestSetup(void); void FSHeaderTestSetup(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..c65d28d24 --- /dev/null +++ b/modules/cfe_testcase/src/es_perf_test.c @@ -0,0 +1,63 @@ +/************************************************************************* +** +** 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 TestPerfLogApi(void) +{ + UtPrintf("Testing: CFE_ES_PerfLogEntry"); + 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)); + + UtPrintf("Testing: CFE_ES_PerfLogExit"); + 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)); + + UtPrintf("Testing: CFE_ES_PerfLogAdd"); + UtAssert_VOIDCALL(CFE_ES_PerfLogAdd(0, 0)); + UtAssert_VOIDCALL(CFE_ES_PerfLogAdd(0, 1)); + 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, 0)); + UtAssert_VOIDCALL(CFE_ES_PerfLogAdd(CFE_MISSION_ES_PERF_MAX_IDS, 1)); + + UtPrintf("Testing: CFE_ES_PerfLogAdd Triggered"); + UtAssert_VOIDCALL(CFE_ES_PerfLogAdd(126, 0)); + UtAssert_VOIDCALL(CFE_ES_PerfLogAdd(126, 1)); + +} + +void ESPerfTestSetup(void) +{ + UtTest_Add(TestPerfLogApi, NULL, NULL, "Test Performance API"); +} diff --git a/modules/es/fsw/src/cfe_es_perf.c b/modules/es/fsw/src/cfe_es_perf.c index bb50bd385..b86b57d2f 100644 --- a/modules/es/fsw/src/cfe_es_perf.c +++ b/modules/es/fsw/src/cfe_es_perf.c @@ -688,6 +688,7 @@ void CFE_ES_PerfLogAdd(uint32 Marker, uint32 EntryExit) /* triggered */ if (Perf->MetaData.State == CFE_ES_PERF_TRIGGERED) { + OS_printf("------ wao $ triggered\n"); Perf->MetaData.TriggerCount++; if (Perf->MetaData.Mode == CFE_ES_PERF_TRIGGER_START) {