Browse Source

added lldb attach to created test processes in multiprocessing based test

PYADPT-55
Edouard Tisserant 9 years ago
parent
commit
8e76d46ba2
  1. 2
      test/mp_sync_test.py
  2. 20
      test/multipEp.py

2
test/mp_sync_test.py

@ -22,6 +22,8 @@ scenario0 = [
("A", [mp.create_account, ["some.one@some.where", "Some One"]]), ("A", [mp.create_account, ["some.one@some.where", "Some One"]]),
("B", [mp.create_account, ["some.one@some.where", "Some One"]]), ("B", [mp.create_account, ["some.one@some.where", "Some One"]]),
("A", [None, None]), ("A", [None, None]),
("B", [None, None]),
("A", [None, None]),
("B", [None, None]) ("B", [None, None])
] ]

20
test/multipEp.py

@ -1,7 +1,9 @@
import os import os
import sys
import multiprocessing import multiprocessing
import importlib import importlib
import tempfile import tempfile
import time
from collections import OrderedDict from collections import OrderedDict
# per-instance globals # per-instance globals
@ -133,12 +135,30 @@ def run_scenario(scenario):
args=(iname,child_conn,msgs_folders)) args=(iname,child_conn,msgs_folders))
proc.start() proc.start()
instances[iname] = (proc, conn) instances[iname] = (proc, conn)
if "wait_for_debug" in sys.argv:
yes = input("#"*80 + "\n" +
"INSTANCE " + iname + "\n" +
"Enter y/yes/Y/YES to attach debugger to process " +
str(proc.pid) + "\nor just press ENTER\n" +
"#"*80 + "\n")
if yes in ["y", "Y", "yes" "YES"]:
# TODO : linux terminal support
#import subprocess
#subprocess.call(['xterm', '-e', 'lldb', '-p', str(proc.pid)])
import appscript
appscript.app('Terminal').do_script('lldb -p ' + str(proc.pid))
time.sleep(2)
else: else:
proc, conn = instances[iname] proc, conn = instances[iname]
conn.send(order) conn.send(order)
res = conn.recv() res = conn.recv()
if "wait_for_debug" in sys.argv:
input("#"*80 + "\n" +
"Press ENTER to cleanup\n" +
"#"*80 + "\n")
for iname, (proc, conn) in instances.items(): for iname, (proc, conn) in instances.items():
# tell process to terminate # tell process to terminate
conn.send(None) conn.send(None)

Loading…
Cancel
Save