hotspot/test/native/utilities/test_align.cpp
changeset 46619 a3919f5e8d2b
parent 46618 d503911aa948
child 46625 edefffab74e2
equal deleted inserted replaced
46618:d503911aa948 46619:a3919f5e8d2b
    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