Skip to content
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 #871, allow OSAL re-initialization #941

Merged

Conversation

jphickey
Copy link
Contributor

@jphickey jphickey commented Apr 2, 2021

Describe the contribution
Replaces the separate "Initialized" and "Shutdown" flags with a single state flag. This simplifies things and makes for a single source of truth for the state of OSAL globally.

Note this is not strictly necessary, but it will likely be required if the intent is to be able to run tests (and OS_API_Init()) multiple times without a reboot in the middle to reset the state.

Fixes #871
Fixes #691

Testing performed
Build and sanity check CFE
Run all unit tests

Expected behavior changes

  • Multiple invocations of OS_API_Init() are allowed - subsequent calls can be ignored
  • Deleting of any internal objects that did get created if OS_API_Init() fails (this leaves system in same state as when it started)
  • Allows Re-initialization of OSAL after OS_ApplicationShutdown() - may be relevant when running unit tests several times without rebooting.

System(s) tested on
Ubuntu 20.04

Contributor Info - All information REQUIRED for consideration of pull request
Joseph Hickey, Vantage Systems, Inc.

Replaces the separate "Initialized" and "Shutdown" flags with a single
state flag.  This simplifies things and makes for a single source
of truth for the state of OSAL globally.

In particular this allows for:
- Multiple invocations of OS_API_Init() - subsequent calls can be ignored
- Deleting of any internal objects that did get created if OS_API_Init() fails
  (leaves system in same state as when it started)
- Allows Re-initialization of OSAL after OS_ApplicationShutdown() - may be
  relevant when running unit tests several times without rebooting.
@jphickey jphickey added the CCB:Ready Pull request is ready for discussion at the Configuration Control Board (CCB) label Apr 7, 2021
@astrogeco
Copy link
Contributor

astrogeco commented Apr 7, 2021

CCB:2021-04-07 APPROVED

  • VxWorks doesn't allow calling OS_API_Init without a reboot
  • Now allows multiple calls and report SUCCESS where appropriate

@astrogeco astrogeco added CCB:Approved Indicates code review and approval by community CCB and removed CCB:Ready Pull request is ready for discussion at the Configuration Control Board (CCB) labels Apr 7, 2021
@astrogeco astrogeco changed the base branch from main to integration-candidate April 11, 2021 16:44
@astrogeco astrogeco merged commit b7e9603 into nasa:integration-candidate Apr 11, 2021
astrogeco added a commit to nasa/cFS that referenced this pull request Apr 11, 2021
Allow OSAL re-initialization
Combine initialized and shutdown flags into one
astrogeco added a commit to nasa/cFS that referenced this pull request Apr 12, 2021
Combines

nasa/osal#956
nasa/cFE#1295

Including:

nasa/osal#941 - Allow OSAL re-initialization
nasa/osal#941 - Combine initialized and shutdown flags into one
nasa/osal#948 - Add OS_API_Teardown
nasa/osal#948 - Black Box Unit Tests Do Not Ensure Resources Are Cleaned Up Between Tests
nasa/osal#940 - Rework shell test

nasa/cFE#1276 - Use events for CFE test asserts
@jphickey jphickey deleted the fix-871-osal-global-state branch April 28, 2021 18:58
@skliper skliper added this to the 6.0.0 milestone Sep 24, 2021
jphickey pushed a commit to jphickey/osal that referenced this pull request Aug 10, 2022
Fix nasa#940, Add module suffix and core name to configdata
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CCB:Approved Indicates code review and approval by community CCB
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Return success on multiple OS_API_Init calls Combine initialized and shutdown flags into one
3 participants