summaryrefslogtreecommitdiff
path: root/runtime/utils_test.cc
diff options
context:
space:
mode:
author Orion Hodson <oth@google.com> 2017-02-14 16:02:32 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2017-02-14 16:02:33 +0000
commit2a46b682b8fd0276c62e82a56a1f2ac63b210a95 (patch)
treefca44701850a648a243d496dc547bab0e3ef5cd0 /runtime/utils_test.cc
parent2d98ba68f13dc219c088a12f369c5778bf398f14 (diff)
parentc069a30d42aefd902c20e8bc09dfad1683f07ded (diff)
Merge "ART: invoke-custom support"
Diffstat (limited to 'runtime/utils_test.cc')
-rw-r--r--runtime/utils_test.cc19
1 files changed, 19 insertions, 0 deletions
diff --git a/runtime/utils_test.cc b/runtime/utils_test.cc
index 02f1e1bbfe..634bd47f05 100644
--- a/runtime/utils_test.cc
+++ b/runtime/utils_test.cc
@@ -408,4 +408,23 @@ TEST_F(UtilsTest, IsValidDescriptor) {
IsValidDescriptor(reinterpret_cast<char*>(&unpaired_surrogate_with_multibyte_sequence[0])));
}
+TEST_F(UtilsTest, ArrayCount) {
+ int i[64];
+ EXPECT_EQ(ArrayCount(i), 64u);
+ char c[7];
+ EXPECT_EQ(ArrayCount(c), 7u);
+}
+
+TEST_F(UtilsTest, BoundsCheckedCast) {
+ char buffer[64];
+ const char* buffer_end = buffer + ArrayCount(buffer);
+ EXPECT_EQ(BoundsCheckedCast<const uint64_t*>(nullptr, buffer, buffer_end), nullptr);
+ EXPECT_EQ(BoundsCheckedCast<const uint64_t*>(buffer, buffer, buffer_end),
+ reinterpret_cast<const uint64_t*>(buffer));
+ EXPECT_EQ(BoundsCheckedCast<const uint64_t*>(buffer + 56, buffer, buffer_end),
+ reinterpret_cast<const uint64_t*>(buffer + 56));
+ EXPECT_EQ(BoundsCheckedCast<const uint64_t*>(buffer - 1, buffer, buffer_end), nullptr);
+ EXPECT_EQ(BoundsCheckedCast<const uint64_t*>(buffer + 57, buffer, buffer_end), nullptr);
+}
+
} // namespace art