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:
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:
_______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits