Python coredumping при использовании мультипроцессинга. Процесс
Я использую squish для тестирования приложения qt. Проблема в том, что squish не поддерживает потоки:
http://kb.froglogic.com/display/KB/Article+-+Using+Threads+in+Python
Однако мне нужно использовать потоки, поскольку мне нужно периодически обмениваться данными с тестируемым приложением через tcp.
У меня есть скрипт, который делает следующее в своем основном потоке:
squishtest.waitForObject(":My_Button")
squishtest.waitForObject(":My_Button")
Эти команды закроют два диалоговых окна, которые появляются, когда я запускаю приложение. Хотя каждая команда squish выполняется, я действительно заметил, что все мои потоки tcp (threading.Thread) блокируются до тех пор, пока не вернется команда squish. Я не могу протестировать тестируемое приложение, если потоки заблокированы таким образом. Поэтому я решил, что могу использовать многопроцессорный модуль для решения этой проблемы, поэтому я попытался:
p = Process(target = squishtest.waitForObject, args = (":My_Button",))
p.start()
p.join()
Это работает нормально, однако, когда я попытался:
p = Process(target = squishtest.waitForObject, args = (":My_Button",))
p.start()
p.join()
p = Process(target = squishtest.waitForObject, args = (":My_Button",))
p.start()
p.join()
Я вижу следующий текст, выводимый в командной строке, где я выполняю python:
RemoteInspector(0x0x8702b28)::type: Invalid class id 493 for appid 156850424
Что это значит?
Затем я попытался ради этого:
p = Process(target = squishtest.waitForObject, args = (":My_Button",))
p.start()
p.join()
squishtest.waitForObject(":My_Button")
и на этот раз я также получаю coredump от python:
RemoteInspector(0x0x81b5ac8)::type: Invalid class id 493 for appid 156850440
Aborted (core dumped)
В чем проблема может быть здесь? Является ли мой подход к решению вопроса о том, что сквош блокирует мои нити, разумным? Можете ли вы предложить другой подход?
Я использую Python 2.6.