[Lldb-commits] [PATCH] D43599: FFix TestSBData.py on Windows (which uses Python 3)

Adrian McCarthy via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Wed Feb 21 16:19:56 PST 2018


amccarth created this revision.
amccarth added a reviewer: zturner.
Herald added a subscriber: sanjoy.

This test uses the SB API to set and read back bytes of data, and it works fine
when Python 2 is the scripting language. On Windows, however, Python 3 is the
default.

Note this line from the test:

  addr_data = '\x11\x22\x33\x44\x55\x66\x77\x88'

The intent here is to create an array of eight bytes as a string literal. This
works in Python 2, but Python 3 treats those as a series Unicode code points,
and the CPython implementation happens to encode those code points as UTF-8.
The first seven characters encode directly as single bytes of the same value,
but the UTF-8 encoding of 0x88 is two bytes long: 0xC2 0x88.  Thus the input
array doesn't have the intended data at the end, and tests that rely on the
byte fails.

Adding the b prefix tells Python 3 that we want a byte array rather than a
string. With this change, the test now passes on Windows.

Fix TestMoveNearest on Windows

The header file for the DLL tried to declare inline functions and a local
function as dllexport which broke the compile and link.  Removing the bad
declarations solves the problem, and the test passes on Windows now.


https://reviews.llvm.org/D43599

Files:
  lldb/packages/Python/lldbsuite/test/functionalities/breakpoint/move_nearest/foo.h
  lldb/packages/Python/lldbsuite/test/python_api/sbdata/TestSBData.py


Index: lldb/packages/Python/lldbsuite/test/python_api/sbdata/TestSBData.py
===================================================================
--- lldb/packages/Python/lldbsuite/test/python_api/sbdata/TestSBData.py
+++ lldb/packages/Python/lldbsuite/test/python_api/sbdata/TestSBData.py
@@ -25,7 +25,7 @@
     def test_byte_order_and_address_byte_size(self):
         """Test the SBData::SetData() to ensure the byte order and address 
         byte size are obeyed"""
-        addr_data = '\x11\x22\x33\x44\x55\x66\x77\x88'
+        addr_data = b'\x11\x22\x33\x44\x55\x66\x77\x88'
         error = lldb.SBError()
         data = lldb.SBData()
         data.SetData(error, addr_data, lldb.eByteOrderBig, 4)
Index: lldb/packages/Python/lldbsuite/test/functionalities/breakpoint/move_nearest/foo.h
===================================================================
--- lldb/packages/Python/lldbsuite/test/functionalities/breakpoint/move_nearest/foo.h
+++ lldb/packages/Python/lldbsuite/test/functionalities/breakpoint/move_nearest/foo.h
@@ -1,6 +1,5 @@
-LLDB_TEST_API inline int foo1() { return 1; } // !BR1
+inline int foo1() { return 1; } // !BR1
 
-LLDB_TEST_API inline int foo2() { return 2; } // !BR2
+inline int foo2() { return 2; } // !BR2
 
 LLDB_TEST_API extern int call_foo1();
-LLDB_TEST_API extern int call_foo2();


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D43599.135344.patch
Type: text/x-patch
Size: 1326 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20180222/b63730ea/attachment.bin>


More information about the lldb-commits mailing list