forked from OSchip/llvm-project
Remove some unnecessary comments from previous check-in.
Removed a "done" TODO comment. Moved some helper methods to the top of the unit test. Removed some commented out code I was considering implementing before I came up with a better overall approach. llvm-svn: 209561
This commit is contained in:
parent
dee6d286de
commit
771bb72aa7
|
@ -260,6 +260,52 @@ class LldbGdbServerTestCase(TestBase):
|
||||||
return thread_ids
|
return thread_ids
|
||||||
|
|
||||||
|
|
||||||
|
def wait_for_thread_count(self, thread_count, timeout_seconds=3):
|
||||||
|
start_time = time.time()
|
||||||
|
timeout_time = start_time + timeout_seconds
|
||||||
|
|
||||||
|
actual_thread_count = 0
|
||||||
|
while actual_thread_count < thread_count:
|
||||||
|
self.reset_test_sequence()
|
||||||
|
self.add_threadinfo_collection_packets()
|
||||||
|
|
||||||
|
context = self.expect_gdbremote_sequence()
|
||||||
|
self.assertIsNotNone(context)
|
||||||
|
|
||||||
|
threads = self.parse_threadinfo_packets(context)
|
||||||
|
self.assertIsNotNone(threads)
|
||||||
|
|
||||||
|
actual_thread_count = len(threads)
|
||||||
|
|
||||||
|
if time.time() > timeout_time:
|
||||||
|
raise Exception(
|
||||||
|
'timed out after {} seconds while waiting for theads: waiting for at least {} threads, found {}'.format(
|
||||||
|
timeout_seconds, thread_count, actual_thread_count))
|
||||||
|
|
||||||
|
return threads
|
||||||
|
|
||||||
|
|
||||||
|
def run_process_then_stop(self, run_seconds=1):
|
||||||
|
# Tell the stub to continue.
|
||||||
|
self.test_sequence.add_log_lines(
|
||||||
|
["read packet: $vCont;c#00"],
|
||||||
|
True)
|
||||||
|
context = self.expect_gdbremote_sequence()
|
||||||
|
|
||||||
|
# Wait for run_seconds.
|
||||||
|
time.sleep(run_seconds)
|
||||||
|
|
||||||
|
# Send an interrupt, capture a T response.
|
||||||
|
self.reset_test_sequence()
|
||||||
|
self.test_sequence.add_log_lines(
|
||||||
|
["read packet: {}".format(chr(03)),
|
||||||
|
{"direction":"send", "regex":r"^\$T([0-9a-fA-F]+)([^#]+)#[0-9a-fA-F]{2}$", "capture":{1:"stop_result"} }],
|
||||||
|
True)
|
||||||
|
context = self.expect_gdbremote_sequence()
|
||||||
|
self.assertIsNotNone(context)
|
||||||
|
self.assertIsNotNone(context.get("stop_result"))
|
||||||
|
|
||||||
|
|
||||||
@debugserver_test
|
@debugserver_test
|
||||||
def test_exe_starts_debugserver(self):
|
def test_exe_starts_debugserver(self):
|
||||||
self.init_debugserver_test()
|
self.init_debugserver_test()
|
||||||
|
@ -1014,68 +1060,18 @@ class LldbGdbServerTestCase(TestBase):
|
||||||
self.p_returns_correct_data_size_for_each_qRegisterInfo()
|
self.p_returns_correct_data_size_for_each_qRegisterInfo()
|
||||||
|
|
||||||
|
|
||||||
def wait_for_thread_count(self, thread_count, timeout_seconds=3):
|
|
||||||
start_time = time.time()
|
|
||||||
timeout_time = start_time + timeout_seconds
|
|
||||||
|
|
||||||
actual_thread_count = 0
|
|
||||||
while actual_thread_count < thread_count:
|
|
||||||
self.reset_test_sequence()
|
|
||||||
self.add_threadinfo_collection_packets()
|
|
||||||
|
|
||||||
context = self.expect_gdbremote_sequence()
|
|
||||||
self.assertIsNotNone(context)
|
|
||||||
|
|
||||||
threads = self.parse_threadinfo_packets(context)
|
|
||||||
self.assertIsNotNone(threads)
|
|
||||||
|
|
||||||
actual_thread_count = len(threads)
|
|
||||||
|
|
||||||
if time.time() > timeout_time:
|
|
||||||
raise Exception(
|
|
||||||
'timed out after {} seconds while waiting for theads: waiting for at least {} threads, found {}'.format(
|
|
||||||
timeout_seconds, thread_count, actual_thread_count))
|
|
||||||
|
|
||||||
return threads
|
|
||||||
|
|
||||||
def run_process_then_stop(self, run_seconds=1):
|
|
||||||
# Tell the stub to continue.
|
|
||||||
self.test_sequence.add_log_lines(
|
|
||||||
["read packet: $vCont;c#00"],
|
|
||||||
True)
|
|
||||||
context = self.expect_gdbremote_sequence()
|
|
||||||
|
|
||||||
# Wait for run_seconds.
|
|
||||||
time.sleep(run_seconds)
|
|
||||||
|
|
||||||
# Send an interrupt, capture a T response.
|
|
||||||
self.reset_test_sequence()
|
|
||||||
self.test_sequence.add_log_lines(
|
|
||||||
["read packet: {}".format(chr(03)),
|
|
||||||
{"direction":"send", "regex":r"^\$T([0-9a-fA-F]+)([^#]+)#[0-9a-fA-F]{2}$", "capture":{1:"stop_result"} }],
|
|
||||||
True)
|
|
||||||
context = self.expect_gdbremote_sequence()
|
|
||||||
self.assertIsNotNone(context)
|
|
||||||
self.assertIsNotNone(context.get("stop_result"))
|
|
||||||
|
|
||||||
def Hg_switches_to_3_threads(self):
|
def Hg_switches_to_3_threads(self):
|
||||||
# Startup the inferior with three threads (main + 2 new ones).
|
# Startup the inferior with three threads (main + 2 new ones).
|
||||||
procs = self.prep_debug_monitor_and_inferior(inferior_args=["thread:new", "thread:new"])
|
procs = self.prep_debug_monitor_and_inferior(inferior_args=["thread:new", "thread:new"])
|
||||||
|
|
||||||
|
|
||||||
# Let the inferior process have a few moments to start up the thread when launched. (The launch scenario has no time to run, so threads won't be there yet.)
|
# Let the inferior process have a few moments to start up the thread when launched. (The launch scenario has no time to run, so threads won't be there yet.)
|
||||||
self.run_process_then_stop(run_seconds=1)
|
self.run_process_then_stop(run_seconds=1)
|
||||||
|
|
||||||
# thread_created_regex = re.compile(r"^thread 0x([0-9a-fA-F])+: created")
|
|
||||||
# self.add_log_lines([
|
|
||||||
# {"type":"output_matcher", "regex":[thread_created_regex, thread_created_regex], "timeout_seconds":"5", save_key:"create_messages"}],
|
|
||||||
# True)
|
|
||||||
|
|
||||||
# Wait at most x seconds for 3 threads to be present.
|
# Wait at most x seconds for 3 threads to be present.
|
||||||
threads = self.wait_for_thread_count(3, timeout_seconds=5)
|
threads = self.wait_for_thread_count(3, timeout_seconds=5)
|
||||||
self.assertEquals(len(threads), 3)
|
self.assertEquals(len(threads), 3)
|
||||||
|
|
||||||
# TODO verify we can $H to each thead, and $qC matches the thread we set.
|
# verify we can $H to each thead, and $qC matches the thread we set.
|
||||||
for thread in threads:
|
for thread in threads:
|
||||||
# Change to each thread, verify current thread id.
|
# Change to each thread, verify current thread id.
|
||||||
self.reset_test_sequence()
|
self.reset_test_sequence()
|
||||||
|
|
Loading…
Reference in New Issue