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

cFE Integration candidate: 2021-02-23 #1171

Merged
merged 13 commits into from
Feb 26, 2021
Merged

cFE Integration candidate: 2021-02-23 #1171

merged 13 commits into from
Feb 26, 2021

Conversation

astrogeco
Copy link
Contributor

@astrogeco astrogeco commented Feb 17, 2021

Describe the contribution
Fix #139, Do file writes in background
Fix #978, put task parameters into task record
Fix #790, allow directories and symlinks in FILELIST.
Fix #735, add comment if null terminated or not.

Fix #1160, Shorten task info default filename
Fix #1172, Update to use Ut_Stub_CheckDefaultReturnValue API

Testing performed
See https://github.com/nasa/cFS/pull/193/checks

Expected behavior changes
PR #1148 - Implements a generic FS facility to perform file writes as a background job. Applications wanting to use this need to instantiate a state object (metadata) in global memory and two callback APIs, one to get a data record, another to send events. The following file requests are changed to use this facility:

  • ES ER Log dump
  • SB Pipe Info
  • SB Message Map
  • SB Route Info
  • TBL Registry Dump

Changes the internal SB member names for consistency and thus fixes propagation of Depth and CurrentDepth into files:

  • MaxQueueDepth for maximum depth at queue creation time (previously was QueueDepth or Depth depending on context)
  • CurrentQueueDepth for the running count (previously was InUse or CurrentDepth depending on context)
  • PeakQueueDepth for the highest "watermark" (previously was PeakInUse or PeakDepth depending on context)

PR #1151 - No public API change. Encapsulates all parameters for apps and tasks into a structure object. Cleans up internal APIs to pass this new object rather than individual parameters. Adds details to the relevant record (i.e. a task record has all relevant task details) which eliminates the need to traverse the app record to find some data.

PR #1158 - Enables items in FILELIST to be in a target name directory as well as symlinks. arch_build.cmake now checks a name-based subdirectory under ${MISSION_DEFS} for files listed in the FILELIST for that target. If file is a symlink, the link should be followed so the correct content is installed, not a symlink.

PR #1168 - Mo impacts to behavior. Adds documentation on inclusion presence of null terminators for length parameters.

PR #1175 - Shortened CFE_PLATFORM_ES_DEFAULT_TASK_LOG_FILE name so it is within the OSAL_MAX_FILE_NAME size limit. Will now output task info to default filename if no filename is provided in command.

PR #1173 - Replaces UT_Stub_SetForceFail with UT_Stub_SetDefaultReturnValue. No behavior change.

System(s) tested on
Ubuntu 18.04

Additional context
Part of nasa/cFS#193

Third party code
None

Contributor Info - All information REQUIRED for consideration of pull request
@jphickey
@zanzaben

jphickey and others added 4 commits February 5, 2021 16:49
Checks a name-based subdirectory under ${MISSION_DEFS} for
files listed in the FILELIST for that target.

If file is a symlink, the link should be followed so the correct
content is installed, not a symlink.
Implements a generic asynchronous "file write request" facility
in the FS subsystem.  Given a metadata/control block with the file
details and writer state and appropriate callbacks,, this will
execute the file write job as part of the ES background task.

The following file requests are changed to use this facility:
- ES ER Log dump
- SB Pipe Info
- SB Message Map
- SB Route Info
- TBL Registry Dump
Implement a "CFE_ES_TaskStartParams_t" to complement the
existing "CFE_ES_AppStartParams_t" and store this in the
task record.

This permits some nice cleanup:

- All tasks can now use the same basic start function CFE_ES_StartAppTask()
- No special/different logic is needed for main tasks/child tasks
- Simplified APIs as parameters can be encapsulated in a single struct.
- Fixes a race condition where child tasks may not be fully instantiated
  at the time the task function is invoked.
Fix #1172, Update to use Ut_Stub_CheckDefaultReturnValue API
Fix #1160, Shorten task info default filename
@astrogeco astrogeco marked this pull request as ready for review February 26, 2021 17:16
@astrogeco
Copy link
Contributor Author

CodeQL fails due to dependency on osal, cFS bundle level PR checks are succesful

@astrogeco astrogeco merged commit 672b2dc into main Feb 26, 2021
astrogeco added a commit to nasa/cFS that referenced this pull request Feb 26, 2021
@skliper skliper added this to the 7.0.0 milestone Sep 24, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment