From db6e54d85285902d8a1d97f197ccb00ae55788db Mon Sep 17 00:00:00 2001 From: Kirill Zhaldybin Date: Tue, 1 Nov 2016 16:23:29 +0300 Subject: [PATCH] 8168493: Convert TestBitMap_test to GTest Reviewed-by: kbarrett, tschatzl --- hotspot/src/share/vm/utilities/bitMap.cpp | 114 --------------- hotspot/src/share/vm/utilities/bitMap.hpp | 2 - .../share/vm/utilities/internalVMTests.cpp | 1 - hotspot/test/native/utilities/test_bitMap.cpp | 132 ++++++++++++++++++ 4 files changed, 132 insertions(+), 117 deletions(-) create mode 100644 hotspot/test/native/utilities/test_bitMap.cpp diff --git a/hotspot/src/share/vm/utilities/bitMap.cpp b/hotspot/src/share/vm/utilities/bitMap.cpp index b0b7d567f8e..19a54cc8e7b 100644 --- a/hotspot/src/share/vm/utilities/bitMap.cpp +++ b/hotspot/src/share/vm/utilities/bitMap.cpp @@ -680,118 +680,4 @@ void BitMap::print_on(outputStream* st) const { tty->cr(); } -class TestBitMap : public AllStatic { - const static BitMap::idx_t BITMAP_SIZE = 1024; - - template - static void fillBitMap(ResizableBitMapClass& map) { - map.set_bit(1); - map.set_bit(3); - map.set_bit(17); - map.set_bit(512); - } - - template - static void testResize(BitMap::idx_t start_size) { - ResourceMark rm; - - ResizableBitMapClass map(start_size); - map.resize(BITMAP_SIZE); - fillBitMap(map); - - ResizableBitMapClass map2(BITMAP_SIZE); - fillBitMap(map2); - assert(map.is_same(map2), "could be"); - } - - template - static void testResizeGrow() { - testResize(0); - testResize(128); - } - - template - static void testResizeSame() { - testResize(BITMAP_SIZE); - } - - template - static void testResizeShrink() { - testResize(BITMAP_SIZE * 2); - } - - static void testResizeGrow() { - testResizeGrow(); - testResizeGrow(); - } - - static void testResizeSame() { - testResizeSame(); - testResizeSame(); - } - - static void testResizeShrink() { - testResizeShrink(); - testResizeShrink(); - } - - static void testResize() { - testResizeGrow(); - testResizeSame(); - testResizeShrink(); - } - - template - static void testInitialize() { - ResourceMark rm; - - InitializableBitMapClass map; - map.initialize(BITMAP_SIZE); - fillBitMap(map); - - InitializableBitMapClass map2(BITMAP_SIZE); - fillBitMap(map2); - assert(map.is_same(map2), "could be"); - } - - static void testInitialize() { - testInitialize(); - testInitialize(); - } - - template - static void testReinitialize(BitMap::idx_t init_size) { - ResourceMark rm; - - ReinitializableBitMapClass map(init_size); - map.reinitialize(BITMAP_SIZE); - fillBitMap(map); - - ReinitializableBitMapClass map2(BITMAP_SIZE); - fillBitMap(map2); - assert(map.is_same(map2), "could be"); - } - - template - static void testReinitialize() { - testReinitialize(0); - testReinitialize(128); - testReinitialize(BITMAP_SIZE); - } - - static void testReinitialize() { - testReinitialize(); - } - - public: - static void test() { - testResize(); - testInitialize(); - testReinitialize(); - } -}; - -void TestBitMap_test() { - TestBitMap::test(); -} #endif diff --git a/hotspot/src/share/vm/utilities/bitMap.hpp b/hotspot/src/share/vm/utilities/bitMap.hpp index 919a54cd483..cc08eab08f2 100644 --- a/hotspot/src/share/vm/utilities/bitMap.hpp +++ b/hotspot/src/share/vm/utilities/bitMap.hpp @@ -312,7 +312,6 @@ class BitMapView : public BitMap { // A BitMap with storage in a ResourceArea. class ResourceBitMap : public BitMap { - friend class TestBitMap; public: ResourceBitMap() : BitMap(NULL, 0) {} @@ -351,7 +350,6 @@ class ArenaBitMap : public BitMap { // A BitMap with storage in the CHeap. class CHeapBitMap : public BitMap { - friend class TestBitMap; private: // Don't allow copy or assignment, to prevent the diff --git a/hotspot/src/share/vm/utilities/internalVMTests.cpp b/hotspot/src/share/vm/utilities/internalVMTests.cpp index 3ce41677a25..2f401ed28b4 100644 --- a/hotspot/src/share/vm/utilities/internalVMTests.cpp +++ b/hotspot/src/share/vm/utilities/internalVMTests.cpp @@ -50,7 +50,6 @@ void InternalVMTests::run() { run_unit_test(TestGlobalDefinitions_test); run_unit_test(GCTimer_test); run_unit_test(CollectedHeap_test); - run_unit_test(TestBitMap_test); run_unit_test(ObjectMonitor_test); run_unit_test(DirectivesParser_test); #if INCLUDE_VM_STRUCTS diff --git a/hotspot/test/native/utilities/test_bitMap.cpp b/hotspot/test/native/utilities/test_bitMap.cpp new file mode 100644 index 00000000000..931e502fd60 --- /dev/null +++ b/hotspot/test/native/utilities/test_bitMap.cpp @@ -0,0 +1,132 @@ +/* + * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +#include "precompiled.hpp" +#include "memory/resourceArea.hpp" +#include "utilities/bitMap.inline.hpp" +#include "unittest.hpp" + +class BitMapTest { + + template + static void fillBitMap(ResizableBitMapClass& map) { + map.set_bit(1); + map.set_bit(3); + map.set_bit(17); + map.set_bit(512); + } + + template + static void testResize(BitMap::idx_t start_size) { + ResourceMark rm; + + ResizableBitMapClass map(start_size); + map.resize(BITMAP_SIZE); + fillBitMap(map); + + ResizableBitMapClass map2(BITMAP_SIZE); + fillBitMap(map2); + EXPECT_TRUE(map.is_same(map2)) << "With start_size " << start_size; + } + + public: + const static BitMap::idx_t BITMAP_SIZE = 1024; + + + template + static void testResizeGrow() { + testResize(0); + testResize(BITMAP_SIZE >> 3); + } + + template + static void testResizeSame() { + testResize(BITMAP_SIZE); + } + + template + static void testResizeShrink() { + testResize(BITMAP_SIZE * 2); + } + + template + static void testInitialize() { + ResourceMark rm; + + InitializableBitMapClass map; + map.initialize(BITMAP_SIZE); + fillBitMap(map); + + InitializableBitMapClass map2(BITMAP_SIZE); + fillBitMap(map2); + EXPECT_TRUE(map.is_same(map2)); + } + + + static void testReinitialize(BitMap::idx_t init_size) { + ResourceMark rm; + + ResourceBitMap map(init_size); + map.reinitialize(BITMAP_SIZE); + fillBitMap(map); + + ResourceBitMap map2(BITMAP_SIZE); + fillBitMap(map2); + EXPECT_TRUE(map.is_same(map2)) << "With init_size " << init_size; + } + +}; + +TEST_VM(BitMap, resize_grow) { + BitMapTest::testResizeGrow(); + EXPECT_FALSE(HasFailure()) << "Failed on type ResourceBitMap"; + BitMapTest::testResizeGrow(); + EXPECT_FALSE(HasFailure()) << "Failed on type CHeapBitMap"; +} + +TEST_VM(BitMap, resize_shrink) { + BitMapTest::testResizeShrink(); + EXPECT_FALSE(HasFailure()) << "Failed on type ResourceBitMap"; + BitMapTest::testResizeShrink(); + EXPECT_FALSE(HasFailure()) << "Failed on type CHeapBitMap"; +} + +TEST_VM(BitMap, resize_same) { + BitMapTest::testResizeSame(); + EXPECT_FALSE(HasFailure()) << "Failed on type ResourceBitMap"; + BitMapTest::testResizeSame(); + EXPECT_FALSE(HasFailure()) << "Failed on type CHeapBitMap"; +} + +TEST_VM(BitMap, initialize) { + BitMapTest::testInitialize(); + EXPECT_FALSE(HasFailure()) << "Failed on type ResourceBitMap"; + BitMapTest::testInitialize(); + EXPECT_FALSE(HasFailure()) << "Failed on type CHeapBitMap"; +} + +TEST_VM(BitMap, reinitialize) { + BitMapTest::testReinitialize(0); + BitMapTest::testReinitialize(BitMapTest::BITMAP_SIZE >> 3); + BitMapTest::testReinitialize(BitMapTest::BITMAP_SIZE); +}