summaryrefslogtreecommitdiff
path: root/lldb/test/API/lua_api/TestProcessAPI.lua
diff options
context:
space:
mode:
authorSiger Yang <sigeryeung@gmail.com>2021-10-12 22:08:05 +0800
committerSiger Yang <sigeryeung@gmail.com>2021-10-12 22:10:21 +0800
commit67f94e5a9745665dd62550c75cb16569fbb0059d (patch)
tree171d89cbe40bd2e33bbc663f220c0c082ab40973 /lldb/test/API/lua_api/TestProcessAPI.lua
parent40546cb38189e438a81faa6400c103d159600f9e (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.lua59
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())