167f94e5aSSiger Yang_T = require('lua_lldb_test').create_test('TestProcessAPI') 267f94e5aSSiger Yang 367f94e5aSSiger Yangfunction _T:TestProcessLaunchSimple() 467f94e5aSSiger Yang local target = self:create_target() 567f94e5aSSiger Yang local args = { 'arg1', 'arg2', 'arg3' } 667f94e5aSSiger Yang local process = target:LaunchSimple( 767f94e5aSSiger Yang -- argv 867f94e5aSSiger Yang args, 967f94e5aSSiger Yang -- envp 1067f94e5aSSiger Yang nil, 1167f94e5aSSiger Yang -- working directory 1267f94e5aSSiger Yang nil 1367f94e5aSSiger Yang ) 1467f94e5aSSiger Yang assertTrue(process:IsValid()) 1567f94e5aSSiger Yang local stdout = process:GetSTDOUT(1000) 16*80fcecb1SJonas Devlieghere assertEqual(split_lines(stdout), {self.exe, table.unpack(args)}) 1767f94e5aSSiger Yangend 1867f94e5aSSiger Yang 1967f94e5aSSiger Yangfunction _T:TestProcessLaunch() 2067f94e5aSSiger Yang local target = self:create_target() 2167f94e5aSSiger Yang local args = { 'arg1', 'arg2', 'arg3' } 2267f94e5aSSiger Yang local error = lldb.SBError() 2367f94e5aSSiger Yang local f = io.open(self.output, 'w') 2467f94e5aSSiger Yang f:write() 2567f94e5aSSiger Yang f:close() 2667f94e5aSSiger Yang local process = target:Launch( 2767f94e5aSSiger Yang -- listener 2867f94e5aSSiger Yang self.debugger:GetListener(), 2967f94e5aSSiger Yang -- argv 3067f94e5aSSiger Yang args, 3167f94e5aSSiger Yang -- envp 3267f94e5aSSiger Yang nil, 3367f94e5aSSiger Yang -- stdin 3467f94e5aSSiger Yang nil, 3567f94e5aSSiger Yang -- stdout 3667f94e5aSSiger Yang self.output, 3767f94e5aSSiger Yang -- stderr 3867f94e5aSSiger Yang nil, 3967f94e5aSSiger Yang -- working directory 4067f94e5aSSiger Yang nil, 4167f94e5aSSiger Yang -- launch flags 4267f94e5aSSiger Yang 0, 4367f94e5aSSiger Yang -- stop at entry 4467f94e5aSSiger Yang true, 4567f94e5aSSiger Yang -- error 4667f94e5aSSiger Yang error 4767f94e5aSSiger Yang ) 4867f94e5aSSiger Yang assertTrue(error:Success()) 4967f94e5aSSiger Yang assertTrue(process:IsValid()) 5067f94e5aSSiger Yang local threads = get_stopped_threads(process, lldb.eStopReasonSignal) 5167f94e5aSSiger Yang assertTrue(#threads ~= 0) 5267f94e5aSSiger Yang local continue = process:Continue() 5367f94e5aSSiger Yang assertTrue(continue:Success()) 5467f94e5aSSiger Yang local f = io.open(self.output, 'r') 55*80fcecb1SJonas Devlieghere assertEqual(read_file_non_empty_lines(f), {self.exe, table.unpack(args)}) 5667f94e5aSSiger Yang f:close() 5767f94e5aSSiger Yangend 5867f94e5aSSiger Yang 5967f94e5aSSiger Yangos.exit(_T:run()) 60