| _T = require('lua_lldb_test').create_test('TestProcessAPI') | |
| function _T:TestProcessLaunchSimple() | |
| local target = self:create_target() | |
| local args = { 'arg1', 'arg2', 'arg3' } | |
| local process = target:LaunchSimple( | |
| -- argv | |
| args, | |
| -- envp | |
| nil, | |
| -- working directory | |
| nil | |
| ) | |
| assertTrue(process:IsValid()) | |
| local stdout = process:GetSTDOUT(1000) | |
| assertEqual(split_lines(stdout), {self.exe, table.unpack(args)}) | |
| end | |
| function _T:TestProcessLaunch() | |
| local target = self:create_target() | |
| local args = { 'arg1', 'arg2', 'arg3' } | |
| local error = lldb.SBError() | |
| local f = io.open(self.output, 'w') | |
| f:write() | |
| f:close() | |
| local process = target:Launch( | |
| -- listener | |
| self.debugger:GetListener(), | |
| -- argv | |
| args, | |
| -- envp | |
| nil, | |
| -- stdin | |
| nil, | |
| -- stdout | |
| self.output, | |
| -- stderr | |
| nil, | |
| -- working directory | |
| nil, | |
| -- launch flags | |
| 0, | |
| -- stop at entry | |
| true, | |
| -- error | |
| error | |
| ) | |
| assertTrue(error:Success()) | |
| assertTrue(process:IsValid()) | |
| local threads = get_stopped_threads(process, lldb.eStopReasonSignal) | |
| assertTrue(#threads ~= 0) | |
| local continue = process:Continue() | |
| assertTrue(continue:Success()) | |
| local f = io.open(self.output, 'r') | |
| assertEqual(read_file_non_empty_lines(f), {self.exe, table.unpack(args)}) | |
| f:close() | |
| end | |
| os.exit(_T:run()) |