I have a question here, if my project need satisfy some safety requirements, e.g. ASILD/B, can I use the FreeRTOS_Tcp library? Has FreeRTOS_Tcp lib pass any certification?
FreeRTOS+TCP hasn’t pass any certifications yet. It is however very well tested, including static checking, and formal memory safety proofs on the code that parses data originating from the network. We are about to release a new version (already in the head revision in git) that refactors the code a little to improve testability and get clean Coverity scans.
You can, because ASIL does not mean everything needs to be tested for safety but that you need a valid strategy to keep it from interfering with the safety relevant code.
Another thing worth mentioning is that we have done protocol testing with the FreeRTOS+TCP stack. That is done with a dedicated device that sends out all sort of messages, and also it will make TCP connections and it will challenge the stack.
After each test, it comes up with a report and recommendations. We went through this process and made the necessary changes.
All implemented protocols were tested: DHCP, ARP, ICMP, UDP, and TCP.
Beside using a protocol tester, we constantly test the library on various platforms that use include HTTP, FTP, DNS, IPERF and more.
Thanks a lot for the detailed info.
Another question, I saw in the unit test’s readme file, it recommended to use ctest/cmake, however, on a MCU system, there’s no such things. How can I run the unit test on a MCU system that do not has ctest tool?
The tests under unit-tests folder are designed to test the library functionality and the code coverage without depending on underlying porting code. The portable code is mocked out using CMock framework and the tests are not run on a hardware. Also the tools used to get the code coverage which is integrated into tests works best when the test is run on a host system.
But due to divergence of the MCU system and its toolchains, I think it’s better if there’s an on chip test framework. E.g. There is a compiler that has bugs and does not support certain language featuer that Freertos_TCP has adopted. Only on chip test can found the problem.
The regression testing described earlier by Hein has been performed on MCU hardware and not simply in a PC/Linux environment. While we will not claim that there are no bugs in the +TCP stack, it has been very completely tested and exercised in real-world situations with specialized test equipment on MCU hardware.