/* * Copyright (c) 2014, 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 "utilities/chunkedList.hpp" #include "utilities/debug.hpp" /////////////// Unit tests /////////////// #ifndef PRODUCT template class TestChunkedList { typedef ChunkedList ChunkedListT; public: static void testEmpty() { ChunkedListT buffer; assert(buffer.size() == 0, "assert"); } static void testFull() { ChunkedListT buffer; for (uintptr_t i = 0; i < ChunkedListT::BufferSize; i++) { buffer.push((T)i); } assert(buffer.size() == ChunkedListT::BufferSize, "assert"); assert(buffer.is_full(), "assert"); } static void testSize() { ChunkedListT buffer; for (uintptr_t i = 0; i < ChunkedListT::BufferSize; i++) { assert(buffer.size() == i, "assert"); buffer.push((T)i); assert(buffer.size() == i + 1, "assert"); } } static void testClear() { ChunkedListT buffer; buffer.clear(); assert(buffer.size() == 0, "assert"); for (uintptr_t i = 0; i < ChunkedListT::BufferSize / 2; i++) { buffer.push((T)i); } buffer.clear(); assert(buffer.size() == 0, "assert"); for (uintptr_t i = 0; i < ChunkedListT::BufferSize; i++) { buffer.push((T)i); } buffer.clear(); assert(buffer.size() == 0, "assert"); } static void testAt() { ChunkedListT buffer; for (uintptr_t i = 0; i < ChunkedListT::BufferSize; i++) { buffer.push((T)i); assert(buffer.at(i) == (T)i, "assert"); } for (uintptr_t i = 0; i < ChunkedListT::BufferSize; i++) { assert(buffer.at(i) == (T)i, "assert"); } } static void test() { testEmpty(); testFull(); testSize(); testClear(); testAt(); } }; class Metadata; void TestChunkedList_test() { TestChunkedList::test(); TestChunkedList::test(); } #endif