1

Python を使用して特定のソフトウェアをテストします。つまり、これはバッチ処理を行う C++ プログラムです。さまざまなデータ セットとパラメーターを使用して起動する必要があるため、Python でツールを作成しました。基本的にプロセスを起動し、エラー ストリームをファイルに保存し、出力ストリームを解析してライブ フィードバックを取得します。(標準出力ストリームはそれほど冗長ではありません。)

テスト済みの c++ プログラムが時々ハングすることを除いて、ほとんど期待どおりに動作します。このハングは、私のテスト ターゲットの一部、Windows XP でのみ発生し、他の win 7 やその他の Windows XP では決して発生しません。ハングが発生する可能性のあるターゲットでは、コマンド ラインから直接起動すると、ソフトウェアは正常に動作します。

IO ストリームの処理が原因でデッドロックが発生していると思われますが、その理由はわかりません。

これが私のコードからの抜粋です:

stderrFile = open("err.txt", 'w')
stdoutFile = open("out.txt", 'w')

p = subprocess.Popen(args, stdout = subprocess.PIPE, stderr =stderrFile, env = runEnv)
outStream = p.stdout

for line in outStream:
    line = line.rstrip()
    if line.startswith('======== '):
        print " - " + line[9:]
    stdoutFile.write(line + '\n')

returnCode = p.wait()
4

0 に答える 0