我从串口接收数据。我使用HWUT来比较我的测试结果。来自接收缓冲区的内容不能直接用于GOOD和OUT结果的比较。因为OUT总会有不必要的命令提示,输入和其他东西。我希望选择从读缓冲区写入OUT文件的内容。例如,下面是一个例子
←[36m
A> target cmd
←[36m
{t=3883.744541 s} Received data
A> result : 1
bytes read 518Closing serial port...OK
我希望out文件只有'结果:1'。
当我检查代码时,messages.py似乎正在打印到std out。但不确定是否将其用于打印到OUT文件中。如何实现这一目标?
答案 0 :(得分:0)
您打印到'stdout'的任何内容都应出现在“OUT / *”文件中。如果没有,则这与通过串行线路的接收无关。以下是我要分析的内容:
在连接器应用程序中,必须有类似
的内容 receive_n = receive(.., &buffer[0], Size);
buffer[receive_n] = '\0'; /* terminating zero */
printf("%s", &buffer[0]);
如果是这样,那么
将paralell写入日志文件。
static log_fh = fopen("tmp.log", "wb");
...
printf("%s", &buffer[0]);
fwrite((void*)buffer, 1, received_n, log_fh);
将'tmp.log'与OUT中的文件进行比较。
如果存在差异,应该责怪HWUT。
在编写之前检查输出。
if(my_condition(buffer,received_n))printf(“%s”,& buffer [0]);
HWUT有一个内部基础设施来进行后处理测试输出,但在撰写本文时,它没有记录,因此也不可靠。
答案 1 :(得分:0)
编辑文件" hwut-info.dat"在您的TEST目录中。
These R my Tests on Something Important (Title)
-------------------------------------------------------
--not *.exe
bash execute-this.sh
-------------------------------------------------------
--not *.exe
确保HWUT 不执行您编译的* .exe文件。 bash execute-this.sh
行允许HWUT将文件execute-this.sh
视为测试应用程序,并使用' bash'来调用它。
在execute-this.sh
内你可能想要申请,执行它并过滤输出,即
#! bash
make my-test.exe
./my-test.exe | awk ' /^A>/ '
将仅打印那些以&A;>'开头的行。 grep
和awk
是您的朋友,在这里。您可能想要熟悉这两个。
或者,您可以直接在连接应用程序中进行过滤。