[Lldb-commits] [PATCH] D24126: Make Scalar::GetValue more consistent

Pavel Labath via lldb-commits lldb-commits at lists.llvm.org
Fri Sep 2 02:34:02 PDT 2016


This revision was automatically updated to reflect the committed changes.
Closed by commit rL280476: Make Scalar::GetValue more consistent (authored by labath).

Changed prior to commit:
  https://reviews.llvm.org/D24126?vs=69979&id=70140#toc

Repository:
  rL LLVM

https://reviews.llvm.org/D24126

Files:
  lldb/trunk/packages/Python/lldbsuite/test/functionalities/memory/find/TestMemoryFind.py
  lldb/trunk/source/Core/Scalar.cpp
  lldb/trunk/unittests/Core/ScalarTest.cpp

Index: lldb/trunk/packages/Python/lldbsuite/test/functionalities/memory/find/TestMemoryFind.py
===================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/functionalities/memory/find/TestMemoryFind.py
+++ lldb/trunk/packages/Python/lldbsuite/test/functionalities/memory/find/TestMemoryFind.py
@@ -23,7 +23,6 @@
         # Find the line number to break inside main().
         self.line = line_number('main.cpp', '// break here')
 
-    @expectedFailureAll(archs=["i386", "arm"])
     def test_memory_find(self):
         """Test the 'memory find' command."""
         self.build()
Index: lldb/trunk/unittests/Core/ScalarTest.cpp
===================================================================
--- lldb/trunk/unittests/Core/ScalarTest.cpp
+++ lldb/trunk/unittests/Core/ScalarTest.cpp
@@ -19,6 +19,7 @@
 #include "lldb/Core/Scalar.h"
 #include "lldb/Core/DataExtractor.h"
 #include "lldb/Host/Endian.h"
+#include "lldb/Core/StreamString.h"
 
 using namespace lldb_private;
 
@@ -103,3 +104,31 @@
     ASSERT_TRUE(u_scalar.ExtractBitfield(len - 4, 4));
     ASSERT_EQ(0, memcmp(&b2, u_scalar.GetBytes(), sizeof(b2)));
 }
+
+template <typename T>
+static std::string
+ScalarGetValue(T value)
+{
+    StreamString stream;
+    Scalar(value).GetValue(&stream, false);
+    return stream.GetString();
+}
+
+TEST(ScalarTest, GetValue)
+{
+    EXPECT_EQ("12345", ScalarGetValue<signed short>(12345));
+    EXPECT_EQ("-12345", ScalarGetValue<signed short>(-12345));
+    EXPECT_EQ("12345", ScalarGetValue<unsigned short>(12345));
+
+    EXPECT_EQ("12345", ScalarGetValue<signed int>(12345));
+    EXPECT_EQ("-12345", ScalarGetValue<signed int>(-12345));
+    EXPECT_EQ("12345", ScalarGetValue<unsigned int>(12345));
+
+    EXPECT_EQ("12345678", ScalarGetValue<signed long>(12345678L));
+    EXPECT_EQ("-12345678", ScalarGetValue<signed long>(-12345678L));
+    EXPECT_EQ("12345678", ScalarGetValue<unsigned long>(12345678UL));
+
+    EXPECT_EQ("1234567890123", ScalarGetValue<signed long long>(1234567890123LL));
+    EXPECT_EQ("-1234567890123", ScalarGetValue<signed long long>(-1234567890123LL));
+    EXPECT_EQ("1234567890123", ScalarGetValue<unsigned long long>(1234567890123ULL));
+}
Index: lldb/trunk/source/Core/Scalar.cpp
===================================================================
--- lldb/trunk/source/Core/Scalar.cpp
+++ lldb/trunk/source/Core/Scalar.cpp
@@ -308,18 +308,16 @@
     case e_void:
         break;
     case e_sint:
-    case e_ulong:
+    case e_slong:
     case e_slonglong:
     case e_sint128:
     case e_sint256:
-        s->Printf("%s",m_integer.toString(10,true).c_str());
-        break;
     case e_uint:
-    case e_slong:
+    case e_ulong:
     case e_ulonglong:
     case e_uint128:
     case e_uint256:
-        s->Printf("%s",m_integer.toString(16,false).c_str());
+        s->PutCString(m_integer.toString(10, true).c_str());
         break;
     case e_float:
     case e_double:


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D24126.70140.patch
Type: text/x-patch
Size: 2978 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20160902/232574b8/attachment-0001.bin>


More information about the lldb-commits mailing list