Skip to content

Fix #2805, reduce time complexity - #2827

Open
chillfig wants to merge 1 commit into
nasa:devfrom
chillfig:fix-2805-time-complexity
Open

Fix #2805, reduce time complexity#2827
chillfig wants to merge 1 commit into
nasa:devfrom
chillfig:fix-2805-time-complexity

Conversation

@chillfig

@chillfig chillfig commented Sep 1, 2026

Copy link
Copy Markdown
Member

name: FSW Code Change
about: Flight Software code changes
labels: fsw

Description of Change

Splits CFE_TIME_TaskInit into five smaller helper functions.

  • one each for creating resources,
  • subscribing to messages,
  • sending the init event, and
  • setting up the 1Hz timer,
  • plus a small shim that handles the time-client vs time-server subscription difference in one place instead of six.

This drops the function's cyclomatic complexity from 25 to 5, with no helper above 9, meeting the less than 15 requirement. Nothing functional/behavioral changes

Note that we pass the original function string as LogFunction so the log avoids using helper function naming.

Linked Issue

Closes #2805

Requirements Impact

  • Requirement ID(s):
  • Requirements updated as necessary
  • Existing requirements are still satisfied by this change

Testing Evidence

build, unit, and functional testing

Unit Tests (UT Assert)

COSMOS Test Suite

Areas of Expertise Touched

  • ASTRO
  • CI/CD
  • COSMOS
  • Cybersecurity
  • Docker
  • EDS
  • Git
  • PSPs
  • SBN
  • SMP
  • Tables
  • TSN
  • Unit Tests
  • Other

Author Checklist

  • Linked GitHub issue is referenced above
  • Code has been formatted with .clang-format
  • Static analysis workflows ran and passed
  • Unit tests (UT Assert) updated/added to cover code changes
  • Unit test workflows ran and passed
  • COSMOS test suite was run; tests updated/added if relevant changes were made
  • Requirements have been reviewed; updated or confirmed still satisfied (see above)
  • Testing evidence is included above
  • Self-review of the diff completed

Reviewer Checklist

  • Code logic is correct and matches the stated intent
  • Code is readable, maintainable, and follows project conventions (ask your lead if you are unsure of where to find these conventions)
  • .clang-format has been applied
  • Static analysis results reviewed and acceptable
  • The change has been exercised by the unit tests (not just that tests pass — the new/changed code paths are actually covered)
  • COSMOS test suite was executed against this change and results reviewed (or confirmed N/A with justification)
  • Reviewer has independently verified the change behaves as described (e.g., by running the tests locally, reviewing CI output in detail, or performing additional ad-hoc testing as warranted)
  • Memory safety reviewed (allocation, bounds, lifetime, stack usage)
  • Requirements impact reviewed and appropriate
  • Error handling is appropriate
  • Appropriate Expert areas have been reviewed

Reviewer Testing Notes

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

A function in cfe_time_task.c has complexity > 15

2 participants