src/share/vm/utilities/globalDefinitions.cpp

changeset 4889
cc32ccaaf47f
parent 4159
8e47bac5643a
child 6198
55fb97c4c58d
     1.1 --- a/src/share/vm/utilities/globalDefinitions.cpp	Wed Apr 03 16:43:09 2013 -0700
     1.2 +++ b/src/share/vm/utilities/globalDefinitions.cpp	Thu Apr 04 10:01:26 2013 -0700
     1.3 @@ -355,3 +355,33 @@
     1.4  
     1.5      return size_t(result);
     1.6  }
     1.7 +
     1.8 +#ifndef PRODUCT
     1.9 +
    1.10 +void GlobalDefinitions::test_globals() {
    1.11 +  intptr_t page_sizes[] = { os::vm_page_size(), 4096, 8192, 65536, 2*1024*1024 };
    1.12 +  const int num_page_sizes = sizeof(page_sizes) / sizeof(page_sizes[0]);
    1.13 +
    1.14 +  for (int i = 0; i < num_page_sizes; i++) {
    1.15 +    intptr_t page_size = page_sizes[i];
    1.16 +
    1.17 +    address a_page = (address)(10*page_size);
    1.18 +
    1.19 +    // Check that address within page is returned as is
    1.20 +    assert(clamp_address_in_page(a_page, a_page, page_size) == a_page, "incorrect");
    1.21 +    assert(clamp_address_in_page(a_page + 128, a_page, page_size) == a_page + 128, "incorrect");
    1.22 +    assert(clamp_address_in_page(a_page + page_size - 1, a_page, page_size) == a_page + page_size - 1, "incorrect");
    1.23 +
    1.24 +    // Check that address above page returns start of next page
    1.25 +    assert(clamp_address_in_page(a_page + page_size, a_page, page_size) == a_page + page_size, "incorrect");
    1.26 +    assert(clamp_address_in_page(a_page + page_size + 1, a_page, page_size) == a_page + page_size, "incorrect");
    1.27 +    assert(clamp_address_in_page(a_page + page_size*5 + 1, a_page, page_size) == a_page + page_size, "incorrect");
    1.28 +
    1.29 +    // Check that address below page returns start of page
    1.30 +    assert(clamp_address_in_page(a_page - 1, a_page, page_size) == a_page, "incorrect");
    1.31 +    assert(clamp_address_in_page(a_page - 2*page_size - 1, a_page, page_size) == a_page, "incorrect");
    1.32 +    assert(clamp_address_in_page(a_page - 5*page_size - 1, a_page, page_size) == a_page, "incorrect");
    1.33 +  }
    1.34 +}
    1.35 +
    1.36 +#endif // PRODUCT

mercurial