增强UTF的命令行参数unit_test_main

Command line arguments to Boost UTF unit_test_main

本文关键字:test main unit 参数 UTF 命令行 增强      更新时间:2023-10-16

我有自己的Boost Test Runner,我将参数传递给unit_test_main,如下所示:

char *myargs[] = {"", "--log_level=test_suite", "report_level=detailed", "output_format=xml", "--run_test=my_manual_test_suite1,my_manual_test_suite2"};

测试套件被拾取,测试用例被执行。然而,在我的程序执行结束时,我得到了内存损坏。有什么原因吗?

我的测试运行器是一个单独的cpp文件,它容纳了所有的测试用例和unit_test_main

编辑:我忘了添加,如果我从程序外部传递参数,则不会损坏。这太奇怪了

你能分享更多的代码吗?我想看看在本地传递实参与从程序外部传递实参有什么不同。

编辑:

好的,我想我明白问题了。当您从外部传入参数时,它们将按顺序排列。例如,假设你调用test.exe --log_level=all --run_test=mt1。例如,第一个参数的地址是0x10000。然后下一个参数--log_level=all的地址从0x10009开始,以此类推。当你自己把argv串起来时,情况就不是这样了。因此,我的建议是按照上面的顺序放置参数,并尝试一下。