我正在Cortex M4上运行C ++,我想开始进行自动化的单元测试和覆盖。
gcov
将其输出文件-.gcno, .gcda
-写在目标上,这是不可行的,因为我没有文件系统。
问题
是否可以使用gdb
将这些写入“拦截并重定向”到PC?
我想通过Python脚本自动化这些测试:
答案 0 :(得分:1)
看起来有些人正在这样做(在裸机上使用gcov)
https://dzone.com/articles/gnu-code-coverage-on-embedded-targets http://allsoftwaresucks.blogspot.com/2015/05/gcov-is-amazing-yet-undocumented.html
答案 1 :(得分:0)
所以,我不认识gcov,谢谢。
对OBS_ENCODER_AUDIO
的快速浏览显示我已经在系统上安装了它,并且存在以下选项:
man gcov
我已经有一段时间没有做python了,但是您应该能够创建一个仅内存的文件,并且假设打开的文件句柄为8,请使用:
-t, --stdout Output to stdout instead of a file
-t参数告诉gcov打印到标准输出而不是写入文件,并且>&8覆盖stdout(由执行的程序看到)为文件句柄8而不是1(在大多数unix / posix /无论如何,都可以。)
这当然是在bash中,您可以从python调用它,也可以将其转码为python,但是您可以在python中实现。
我没有必要尝试它,因此,如果有帮助(或没有帮助),请务必留下标记以帮助将来的读者。