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

Add a companion test app for additional API coverage and lab app independence #1761

Open
skliper opened this issue Aug 4, 2021 · 0 comments

Comments

@skliper
Copy link
Contributor

skliper commented Aug 4, 2021

Is your feature request related to a problem? Please describe.
Currently the functional test (see #1734) relies on sample_app running to test the table share API, there's also other APIs that would be easier or could be more fully covered if there was another app owned by the functional test (app control, CFE_ES_ExitApp, etc).

Describe the solution you'd like
Add support/logic and initial implementation (the table case is a good place to start). Doesn't actually need to be a full-blown app and/or could be a bunch of very trivial, single-use objects. Could likely still just do all the asserts from the main functional app, and could use CFE_ES_ReloadApp if different logic is needed for the specific test. Still not really easy since there is no API to load an app (could send a command to ES though, either from the functional test app or as another command from the ground), and you can't reload an app that isn't running (if it exits it's done).

Describe alternatives you've considered
A child task could do some of it, but wouldn't be able to cover CFE_ES_ExitApp. CFE_ES_ExitApp or CFE_ES_DeleteApp would need care if taking the CFE_ES_ReloadApp approach (do at the end, or use command to ES to start again, etc). Could also just require sample_app be loaded to run the test since that's not really much different than requiring an additional test app (although the test app would be controlled with the rest of the functional logic, so more self-contained). Definitely open to other ideas...

Additional context
Worth a trade of what's "good enough", since API testing doesn't really prove a distribution's use of the API will work. In OSAL the APIs are functionally tested within the context of separate executables so testing the cFE API works within a test configuration (with sample_app) is analogous. Distributions are still expected to test their functionality vs requirements, system test, and scenario test which really shows whatever APIs they are using behave as required.

There's also the challenges related to custom configuration which could cause the functional test to fail (even as currently implemented).

Requester Info
Jacob Hageman - NASA/GSFC

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

No branches or pull requests

2 participants