xref: /llvm-project/lldb/test/API/lua_api/TestFileHandle.lua (revision c93eb43a63d3b5c90e828608b5c2063644a3b161)
167f94e5aSSiger Yang_T = require('lua_lldb_test').create_test('TestFileHandle')
267f94e5aSSiger Yang
367f94e5aSSiger Yangfunction _T:TestLegacyFileOutScript()
467f94e5aSSiger Yang    local f = io.open(self.output, 'w')
5*c93eb43aSJonas Devlieghere    local sbf = lldb.SBFile(f)
6*c93eb43aSJonas Devlieghere    self.debugger:SetOutputFile(sbf)
767f94e5aSSiger Yang    self:handle_command('script print(1+1)')
867f94e5aSSiger Yang    self.debugger:GetOutputFileHandle():write('FOO\n')
967f94e5aSSiger Yang    self.debugger:GetOutputFileHandle():flush()
1067f94e5aSSiger Yang    f:close()
1167f94e5aSSiger Yang
1267f94e5aSSiger Yang    f = io.open(self.output, 'r')
1380fcecb1SJonas Devlieghere    assertEqual(read_file_non_empty_lines(f), {'2', 'FOO'})
1467f94e5aSSiger Yang    f:close()
1567f94e5aSSiger Yangend
1667f94e5aSSiger Yang
1767f94e5aSSiger Yangfunction _T:TestLegacyFileOut()
1867f94e5aSSiger Yang    local f = io.open(self.output, 'w')
19*c93eb43aSJonas Devlieghere    local sbf = lldb.SBFile(f)
20*c93eb43aSJonas Devlieghere    self.debugger:SetOutputFile(sbf)
2140766642SDave Lee    self:handle_command('expression/x 3735928559', false)
2267f94e5aSSiger Yang    f:close()
2367f94e5aSSiger Yang
2467f94e5aSSiger Yang    f = io.open(self.output, 'r')
2567f94e5aSSiger Yang    assertStrContains(f:read('*l'), 'deadbeef')
2667f94e5aSSiger Yang    f:close()
2767f94e5aSSiger Yangend
2867f94e5aSSiger Yang
2967f94e5aSSiger Yangfunction _T:TestLegacyFileErr()
3067f94e5aSSiger Yang    local f = io.open(self.output, 'w')
31*c93eb43aSJonas Devlieghere    local sbf = lldb.SBFile(f)
32*c93eb43aSJonas Devlieghere    self.debugger:SetErrorFile(sbf)
3367f94e5aSSiger Yang    self:handle_command('lol', false)
34*c93eb43aSJonas Devlieghere    f:close()
3567f94e5aSSiger Yang
3667f94e5aSSiger Yang    f = io.open(self.output, 'r')
3767f94e5aSSiger Yang    assertStrContains(f:read('*l'), 'is not a valid command')
3867f94e5aSSiger Yang    f:close()
3967f94e5aSSiger Yangend
4067f94e5aSSiger Yang
4167f94e5aSSiger Yangos.exit(_T:run())
42