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

Integration Candidate: 2020-06-24 #765

Merged
merged 14 commits into from
Jul 26, 2020
Merged

Integration Candidate: 2020-06-24 #765

merged 14 commits into from
Jul 26, 2020

Conversation

astrogeco
Copy link
Contributor

@astrogeco astrogeco commented Jul 1, 2020

Describe the contribution
Fix #710
Fix #724
Fix #739
Fix #746
Fix #747
Fix #752
Fix #762
Fix #766
Fix #774

Resolve #770

Testing performed
Bundle CI - https://github.com/nasa/cFS/pull/108/checks

Expected behavior changes

PR #748 - Update CFE_SB_TimeStampMsg to save the message pointer argument UT_Stub_CopyFromLocal so that unit tests can check it

PR #751 - Only affects build system. Fully backward compatible. The defaults are applied if a user has nothing specifically configured in their targets.cmake. The defaults will select osal, cfe-core, and psp as before. The user now has the option to explicitly configure and control the inclusion of these modules and also provide mission-specific search paths to override them as desired.

PR #763 - Note this only affects UT stubs. Change the internal names of some stub arguments to match prototype. Ensure that:

  • All functions in the CFE public API have a stub function implemented
  • All parameters to the stub function are registered in the context object, so the values will be available to hook functions.
  • The names of all parameters match the prototype/documentation, so hook functions that use name-based argument value retrieval will work.

PR #767 - Adds to table search path in arch_build.cmake

PR #768 - Calls to OS_open() now use the OSAL-defined symbol, not the POSIX symbol.

PR #771 - Defines new macros to report the build number and build baseline and new strings containing the version number of cFE and a combined string with the version number for OSAL, PSP, and CFE.

PR #773 - Allow explicitly setting of the processor ID in targets.cmake. The TGTx_PROCESSOR_ID setting will be passed to the final build/link of CFE core as the CPU ID. If unspecified, then the CMake index value is used instead (backward compatible).

PR #775 - cmake now detects conditions where no files were present to fulfill an config include file requirement and reports an error during make prep lists the files it checked for rather than generating an empty file.

System(s) tested on
Ubuntu - CI

Additional context
Part of nasa/cFS#108

Third party code
None

Contributor Info - All information REQUIRED for consideration of pull request
Jacob Hageman, NASA-GSFC
Joseph Hickey, Vantage Systems, Inc.
Gerardo Cruz-Ortiz, NASA-GSFC

@astrogeco astrogeco marked this pull request as ready for review July 1, 2020 14:22
@astrogeco astrogeco marked this pull request as draft July 1, 2020 14:22
@astrogeco astrogeco changed the title Integration candidate Integration Candidate: 2020-06-24 Jul 6, 2020
@astrogeco astrogeco marked this pull request as ready for review July 6, 2020 14:06
@astrogeco astrogeco force-pushed the integration-candidate branch 3 times, most recently from 790d836 to eecbac7 Compare July 25, 2020 21:54
jphickey and others added 13 commits July 26, 2020 00:03
Add more hooks for additional flexibility when adding
modular code blobs into the build.

Three new directives are added:

MISSION_CORE_MODULES, for modular components which are
direct dependencies of CFE core and/or extend its functionality.

MISSION_GLOBAL_APPLIST, for applications/libraries which
should be built for every target, as if they were listed
in every TGTx_APPLIST setting.

MISSION_GLOBAL_STATIC_APPLIST, same as above but for the
TGTx_STATIC_APPLIST setting.

This also simplifies/reworks the search path to remove
some logic that was never really utilized.
The existing build system built target executables grouped by toolchain
as a proxy for CPU architecture + machine options/flags.  The app binaries
would be built once and copied to any/all targets sharing that toolchain.

The side effect of doing this is that the application needs to be written
in an CPU-agnostic manner, performing its subscriptions and configurations
from runtime table data rather than hardcoded/fixed values.  Unfortunately
most apps are not coded that way, so workarounds were needed.

This changes the top level process to include the "platform" within this
target build logic, effectively treating different platform configs as
entirely different builds, even if they share the same toolchain file.

As a result, binaries will only be shared between targets that explicitly
set the "TGTx_PLATFORM" setting in targets.cmake to the same value.
Put more dependencies into the "mission_defaults.cmake" file for
more visibility and ease of configuration.  This now includes all
"implicit" modules such as cfe-core, osal, and psp.

Also push the calls to "generate_config_includefile" to a sub-script
which can be distributed with each app and evaluated as part of the
build.  This reduces dependencies on special naming conventions like
"fsw/mission_inc" and "fsw/platform_inc", and apps can explicitly manage
the files that users are expected to override.
In ut_sb_stubs.c, update CFE_SB_TimeStampMsg  to save the message
pointer argument with UT_Stub_CopyFromLocal so that unit tests can check
it
Scrubs all CFE unit test functions to ensure that:

1. All functions in the CFE public API have a stub function implemented
2. All parameters to the stub function are registered in the context object,
   so the values will be available to hook functions.
3. The names of all parameters match the prototype/documentation, so hook
   functions that use name-based argument value retrieval will work.
Now that TARGETSYSTEM is a list, it needs to do a foreach
on each list component to work the same as it did before.
Calls to OS_open() must use the OSAL-defined symbol, not the POSIX symbol.
This was a long-standing bug but happened to work because they are both
zero.
Adding a subdirectory with an empty/undefined string is interpreted
as the current directory, which ends up triggering an infinite loop.

This can occur if the variables/lists were modified in an unexpected
manner.
Report an error if no files are available to fulfill an
include file requirement, rather than leaving an empty file.
Add support for a TGTx_PROCESSOR_ID directive, which allows
one to set the default value returned by CFE_PSP_GetProcessorId()
function, rather than assuming the index value from CMake.
Update Version Numbers description to remove statement on Revision number increases with development build
Add description for build name and build number.

Add buildnumber macro
Add CFE_VERSION
Add CFE_VERSION_STRING macro
Use CFE_VERSION to event messages for different services
Check for OSAL_VERSION and CFE_PSP_VERSION macros and populate them with version numbers if they don't exist.
Add CFS_VERSIONS macro

Use new version string in event messages

Use new macros in evs and tbl startup events
…her fixes

Moved documentation and version code template from cfe_version.h to
cfs_versions.dox

Rename CFE_VERSION to CFE_SRC_VERSION to avoid conflict with cmake-generated git-based enhanced versioning.

Fix doxygen comment structure error.
@astrogeco astrogeco merged commit deeb294 into master Jul 26, 2020
@skliper skliper added this to the 6.8.0 milestone Aug 21, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment