HWUT -选择性打印从读取缓冲区到.exe文件在OUT文件夹



我正在从串行端口接收数据。我用huut来比较我的测试结果。接收缓冲区的内容不能直接用于比较GOOD和OUT结果。因为OUT总是会有不必要的命令提示、输入和其他东西。我正在寻找选择什么必须从读取缓冲区写入OUT文件。例如,下面是一个示例

←[36m
A> target cmd
                ←[36m
{t=3883.744541 s} Received data 
A>             result :  1
                       bytes read 518Closing serial port...OK

我希望输出文件只有'result: 1'。
当我检查代码时,messages.py似乎正在打印出来。但不确定是否用于打印到OUT文件。如何才能做到这一点?

任何打印到'stdout'的内容都应该出现在"OUT/*"文件中。如果没有,那么这将与通过串行线接收无关。下面是我要做的分析:

  1. 在您的连接器应用程序中必须有类似

    的内容

    receive_n = receive(.., &buffer[0], Size); buffer[receive_n] = ''; /* terminating zero */ printf("%s", &buffer[0]);

  2. 并行写入日志文件

    static log_fh = fopen("tmp.log", "wb"); ... printf("%s", &buffer[0]); fwrite((void*)buffer, 1, received_n, log_fh);

  3. 将'tmp.log'与OUT中的文件进行比较。

  4. 写前检查输出

    如果(my_condition(缓冲区,received_n)) printf("% s",和缓冲区[0]);

HWUT有一个用于后处理测试输出的内部基础结构,但是它没有文档化,因此不可靠——在撰写本文时。

编辑TEST目录下的" hut -info.dat"文件。

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>'开头的行。grepawk在这里是你的朋友。你可能想熟悉一下这两个。

或者,您可以直接在连接应用程序中进行过滤。

最新更新