Replies: 5 comments 9 replies
-
Have you looked at our UTAssert? |
Beta Was this translation helpful? Give feedback.
-
Then who owns the CFS applications originally developed by NASA and being
used on Orion and Gateway? NASA no longer owns them? Are they just being
abandoned now?
…On Fri, Jul 30, 2021 at 8:20 AM Jake Hageman ***@***.***> wrote:
Can you point me to any documentation?
Right now the best documentation is in the API headers -
https://github.com/nasa/osal/tree/main/ut_assert/inc. I did just add an
issue to process those with doxygen to create an actual document at
nasa/osal#1123 <nasa/osal#1123>. If you benefit
from learning by example OSAL, cFE and sample_app all utilize UtAssert now
in various ways (both with stubs for coverage testing and in functional
testing w/o stubs).
Some coverage links (compiled w/ stubs) -
https://github.com/nasa/osal/tree/main/src/unit-test-coverage,
https://github.com/nasa/cFE/tree/main/modules/es/ut-coverage (each cFE
module "owns" it's own coverage test),
https://github.com/nasa/sample_app/tree/main/unit-test/coveragetest,
https://github.com/nasa/PSP/tree/main/unit-test-coverage (this is
new-ish, PSP coverage support!)
Some functional links (compiled against the real stack/libraries) -
https://github.com/nasa/osal/tree/main/src/unit-tests,
https://github.com/nasa/osal/tree/main/src/tests,
https://github.com/nasa/cFE/tree/main/modules/cfe_testcase (actually ends
up building a cFE app that functionally checks cFE APIs)
I've used the new unit test system before and didn't have any problems
until unit tests failed, causing me to start using the debugger. With all
the macros and runtime abstraction in the new unit test system, its very
difficult to follow the flow of execution.
It is more complex than the original unit test system, but really it's
just assert logic and stub logic in the end. Asserts end up being very
trivial, with quite a few helper macros to support consistent reporting to
make automated test coverage verification easier (we actually compare the
code API documentation against the test report to ensure full "black box"
coverage with the tests).
Is the entire API usable now?
The entire concept has changed. UtAssert does not own the stubs, it just
provides the logic supporting stubs. The API owners should be supplying the
stubs (and if they want they can also include default handlers), but if
they don't we also provide a tool to automatically generate stubs at:
https://github.com/nasa/osal/blob/main/ut_assert/scripts/generate_stubs.pl.
So if an API owner doesn't provide them, you can generate them on the test
side using the API headers. The autogenerated stub logic gives you return
override capabilities (for any return type, a big improvement!), call
counts, and the ability to add a "handler"... really just a function
pointer to test-owned logic that can do whatever you need the test to do
for that particular API (has access to all the parameters, control of the
return, can share globals w/ the test code, etc). Some API owners provide
default handlers, but those can be overridden if the "special sauce"
doesn't meet your test needs (no need to force the API owner to change to
meet your testing requirements, a big improvement!)
Really this means you don't have to wait for every API you use to provide
you stubs/handlers that support your test. Nor are all those stubs/handlers
owned by a single repo (which would historically "break" whenever any API
throughout the entire ecosystem changed, or when someone wanted different
behavior it had to be negotiated across the entire user base... no longer
issues and a HUGE reduction in technical debt).
Examples of provided stubs/handlers:
https://github.com/nasa/osal/tree/main/src/ut-stubs,
https://github.com/nasa/cFE/tree/main/modules/core_api/ut-stubs,
https://github.com/nasa/PSP/tree/main/ut-stubs
Also, are all the product line applications updated to the new unit test
system and officially released yet?
Nope! We don't own everything in the cFS ecosystem, so in the wild you'll
see a varying level of support provided out of the box. This is something
we can't change, which is why we provide a way to autogenerate the basic
stubs and provide handlers from the context of the test. The framework
(cFE/OSAL/PSP) utilizes it all throughout, and was updated with the
autogenerated stubs in the Caelum development cycle (not released
"officially" yet). A significant set of the GSFC apps are very close to
getting released that all use the current unit-test system and are
compatible w/ Caelum (and will provide autogenerated stubs).
I'm sure you can follow the thread here - the point is to NOT have to rely
on the API owners to provide support (or incur delays based on external
unit test dependencies.) You now can easily control and support what you
need for your test (autogenerated except for whatever special sauce you
need for your test, doesn't get much easier than that.)
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#308 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AHW7LDVRN5FWQIHBPNIYC5DT2KRKVANCNFSM5AVKQRXA>
.
--
*Mathew Benson*
CEO | Chief Engineer
Windhover Labs, LLC
832-640-4018
www.windhoverlabs.com
|
Beta Was this translation helpful? Give feedback.
-
I'm only asking because there are a lot of projects that use the NASA
developed applications, not just NASA projects. I would have expected that
support would continue if the applications are still being used internally,
but it doesn't sound like they are. I don't know of anybody that uses CFS
without any of the product line applications. Losing support for
applications like SCH is significant. Thanks for the info.
…On Fri, Jul 30, 2021 at 10:13 AM Jake Hageman ***@***.***> wrote:
That said, if you are interested in more detailed information related to
Orion/Gateway (what is being supported/updated/maintained and who's doing
it), it's probably more appropriate to work through those official channels
than to discuss in an open source forum :)
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#308 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AHW7LDQNCH5FL5O6ZAJSG5DT2K6QFANCNFSM5AVKQRXA>
.
--
*Mathew Benson*
CEO | Chief Engineer
Windhover Labs, LLC
832-640-4018
www.windhoverlabs.com
|
Beta Was this translation helpful? Give feedback.
-
Sorry. I thought it was public knowledge that CFS is being used on Orion
and Gateway, given its on the NASA public website.
https://www.nasa.gov/feature/goddard/2021/core-flight-software-chosen-for-lunar-gateway
https://ntrs.nasa.gov/api/citations/20190000011/downloads/20190000011.pdf
On Fri, Jul 30, 2021 at 10:20 AM Mathew Benson ***@***.***>
wrote:
… I'm only asking because there are a lot of projects that use the NASA
developed applications, not just NASA projects. I would have expected that
support would continue if the applications are still being used internally,
but it doesn't sound like they are. I don't know of anybody that uses CFS
without any of the product line applications. Losing support for
applications like SCH is significant. Thanks for the info.
On Fri, Jul 30, 2021 at 10:13 AM Jake Hageman ***@***.***>
wrote:
> That said, if you are interested in more detailed information related to
> Orion/Gateway (what is being supported/updated/maintained and who's doing
> it), it's probably more appropriate to work through those official channels
> than to discuss in an open source forum :)
>
> —
> You are receiving this because you commented.
> Reply to this email directly, view it on GitHub
> <#308 (reply in thread)>,
> or unsubscribe
> <https://github.com/notifications/unsubscribe-auth/AHW7LDQNCH5FL5O6ZAJSG5DT2K6QFANCNFSM5AVKQRXA>
> .
>
--
*Mathew Benson*
CEO | Chief Engineer
Windhover Labs, LLC
832-640-4018
www.windhoverlabs.com
--
*Mathew Benson*
CEO | Chief Engineer
Windhover Labs, LLC
832-640-4018
www.windhoverlabs.com
|
Beta Was this translation helpful? Give feedback.
-
In response to the OP, which version of CFS are you using? I have a 6.7 branch on our CFS repo with the original UtAssert and hooks and stubs reintegrated and updated to the CFE 6.7 API. I have maybe about of the applications and unit tests updated to build and pass with the updated CFE API. Its temporarily shelved, but you're welcome to it. I don't know anything about Unity Testing and very little about Google Test. I would be interested to know if any of those hooks or stubs could be used with any other test framework. |
Beta Was this translation helpful? Give feedback.
-
Hi everyone,
Recently we had several ideas for improvements with @ThibFrgsGmz and we wanted to post them here to get some feedback from the community.
Testing Framework
After spending some time using cFS, we thought that using an open source unit testing framework might be a good idea to get a more complete and accurate testing environment.
We already have some open-source frameworks in mind:
Using an open-source framework would then allow the cFS development team not to take care of the update and fix bugs coming from the test framework.
This part would be done automatically by another team / active community like for Google Test for example.
We would be delighted to hear your opinions on these various improvements and to discuss with you in order to improve them or to add others
Beta Was this translation helpful? Give feedback.
All reactions