HWUT - 有选择地从读取缓冲区打印到 OUT 文件夹中的 .exe 文件
HWUT - selectively printing from read buffer into .exe file in OUT folder
我正在从串口接收数据。我使用 HWUT 来比较我的测试结果。接收缓冲区的内容不能直接用于 GOOD 和 OUT 结果的比较。因为 OUT 总是会有不必要的命令提示符、输入和其他内容。我正在寻找 select 必须从读取缓冲区写入 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/*" 文件中。如果没有,那么这与通过串行线路接收无关。以下是我要分析的内容:
在你的连接器应用程序中必须有类似
的东西
receive_n = receive(.., &buffer[0], Size);
buffer[receive_n] = '[=10=]'; /* terminating zero */
printf("%s", &buffer[0]);
如果是这样,那么
并行写入日志文件。
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(缓冲区, received_n) ) printf("%s", &buffer[0]);
HWUT 有一个内部基础结构来 post 处理测试输出,但在撰写本文时没有记录,因此不可靠。
编辑 TEST 目录中的文件 "hwut-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>' 开头的行。 grep
和 awk
是你的朋友,在这里。你可能想熟悉这两个。
或者,您可以直接在连接应用程序中进行过滤。
我正在从串口接收数据。我使用 HWUT 来比较我的测试结果。接收缓冲区的内容不能直接用于 GOOD 和 OUT 结果的比较。因为 OUT 总是会有不必要的命令提示符、输入和其他内容。我正在寻找 select 必须从读取缓冲区写入 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/*" 文件中。如果没有,那么这与通过串行线路接收无关。以下是我要分析的内容:
在你的连接器应用程序中必须有类似
的东西receive_n = receive(.., &buffer[0], Size); buffer[receive_n] = '[=10=]'; /* terminating zero */ printf("%s", &buffer[0]);
如果是这样,那么
并行写入日志文件。
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(缓冲区, received_n) ) printf("%s", &buffer[0]);
HWUT 有一个内部基础结构来 post 处理测试输出,但在撰写本文时没有记录,因此不可靠。
编辑 TEST 目录中的文件 "hwut-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>' 开头的行。 grep
和 awk
是你的朋友,在这里。你可能想熟悉这两个。
或者,您可以直接在连接应用程序中进行过滤。