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