1

私は独自のブースト テスト ランナーを持っており、次の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"};

テスト スイートがピックアップされ、テスト ケースが実行されます。ただし、プログラムの実行の最後に、メモリが破損します。理由はありますか?

私のテスト ランナーは、すべてのテスト ケースとunit_test_main.

編集: プログラムの外部から引数を渡しても破損しないことを追加するのを忘れていました。これは奇妙です。

4

1 に答える 1

0

もう少しコードを共有できますか? 引数をローカルに渡す場合と、プログラムの外部から引数を渡す場合の違いを確認したいと思います。

編集:

わかりました、私は問題を抱えていると思います。外部から引数を渡すと、順番に配置されます。たとえば、 を呼び出すとしますtest.exe --log_level=all --run_test=mt1。たとえば、最初の引数のアドレスは 0x10000 です。次に、次の arg のアドレスは--log_level=all0x10009 から始まります。自分でargvをひもで締める場合、これは当てはまりません。したがって、私の提案は、上記のように引数を順番に並べて試してみることです。

于 2014-03-29T04:27:13.500 に答える