ctrace initial development - #2548
Conversation
Test Results 2 files - 39 14 suites - 111 14m 54s ⏱️ - 2m 22s Results for commit 52e772f. ± Comparison against base commit 37a8a8e. This pull request removes 454 tests.♻️ This comment has been updated with latest results. |
jreineckearm
left a comment
There was a problem hiding this comment.
Just had a look at the first few files in this PR (the GH workflows). You may want to review those first. I think some of them will impact more than ctrace.
Also, why do you make workflows sensitive to changes in subfolders of external? I don't think GitHub actions are clever enough to detect changes in git submodules. But I might be wrong.
| - '.github/matrix_includes_ctrace.json' | ||
| - 'cmake/**' | ||
| - 'CMakeLists.txt' | ||
| - 'external/OpenCSD' |
There was a problem hiding this comment.
I still don't think that making the workflow sensitive to changes in external makes sense. AFAIK, GitHub doesn't check if a git submodule changed.
| - '!**/*.md' | ||
| - 'LICENSE' | ||
| - 'tools/ctrace/docs/OpenCSD-NOTICE.txt' | ||
| - 'tools/ctrace/docs/RUNTIME_COMPONENTS.md' |
There was a problem hiding this comment.
Do you need to rebuild if your internal documentation changed?
| - name: Verify Windows Arm64 binary architecture | ||
| if: (matrix.target == 'windows' && matrix.arch == 'arm64') | ||
| shell: pwsh | ||
| run: | |
There was a problem hiding this comment.
Should this rather be a script that one can run easily on their local machine?
| - name: Smoke-test release binary | ||
| if: | | ||
| github.event_name == 'release' && | ||
| (matrix.target != 'windows' || matrix.arch != 'arm64') |
There was a problem hiding this comment.
So, it's Linux amd64? Should we probably rather exactly write which platform this runs on. Same for other steps
|
|
||
| - name: Archive unit tests results | ||
| if: always() && (matrix.arch != 'arm64') | ||
| if: always() && (matrix.target != 'windows' || matrix.arch != 'arm64') |
| return; | ||
| } | ||
|
|
||
| // LCOV_EXCL_BR_START: generated aggregate-initializer exception edges |
There was a problem hiding this comment.
Why do you exclude diagnostics from coverage? Are they not active in production?
|
|
||
| namespace { | ||
|
|
||
| class RawFileReader final { |
There was a problem hiding this comment.
Same (or at least very similar) code in DecodeConsumers. Refactor.
|
|
||
| namespace { | ||
|
|
||
| std::uint64_t saturatingMultiply(std::uint64_t value, std::uint32_t factor) |
There was a problem hiding this comment.
Also seen saturating add somewhere, perfect candidate for a utils module.
|
|
||
| // The individual short-circuit permutations are an implementation detail; | ||
| // repeated and complementary fragments are covered as complete behaviors. | ||
| // LCOV_EXCL_BR_START |
|
|
||
| #if defined(__GNUC__) && !defined(__clang__) | ||
| #pragma GCC diagnostic push | ||
| #pragma GCC diagnostic ignored "-Wignored-qualifiers" |
edriouk
left a comment
There was a problem hiding this comment.
all ctrace* project files must have Header File directory => changes in CMakeLists.txt files are required:
SET(PROJMGR_HEADER_FILES ...
edriouk
left a comment
There was a problem hiding this comment.
All classes and their public methods must have DOXYGEN-style comments
|
test/data folders contain *.license files. They probably should be removed. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #2548 +/- ##
==========================================
+ Coverage 68.34% 72.14% +3.79%
==========================================
Files 141 185 +44
Lines 26511 30127 +3616
Branches 16022 17791 +1769
==========================================
+ Hits 18118 21734 +3616
+ Misses 6090 6087 -3
- Partials 2303 2306 +3
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
|
|
||
| void OpenCsdItmSession::createDecoder(OpenCsdPacketCollector& collector, OpenCsdErrorController& errorController) | ||
| { | ||
| auto* registry = OcsdLibDcdRegister::getDecoderRegister(); |
Implements
ctraceimplementation for decoding SWO streams containing ITM and DWT data.Limitations
Checklist