RDKB-63834: Add unit tests for empty config file detection and fprintf failure paths in persistence.c#285
Merged
shibu-kv merged 2 commits intotopic/RDKB-63834from Mar 17, 2026
Merged
Conversation
… persistence.c Co-authored-by: shibu-kv <89052442+shibu-kv@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] [RDKB-63834] Reject and remove corrupted config files in persistence
RDKB-63834: Add unit tests for empty config file detection and fprintf failure paths in persistence.c
Mar 13, 2026
shibu-kv
approved these changes
Mar 17, 2026
shibu-kv
approved these changes
Mar 17, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Code review on the persistence corruption-handling changes requested test coverage for two new branches: empty-file skipping in
fetchLocalConfigs()andfprintffailure handling insaveConfigToFile().Test additions (
UtilsTest.cpp)FETCHLOCALCONFIGS_EMPTY_FILE— uses anInvokelambda on thefstatmock to setst_size = 0, assertsunlinkis called viaremoveProfileFromDiskand the config list stays emptySAVECONFITOFILE_FPRINTF_FAILURE— mocksfprintfreturning-1, assertsfcloseandunlinkare both called and the return isT2ERROR_FAILURESAVECONFITOFILE_SUCCESS— covers the previously untested full success path/* SAVECONFITOFILE2 */commented-out blockMock fix (
FileioMock.cpp)With
FORTIFY_SOURCEactive (default on Ubuntu), the compiler replacesfprintfwith an inline call to__fprintf_chk, bypassing the existingextern "C" int fprintf(...)override entirely. Added a matching__fprintf_chkinterception that delegates to the sameg_fileIOMock->fprintf()method:Misc
.gitignorecovering autotools and build artifacts.💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.