< prev index next >

src/share/vm/utilities/globalDefinitions.cpp

Print this page

        

*** 355,364 **** --- 355,388 ---- return size_t(result); } #ifndef PRODUCT + struct T { + int val; + T(int a): val(a){} + }; + + int test_swap(){ + T a(1), b(2); + int ia, ib; + + swap(a, b); + assert(a.val == 2 && b.val == 1, "wrong result!"); + + T * pa = &a; + T * pb = &b; + swap(pa, pb); + assert(pa->val == 1 && pa == &b, "wrong result for pointer!"); + assert(pb->val == 2 && pb == &a, "wrong result for pointer!"); + assert(a.val == 2 && b.val == 1, "objects are corrupted"); + + ia = 1; + ib = 2; + swap(ia, ib); + assert(ia == 2 && ib == 1, "wrong result!"); + } void GlobalDefinitions::test_globals() { intptr_t page_sizes[] = { os::vm_page_size(), 4096, 8192, 65536, 2*1024*1024 }; const int num_page_sizes = sizeof(page_sizes) / sizeof(page_sizes[0]);
*** 380,389 **** --- 404,415 ---- // Check that address below page returns start of page assert(clamp_address_in_page(a_page - 1, a_page, page_size) == a_page, "incorrect"); assert(clamp_address_in_page(a_page - 2*page_size - 1, a_page, page_size) == a_page, "incorrect"); assert(clamp_address_in_page(a_page - 5*page_size - 1, a_page, page_size) == a_page, "incorrect"); } + + test_swap(); } #define EXPECT_EQ(expected, actual) \ assert(expected == actual, "Test failed"); #define EXPECT_STREQ(expected, actual) \
< prev index next >