forked from OSchip/llvm-project
60 lines
1.5 KiB
Lua
60 lines
1.5 KiB
Lua
|
_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)
|
||
|
assertEquals(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')
|
||
|
assertEquals(read_file_non_empty_lines(f), {self.exe, table.unpack(args)})
|
||
|
f:close()
|
||
|
end
|
||
|
|
||
|
os.exit(_T:run())
|