< prev index next >
src/share/vm/utilities/globalDefinitions.cpp
Print this page
@@ -355,10 +355,34 @@
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,10 +404,12 @@
// 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 >