In order to properly confine the software architecture layers, external bplib users should not be making direct calls to internal low-level functions. In particular, the bplib_os.h is currently in the public API directory (inc) and following calls are being used by external apps such as "bp"
Rather than calling these internal functions directly, there should be some sort of a wrapper or formal interface to retrieve the value at the public API level, which can then delegate to the internal function to get the value.
Notably, when performing coverage testing, it is important to maintain proper layering and isolation such that individual code units can be linked with stubs rather than the real function. In this context it is critical that individual header files are classified correctly as only internal-scope functions or public API/global scope and not intermixed. This not only avoids problematic linker errors when coverage testing but also simplifies the unit test and stub structure (the relationship between headers and stubs is well defined and consistent).
In order to properly confine the software architecture layers, external bplib users should not be making direct calls to internal low-level functions. In particular, the
bplib_os.h
is currently in the public API directory (inc
) and following calls are being used by external apps such as "bp"Rather than calling these internal functions directly, there should be some sort of a wrapper or formal interface to retrieve the value at the public API level, which can then delegate to the internal function to get the value.
Notably, when performing coverage testing, it is important to maintain proper layering and isolation such that individual code units can be linked with stubs rather than the real function. In this context it is critical that individual header files are classified correctly as only internal-scope functions or public API/global scope and not intermixed. This not only avoids problematic linker errors when coverage testing but also simplifies the unit test and stub structure (the relationship between headers and stubs is well defined and consistent).