From 9e38047c56f8dff4440fe00002264be692440902 Mon Sep 17 00:00:00 2001 From: Robert Phillips Date: Fri, 28 Oct 2016 12:15:03 -0400 Subject: Add GrNextSizePow2 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4069 BUG=skia:5882 Change-Id: Ib9af5918716be594c3c07239eca179dbb4eb8566 Reviewed-on: https://skia-review.googlesource.com/4069 Reviewed-by: Brian Salomon Commit-Queue: Robert Phillips --- tests/MathTest.cpp | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) (limited to 'tests/MathTest.cpp') diff --git a/tests/MathTest.cpp b/tests/MathTest.cpp index 41a4104bd4..35b4136b44 100644 --- a/tests/MathTest.cpp +++ b/tests/MathTest.cpp @@ -685,3 +685,41 @@ DEF_TEST(divmod_s32, r) { DEF_TEST(divmod_s64, r) { test_divmod(r); } + +static void test_nextsizepow2(skiatest::Reporter* r, size_t test, size_t expectedAns) { + size_t ans = GrNextSizePow2(test); + + REPORTER_ASSERT(r, ans == expectedAns); + //SkDebugf("0x%zx -> 0x%zx (0x%zx)\n", test, ans, expectedAns); +} + +DEF_TEST(GrNextSizePow2, reporter) { + constexpr int kNumSizeTBits = 8 * sizeof(size_t); + + size_t test = 0, expectedAns = 1; + + test_nextsizepow2(reporter, test, expectedAns); + + test = 1; expectedAns = 1; + + for (int i = 1; i < kNumSizeTBits; ++i) { + test_nextsizepow2(reporter, test, expectedAns); + + test++; + expectedAns <<= 1; + + test_nextsizepow2(reporter, test, expectedAns); + + test = expectedAns; + } + + // For the remaining three tests there is no higher power (of 2) + test = 0x1; + test <<= kNumSizeTBits-1; + test_nextsizepow2(reporter, test, test); + + test++; + test_nextsizepow2(reporter, test, test); + + test_nextsizepow2(reporter, SIZE_MAX, SIZE_MAX); +} -- cgit v1.2.3