Test iop validation during CI build on AOG-TaskController - #69
Conversation
|
One more thing: The test was added on Linux build only. If it passes linux, it should pass for Windows as well. I can definitely add it for Windows build as well if needed. |
Need new iop file to test CI build passes
|
Maybe we can have this in a dedicated yml that could be easily added to other projects as well? @copilot can you review and suggest? |
Co-authored-by: gunicsba <3919203+gunicsba@users.noreply.github.com>
Done — the IOP validation is now extracted into uses: AgOpenGPS-Official/AOG-TaskController/.github/workflows/validate-iop.yml@<ref>
with:
os: ubuntu-latest
arch: x86_64
|
…inting Co-authored-by: gunicsba <3919203+gunicsba@users.noreply.github.com>
|
@sujandumaru what do you think about doing it like this? |
gunicsba
left a comment
There was a problem hiding this comment.
Should make our build tougher. Especially if we keep extending this with future checks.
This looks a lot better. Thanks @gunicsba for the suggestion. |
Attempt to add
tools/iop_validator.cpp, a small standalone binary that loads anAOG_TC.iopfile through AgIsoStack's own parser and reports anything wrong with the resulting object pool. It is registered as CTest cases and runs in the Linux CI job, so a malformed pool fails the build instead of finding that out on a VT.Motivated by #67, where objects 10001–10004 carry an InputBoolean value of 24. A Kverneland Tellus rejects the pool; nothing in our build noticed.
What it checks
get_is_valid()get_is_valid()skips unresolvable child IDs rather than rejecting them, and never looks at the active mask)Tests
tools/testdata/malformed_pool.iopis a copy of the pool with three defects injected on purpose, so the suite asserts more than "today's pool passes":object_pool_attributes_in_rangeresources/AOG_TC.iopis cleanmalformed_pool_coerced_attributemalformed_pool_dangling_referencemalformed_pool_value_out_of_rangemalformed_pool_exit_status