From 0afd30cfb3245e7328c809d8b1d2d06911bac36b Mon Sep 17 00:00:00 2001 From: Eric Snow Date: Thu, 22 Feb 2018 00:47:58 +0000 Subject: [PATCH] Add tests for the stackTrace request. --- tests/ptvsd/highlevel/test_messages.py | 64 ++++++++++++++++++++++++-- 1 file changed, 61 insertions(+), 3 deletions(-) diff --git a/tests/ptvsd/highlevel/test_messages.py b/tests/ptvsd/highlevel/test_messages.py index cc1fe3d1..8b1dd03f 100644 --- a/tests/ptvsd/highlevel/test_messages.py +++ b/tests/ptvsd/highlevel/test_messages.py @@ -209,14 +209,72 @@ class ThreadsTests(NormalRequestTest, unittest.TestCase): ]) -# TODO: finish! -@unittest.skip('not finished') class StackTraceTests(NormalRequestTest, unittest.TestCase): COMMAND = 'stackTrace' def test_basic(self): - raise NotImplementedError + thread = (10, 'x') + with self.launched(): + with self.hidden(): + tid = self.set_threads(thread)[thread] + self.suspend(thread, CMD_THREAD_SUSPEND, *[ + (2, 'spam', 'abc.py', 10), + (5, 'eggs', 'xyz.py', 2), + ]) + self.send_request( + threadId=tid, + #startFrame=1, + #levels=1, + ) + received = self.vsc.received + + self.assert_vsc_received(received, [ + self.expected_response( + stackFrames=[ + { + 'id': 1, + 'name': 'spam', + 'source': {'path': 'abc.py'}, + 'line': 10, + 'column': 0, + }, + { + 'id': 2, + 'name': 'eggs', + 'source': {'path': 'xyz.py'}, + 'line': 2, + 'column': 0, + }, + ], + totalFrames=2, + ), + # no events + ]) + self.assert_received(self.debugger, []) + + def test_no_threads(self): + with self.launched(): + req = self.send_request( + threadId=10, + ) + received = self.vsc.received + + self.assert_vsc_failure(received, [], req) + self.assert_received(self.debugger, []) + + def test_unknown_thread(self): + thread = (10, 'x') + with self.launched(): + with self.hidden(): + tid = self.set_threads(thread)[thread] + req = self.send_request( + threadId=tid + 1, + ) + received = self.vsc.received + + self.assert_vsc_failure(received, [], req) + self.assert_received(self.debugger, []) # TODO: finish!