36 lines · python
1import lldb2import unittest3from lldbsuite.test.lldbtest import *4from lldbsuite.test.decorators import *5from lldbsuite.test import lldbutil6 7 8class TestReverseExecutionNotSupported(TestBase):9 NO_DEBUG_INFO_TESTCASE = True10 11 def test_reverse_execution_not_supported(self):12 self.build()13 exe = self.getBuildArtifact("a.out")14 target = self.dbg.CreateTarget(exe)15 self.assertTrue(target, VALID_TARGET)16 17 main_bkpt = target.BreakpointCreateByName("main", None)18 self.assertTrue(main_bkpt, VALID_BREAKPOINT)19 20 process = target.LaunchSimple(None, None, self.get_process_working_directory())21 self.assertTrue(process, PROCESS_IS_VALID)22 23 # This will fail gracefully.24 status = process.ContinueInDirection(lldb.eRunReverse)25 self.assertFailure(status)26 # Where gdb-remote is used this starts with "error: gdb-remote" but on Windows it says "error: windows".27 self.assertTrue(28 status.GetCString().endswith(29 " does not support reverse execution of processes"30 )31 )32 33 self.assertSuccess(process.ContinueInDirection(lldb.eRunForward))34 self.assertState(process.GetState(), lldb.eStateExited)35 self.assertEqual(process.GetExitStatus(), 0)36