-
Notifications
You must be signed in to change notification settings - Fork 215
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix #1021, resolve discrepancies between task API and unit tests #1037
Fix #1021, resolve discrepancies between task API and unit tests #1037
Conversation
965a1fd
to
11fe719
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OS_TaskCreate - should test NULL stack address case (allocate from heap)
OS_TaskInstallDeleteHandler - check that delete handler actually gets called
OS_TaskDelay - add a check the delay actually delays? we depend on this working all over the place but I never see it actually checked
OS_TaskPriority - add a check that setting priority is actually respected
OS_TaskGetId - automate this check, pass in the pointer to the ID?
OS_TaskFindIdBySystemData - needs test
I suggest we hold off on this one until @jphickey and I have a chance to discuss |
Here's my take:
|
Commit 2d7d575 adds a check for OS_TaskCreate with NULL stack (dynamically allocate), checks that the task delete handler was invoked, and confirms that OS_TaskDelay actually delayed by comparing with OS_GetLocalTime. |
1870d32
to
2d7d575
Compare
@astrogeco @ejtimmon Since priority/scheduling testing is pretty much impossible to verify in a generic sense (without system/configuration knowledge), how about extending the OSAL example work to include a sample test that could confirm the MCP750 specific system setup (single core, whatever task scheduling is used)? So this wouldn't be a built-in open-source OSAL unit test, but could be used to show things work as expected on the MCP750. Would be great if this could eventually be extended to include a multi-cpu test, linux and RTEMS... but will still be system/configuration dependent. I'll mark/report testing of priorities and scheduling as a project/distribution test responsibility and not confirmed generically using OSAL unit tests. |
Concur w/ all responses, fixes. Good to go. Note OS_TaskGetId comment was stale, so no longer applicable. |
If we resurrect the tasking-example as has been discussed, that might be a good place to demonstrate priorities. I also thought we could check semaphore priorities. That is, if we create a low priority task first, let it block, then create a high priority task, and have it block on the same sem. If we then give the sem, only the high priority task should wake up. If we give it a second time then the low priority task should wake up. This would confirm priority-based semaphores which IIRC we are using, if the sem was configured as a FIFO then it would fail this test. That test case could theoretically be done in the current tests but we would likely have to bypass it when OSAL_CONFIG_DEBUG_PERMISSIVE_MODE is enabled. Also, the |
Ensures correlation between the unit-tests and documented return values for the OSAL task API. Also adds the following test cases: - Call OS_TaskCreate with a NULL stack pointer - Confirm OS_TaskDeleteHandler function was invoked - Confirm OS_TaskDelay interval
2d7d575
to
a987a20
Compare
Re-Pushed to correct commit message typo and squash commits where necessary |
Good suggestion! Could you submit a new issue?
Isn't there a set of user level priorities that do still work in permissive? Can we stay in that range?
Good suggestion/update! Could you submit a new issue? |
Submitted issue #1059 for above |
Update nasa/osal#1058 Includes: nasa/osal#1044, resolve discrepancies between mutex API and unit tests nasa/osal#1038, resolve discrepancies between queue API and unit tests nasa/osal#1037, resolve discrepancies between task API and unit tests nasa/osal#1051, resolve discrepancies between timebase API and unit tests nasa/osal#1030, check misc API return codes nasa/osal#1039, Rename CodeQL cFE Build and add Duplicate Job nasa/osal#1049, filter only whole words for keyword match
Update nasa/osal#1058 Includes: nasa/osal#1044, resolve discrepancies between mutex API and unit tests nasa/osal#1038, resolve discrepancies between queue API and unit tests nasa/osal#1037, resolve discrepancies between task API and unit tests nasa/osal#1051, resolve discrepancies between timebase API and unit tests nasa/osal#1030, check misc API return codes nasa/osal#1039, Rename CodeQL cFE Build and add Duplicate Job nasa/osal#1049, filter only whole words for keyword match
- #263, bundle Combines: - nasa/cFE#1584, v6.8.0-rc1+dev642 - nasa/osal#1058, v5.1.0-rc1+dev500 - nasa/sch_lab#82, v2.4.0-rc1+dev36 Includes: - nasa/cFE#1580, Update ES verify errors to match test - nasa/cFE#1578, Resolve mismatched endforeach of CMakeList.txt - nasa/cFE#1579, Improve event filter documentation - nasa/cFE#1576, EVS/FS documentation cleanup - nasa/cFE#1575, Remove shell file subtype and clarify scope - nasa/cFE#1582, Simplify file open/truncate logic - nasa/cFE#1567, Remove deprecated elements - nasa/cFE#1556, Replace Header Content Type magic number - nasa/cFE#1553, Remove unused EVS LogMode defines - nasa/cFE#1570, Document cleanup from SB/MSG/SBR review, Remove unused CFE_SB_NO_SUBSCRIBERS - nasa/cFE#1565, Add CFE_SB_DestinationD tag and use for pointers - nasa/cFE#1564, Use CFE_MSG_SequenceCount_t for seqcnt type - nasa/cFE#1562, Document CFE_ES_PoolCreateEx NumBlockSizes error handling - nasa/cFE#1560, Documentation cleanup in TBL/TIME - nasa/cFE#1558, Document TblName as app specific - nasa/cFE#1563, use OSAL script to generate API guide - nasa/cFE#1557, Include verify headers to validate config - nasa/cFE#1555, add doxygen aliases for OSAL parameter/retvals - nasa/osal#1033, include doxygen targets locally - nasa/osal#1031, Document OS_ObjectIdToArrayIndex as public - nasa/osal#1040, resolve discrepancies between binsem API and unit tests - nasa/osal#1029, add missing clock retcode tests - nasa/osal#1046, resolve discrepancies between common API and unit tests - nasa/osal#1041, resolve discrepancies between countsem API and unit tests - nasa/osal#1045, resolve discrepancies between dir API and unit tests - nasa/osal#1043, resolve discrepancies between module API and unit tests - nasa/osal#1044, resolve discrepancies between mutex API and unit tests - nasa/osal#1038, resolve discrepancies between queue API and unit tests - nasa/osal#1037, resolve discrepancies between task API and unit tests - nasa/osal#1051, resolve discrepancies between timebase API and unit tests - nasa/osal#1030, check misc API return codes - nasa/osal#1039, Rename CodeQL cFE Build and add Duplicate Job - nasa/osal#1049, filter only whole words for keyword match - nasa/osal#962, update OSAL Config Guide link - nasa/sch_lab#81, exit the main loop if init fails - HOTFIX cFS-bundle, Use new osalguide logfile to fix documentation build workflow errors,
- #263, bundle Combines: - nasa/cFE#1584, v6.8.0-rc1+dev642 - nasa/osal#1058, v5.1.0-rc1+dev500 - nasa/sch_lab#82, v2.4.0-rc1+dev36 Includes: - nasa/cFE#1580, Update ES verify errors to match test - nasa/cFE#1578, Resolve mismatched endforeach of CMakeList.txt - nasa/cFE#1579, Improve event filter documentation - nasa/cFE#1576, EVS/FS documentation cleanup - nasa/cFE#1575, Remove shell file subtype and clarify scope - nasa/cFE#1582, Simplify file open/truncate logic - nasa/cFE#1567, Remove deprecated elements - nasa/cFE#1556, Replace Header Content Type magic number - nasa/cFE#1553, Remove unused EVS LogMode defines - nasa/cFE#1570, Document cleanup from SB/MSG/SBR review, Remove unused CFE_SB_NO_SUBSCRIBERS - nasa/cFE#1565, Add CFE_SB_DestinationD tag and use for pointers - nasa/cFE#1564, Use CFE_MSG_SequenceCount_t for seqcnt type - nasa/cFE#1562, Document CFE_ES_PoolCreateEx NumBlockSizes error handling - nasa/cFE#1560, Documentation cleanup in TBL/TIME - nasa/cFE#1558, Document TblName as app specific - nasa/cFE#1563, use OSAL script to generate API guide - nasa/cFE#1557, Include verify headers to validate config - nasa/cFE#1555, add doxygen aliases for OSAL parameter/retvals - nasa/osal#1033, include doxygen targets locally - nasa/osal#1031, Document OS_ObjectIdToArrayIndex as public - nasa/osal#1040, resolve discrepancies between binsem API and unit tests - nasa/osal#1029, add missing clock retcode tests - nasa/osal#1046, resolve discrepancies between common API and unit tests - nasa/osal#1041, resolve discrepancies between countsem API and unit tests - nasa/osal#1045, resolve discrepancies between dir API and unit tests - nasa/osal#1043, resolve discrepancies between module API and unit tests - nasa/osal#1044, resolve discrepancies between mutex API and unit tests - nasa/osal#1038, resolve discrepancies between queue API and unit tests - nasa/osal#1037, resolve discrepancies between task API and unit tests - nasa/osal#1051, resolve discrepancies between timebase API and unit tests - nasa/osal#1030, check misc API return codes - nasa/osal#1039, Rename CodeQL cFE Build and add Duplicate Job - nasa/osal#1049, filter only whole words for keyword match - nasa/osal#962, update OSAL Config Guide link - nasa/sch_lab#81, exit the main loop if init fails - HOTFIX cFS-bundle, Use new osalguide logfile to fix documentation build workflow errors, Co-authored-by: Joseph Hickey <jphickey@users.noreply.github.com> Co-authored-by: Jake Hageman skliper <skliper@users.noreply.github.com> Co-authored-by: Alex Campbell <zanzaben@users.noreply.github.com> Co-authored-by: Ariel Adams <ArielSAdamsNASA@users.noreply.github.com> Co-authored-by: Ross Peters <rosspeters6@users.noreply.github.com>
Describe the contribution
Ensures correlation between the unit-tests and documented return values for the OSAL task API.
Fixes #1021
Testing performed
Build and run unit tests, re-run cross reference script to confirm
Expected behavior changes
All documented return values are tested or noted that they cannot be tested in functional test
System(s) tested on
Ubuntu
Contributor Info - All information REQUIRED for consideration of pull request
Joseph Hickey, Vantage Systems, Inc.