diff options
| author | Siger Yang <sigeryeung@gmail.com> | 2021-10-12 22:08:05 +0800 |
|---|---|---|
| committer | Siger Yang <sigeryeung@gmail.com> | 2021-10-12 22:10:21 +0800 |
| commit | 67f94e5a9745665dd62550c75cb16569fbb0059d (patch) | |
| tree | 171d89cbe40bd2e33bbc663f220c0c082ab40973 /lldb/test/API/lua_api/TestProcessAPI.lua | |
| parent | 40546cb38189e438a81faa6400c103d159600f9e (diff) | |
[lldb/lua] Supplement Lua bindings for lldb module
Add necessary typemaps for Lua bindings, together with some other files.
Signed-off-by: Siger Yang <sigeryeung@gmail.com>
Reviewed By: tammela
Differential Revision: https://reviews.llvm.org/D108090
Diffstat (limited to 'lldb/test/API/lua_api/TestProcessAPI.lua')
| -rw-r--r-- | lldb/test/API/lua_api/TestProcessAPI.lua | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/lldb/test/API/lua_api/TestProcessAPI.lua b/lldb/test/API/lua_api/TestProcessAPI.lua new file mode 100644 index 000000000000..aa788ba74115 --- /dev/null +++ b/lldb/test/API/lua_api/TestProcessAPI.lua @@ -0,0 +1,59 @@ +_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()) |
