51 |
51 |
52 for (size_t i = 0; i < ARRAY_SIZE(values); i++) { |
52 for (size_t i = 0; i < ARRAY_SIZE(values); i++) { |
53 log("--- Value: " UINT64_FORMAT "\n", values[i]); |
53 log("--- Value: " UINT64_FORMAT "\n", values[i]); |
54 |
54 |
55 // Test align up |
55 // Test align up |
56 const uint64_t up = align_size_up_(values[i], (uint64_t)alignment); |
56 const uint64_t up = align_up_(values[i], (uint64_t)alignment); |
57 if (0 < up && up <= (uint64_t)std::numeric_limits<T>::max()) { |
57 if (0 < up && up <= (uint64_t)std::numeric_limits<T>::max()) { |
58 log("Testing align_up: alignment: 0x" UINT64_FORMAT_X " value: 0x" UINT64_FORMAT_X " expected: 0x" UINT64_FORMAT_X "\n", (uint64_t)alignment, values[i], up); |
58 log("Testing align_up: alignment: 0x" UINT64_FORMAT_X " value: 0x" UINT64_FORMAT_X " expected: 0x" UINT64_FORMAT_X "\n", (uint64_t)alignment, values[i], up); |
59 |
59 |
60 T value = T(values[i]); |
60 T value = T(values[i]); |
61 |
61 |
62 // Check against uint64_t version |
62 // Check against uint64_t version |
63 ASSERT_EQ(align_size_up((uint64_t)value, alignment), up); |
63 ASSERT_EQ(align_up((uint64_t)value, alignment), up); |
64 // Check inline function vs macro |
64 // Check inline function vs macro |
65 ASSERT_EQ(align_size_up(value, alignment), align_size_up_(value, alignment)); |
65 ASSERT_EQ(align_up(value, alignment), align_up_(value, alignment)); |
66 // Sanity check |
66 // Sanity check |
67 ASSERT_GE(align_size_up(value, alignment), value); |
67 ASSERT_GE(align_up(value, alignment), value); |
68 } |
68 } |
69 |
69 |
70 // Test align down |
70 // Test align down |
71 const uint64_t down = align_size_down_(values[i], (uint64_t)alignment); |
71 const uint64_t down = align_down_(values[i], (uint64_t)alignment); |
72 if (down <= (uint64_t)std::numeric_limits<T>::max()) { |
72 if (down <= (uint64_t)std::numeric_limits<T>::max()) { |
73 log("Testing align_size_down: alignment: 0x" UINT64_FORMAT_X " value: 0x" UINT64_FORMAT_X " expected: 0x" UINT64_FORMAT_X "\n", (uint64_t)alignment, values[i], down); |
73 log("Testing align_down: alignment: 0x" UINT64_FORMAT_X " value: 0x" UINT64_FORMAT_X " expected: 0x" UINT64_FORMAT_X "\n", (uint64_t)alignment, values[i], down); |
74 |
74 |
75 T value = T(values[i]); |
75 T value = T(values[i]); |
76 |
76 |
77 // Check against uint64_t version |
77 // Check against uint64_t version |
78 ASSERT_EQ((uint64_t)align_size_down(value, alignment), down); |
78 ASSERT_EQ((uint64_t)align_down(value, alignment), down); |
79 // Check inline function vs macro |
79 // Check inline function vs macro |
80 ASSERT_EQ(align_size_down(value, alignment), align_size_down_(value, alignment)); |
80 ASSERT_EQ(align_down(value, alignment), align_down_(value, alignment)); |
81 // Sanity check |
81 // Sanity check |
82 ASSERT_LE(align_size_down(value, alignment), value); |
82 ASSERT_LE(align_down(value, alignment), value); |
83 } |
83 } |
84 |
84 |
85 // Test is aligned |
85 // Test is aligned |
86 const bool is = is_size_aligned_(values[i], (uint64_t)alignment); |
86 const bool is = is_aligned_(values[i], (uint64_t)alignment); |
87 if (values[i] <= (uint64_t)std::numeric_limits<T>::max()) { |
87 if (values[i] <= (uint64_t)std::numeric_limits<T>::max()) { |
88 log("Testing is_aligned: alignment: 0x" UINT64_FORMAT_X " value: 0x" UINT64_FORMAT_X " expected: %s\n", (uint64_t)alignment, values[i], is ? "true" : "false"); |
88 log("Testing is_aligned: alignment: 0x" UINT64_FORMAT_X " value: 0x" UINT64_FORMAT_X " expected: %s\n", (uint64_t)alignment, values[i], is ? "true" : "false"); |
89 |
89 |
90 T value = T(values[i]); |
90 T value = T(values[i]); |
91 |
91 |
92 // Check against uint64_t version |
92 // Check against uint64_t version |
93 ASSERT_EQ(is_size_aligned(value, alignment), is); |
93 ASSERT_EQ(is_aligned(value, alignment), is); |
94 // Check inline function vs macro |
94 // Check inline function vs macro |
95 ASSERT_EQ(is_size_aligned(value, alignment), is_size_aligned_(value, alignment)); |
95 ASSERT_EQ(is_aligned(value, alignment), is_aligned_(value, alignment)); |
96 } |
96 } |
97 } |
97 } |
98 } |
98 } |
99 } |
99 } |
100 |
100 |