diff options
author | Lawrence D'Anna <lawrence_danna@apple.com> | 2019-10-15 16:59:20 +0000 |
---|---|---|
committer | Lawrence D'Anna <lawrence_danna@apple.com> | 2019-10-15 16:59:20 +0000 |
commit | 311dbb1bd7c2933e8c1f5317aa9ef8715b4fae3c (patch) | |
tree | 647aead7ea53ea5db166dd12f3e078198d3052ad /lldb/packages/Python/lldbsuite/test | |
parent | d9b553ec9961e95740535d3aeff62817f867767f (diff) | |
download | bcm5719-llvm-311dbb1bd7c2933e8c1f5317aa9ef8715b4fae3c.tar.gz bcm5719-llvm-311dbb1bd7c2933e8c1f5317aa9ef8715b4fae3c.zip |
convert SBDebugger::***FileHandle() wrappers to native files.
Summary:
This patch converts the swig wrappers for SetInputFileHandle() and friends
to emulate the old behavior using SetInputFile().
This will clear the way for deleting the FILE* typemaps altogether.
Reviewers: JDevlieghere, jasonmolenda, labath
Reviewed By: labath
Subscribers: mehdi_amini, dexonsmith, lldb-commits
Tags: #lldb
Differential Revision: https://reviews.llvm.org/D68856
llvm-svn: 374912
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test')
-rw-r--r-- | lldb/packages/Python/lldbsuite/test/python_api/file_handle/TestFileHandle.py | 51 |
1 files changed, 42 insertions, 9 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/python_api/file_handle/TestFileHandle.py b/lldb/packages/Python/lldbsuite/test/python_api/file_handle/TestFileHandle.py index 1bd002e6bb7..c9c55b458b4 100644 --- a/lldb/packages/Python/lldbsuite/test/python_api/file_handle/TestFileHandle.py +++ b/lldb/packages/Python/lldbsuite/test/python_api/file_handle/TestFileHandle.py @@ -129,8 +129,6 @@ class FileHandleTestCase(lldbtest.TestBase): @add_test_categories(['pyapi']) - @skipIfWindows # FIXME pre-existing bug, should be fixed - # when we delete the FILE* typemaps. def test_legacy_file_out_script(self): with open(self.out_filename, 'w') as f: self.debugger.SetOutputFileHandle(f, False) @@ -155,8 +153,6 @@ class FileHandleTestCase(lldbtest.TestBase): self.assertIn('deadbeef', f.read()) @add_test_categories(['pyapi']) - @skipIfWindows # FIXME pre-existing bug, should be fixed - # when we delete the FILE* typemaps. def test_legacy_file_err_with_get(self): with open(self.out_filename, 'w') as f: self.debugger.SetErrorFileHandle(f, False) @@ -194,11 +190,11 @@ class FileHandleTestCase(lldbtest.TestBase): @add_test_categories(['pyapi']) def test_sbfile_type_errors(self): sbf = lldb.SBFile() - self.assertRaises(TypeError, sbf.Write, None) - self.assertRaises(TypeError, sbf.Read, None) - self.assertRaises(TypeError, sbf.Read, b'this bytes is not mutable') - self.assertRaises(TypeError, sbf.Write, u"ham sandwich") - self.assertRaises(TypeError, sbf.Read, u"ham sandwich") + self.assertRaises(Exception, sbf.Write, None) + self.assertRaises(Exception, sbf.Read, None) + self.assertRaises(Exception, sbf.Read, b'this bytes is not mutable') + self.assertRaises(Exception, sbf.Write, u"ham sandwich") + self.assertRaises(Exception, sbf.Read, u"ham sandwich") @add_test_categories(['pyapi']) @@ -859,3 +855,40 @@ class FileHandleTestCase(lldbtest.TestBase): with open(self.out_filename, 'r') as f: self.assertEqual(list(range(10)), list(map(int, f.read().strip().split()))) + + @add_test_categories(['pyapi']) + def test_set_filehandle_none(self): + self.assertRaises(Exception, self.debugger.SetOutputFile, None) + self.assertRaises(Exception, self.debugger.SetOutputFile, "ham sandwich") + self.assertRaises(Exception, self.debugger.SetOutputFileHandle, "ham sandwich") + self.assertRaises(Exception, self.debugger.SetInputFile, None) + self.assertRaises(Exception, self.debugger.SetInputFile, "ham sandwich") + self.assertRaises(Exception, self.debugger.SetInputFileHandle, "ham sandwich") + self.assertRaises(Exception, self.debugger.SetErrorFile, None) + self.assertRaises(Exception, self.debugger.SetErrorFile, "ham sandwich") + self.assertRaises(Exception, self.debugger.SetErrorFileHandle, "ham sandwich") + + with open(self.out_filename, 'w') as f: + status = self.debugger.SetOutputFile(f) + self.assertTrue(status.Success()) + status = self.debugger.SetErrorFile(f) + self.assertTrue(status.Success()) + self.debugger.SetOutputFileHandle(None, False) + self.debugger.SetErrorFileHandle(None, False) + sbf = self.debugger.GetOutputFile() + if sys.version_info.major >= 3: + # python 2 lacks PyFile_FromFd, so GetFile() will + # have to duplicate the file descriptor and make a FILE* + # in order to convert a NativeFile it back to a python + # file. + self.assertEqual(sbf.GetFile().fileno(), 1) + sbf = self.debugger.GetErrorFile() + if sys.version_info.major >= 3: + self.assertEqual(sbf.GetFile().fileno(), 2) + with open(self.out_filename, 'r') as f: + status = self.debugger.SetInputFile(f) + self.assertTrue(status.Success()) + self.debugger.SetInputFileHandle(None, False) + sbf = self.debugger.GetInputFile() + if sys.version_info.major >= 3: + self.assertEqual(sbf.GetFile().fileno(), 0) |