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())
 |