diff options
author | Dylan Noblesmith <nobled@dreamwidth.org> | 2011-06-15 23:36:34 +0000 |
---|---|---|
committer | Dylan Noblesmith <nobled@dreamwidth.org> | 2011-06-15 23:36:34 +0000 |
commit | 5f36bb1759e35bd3aef4b6ce226e091849f6b816 (patch) | |
tree | 8c12978fcfc87dd5975f8d23b767d7657fa27143 /unittests | |
parent | 77b4b13c2a525faf646a6784b24692cf0459b75e (diff) |
unittests: add test for APInt::toString()
Follow up to r133032.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133107 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'unittests')
-rw-r--r-- | unittests/ADT/APIntTest.cpp | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/unittests/ADT/APIntTest.cpp b/unittests/ADT/APIntTest.cpp index dbd0cb7a24..1f78cd33bd 100644 --- a/unittests/ADT/APIntTest.cpp +++ b/unittests/ADT/APIntTest.cpp @@ -320,6 +320,52 @@ TEST(APIntTest, StringBitsNeeded16) { EXPECT_EQ(9U, APInt::getBitsNeeded("-20", 16)); } +TEST(APIntTest, toString) { + SmallString<16> S; + bool isSigned; + + APInt(8, 0).toString(S, 2, true, true); + EXPECT_EQ(S.str().str(), "0b0"); + S.clear(); + APInt(8, 0).toString(S, 8, true, true); + EXPECT_EQ(S.str().str(), "00"); + S.clear(); + APInt(8, 0).toString(S, 10, true, true); + EXPECT_EQ(S.str().str(), "0"); + S.clear(); + APInt(8, 0).toString(S, 16, true, true); + EXPECT_EQ(S.str().str(), "0x0"); + S.clear(); + + isSigned = false; + APInt(8, 255, isSigned).toString(S, 2, isSigned, true); + EXPECT_EQ(S.str().str(), "0b11111111"); + S.clear(); + APInt(8, 255, isSigned).toString(S, 8, isSigned, true); + EXPECT_EQ(S.str().str(), "0377"); + S.clear(); + APInt(8, 255, isSigned).toString(S, 10, isSigned, true); + EXPECT_EQ(S.str().str(), "255"); + S.clear(); + APInt(8, 255, isSigned).toString(S, 16, isSigned, true); + EXPECT_EQ(S.str().str(), "0xFF"); + S.clear(); + + isSigned = true; + APInt(8, 255, isSigned).toString(S, 2, isSigned, true); + EXPECT_EQ(S.str().str(), "-0b1"); + S.clear(); + APInt(8, 255, isSigned).toString(S, 8, isSigned, true); + EXPECT_EQ(S.str().str(), "-01"); + S.clear(); + APInt(8, 255, isSigned).toString(S, 10, isSigned, true); + EXPECT_EQ(S.str().str(), "-1"); + S.clear(); + APInt(8, 255, isSigned).toString(S, 16, isSigned, true); + EXPECT_EQ(S.str().str(), "-0x1"); + S.clear(); +} + TEST(APIntTest, Log2) { EXPECT_EQ(APInt(15, 7).logBase2(), 2U); EXPECT_EQ(APInt(15, 7).ceilLogBase2(), 3U); |