1

我有自己的 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.

编辑:如果我从程序外部传递参数,我忘了添加没有损坏。这很奇怪。

4

1 回答 1

0

你能分享更多的代码吗?我想看看你在本地传递参数与从程序外部传递它们的区别。

编辑:

好的,我想我有问题。当您从外部传入参数时,它们会按顺序排列。例如,假设您调用test.exe --log_level=all --run_test=mt1. 例如,第一个 arg 的地址是 0x10000。然后下一个 arg 的地址--log_level=all从 0x10009 开始,依此类推。当您自己串起 argv 时,情况并非如此。所以我的建议是像上面一样按顺序排列参数并试一试。

于 2014-03-29T04:27:13.500 回答