From: Francesco Chemolli Date: Tue, 11 Feb 2014 13:14:09 +0000 (+0100) Subject: Remove Vector, Stack and related unit tests X-Git-Tag: SQUID_3_5_0_1~375^2~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3cf8f5c1d8e2de4843abae4b59025e9f683d653d;p=thirdparty%2Fsquid.git Remove Vector, Stack and related unit tests --- diff --git a/include/Stack.h b/include/Stack.h deleted file mode 100644 index ac1ec17712..0000000000 --- a/include/Stack.h +++ /dev/null @@ -1,71 +0,0 @@ -/* - * AUTHOR: Alex Rousskov - * - * SQUID Web Proxy Cache http://www.squid-cache.org/ - * ---------------------------------------------------------- - * - * Squid is the result of efforts by numerous individuals from - * the Internet community; see the CONTRIBUTORS file for full - * details. Many organizations have provided support for Squid's - * development; see the SPONSORS file for full details. Squid is - * Copyrighted (C) 2001 by the Regents of the University of - * California; see the COPYRIGHT file for full details. Squid - * incorporates software developed and/or copyrighted by other - * sources; see the CREDITS file for full details. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program 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 for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA. - * - */ - -#ifndef SQUID_STACK_H -#define SQUID_STACK_H - -#include "base/Vector.h" - -/* RBC: 20030714 Composition might be better long-term, but for now, - * there's no reason to do so. - */ - -template - -class Stack : public Vector -{ -public: - using Vector::count; - using Vector::items; - typedef typename Vector::value_type value_type; - typedef typename Vector::pointer pointer; - value_type pop() { - if (Vector::empty()) - return value_type(); - - value_type result = items[--count]; - - this->items[count] = value_type(); - - return result; - } - - /* todo, fatal on empty Top call */ - value_type top() const { - return count ? items[count - 1] : value_type(); - } - - void push(S item) { - Vector::push_back(item); - } -}; - -#endif /* SQUID_STACK_H */ diff --git a/src/DelayUser.h b/src/DelayUser.h index 6ac274791c..9bc88f411d 100644 --- a/src/DelayUser.h +++ b/src/DelayUser.h @@ -38,7 +38,6 @@ #include "auth/Gadgets.h" #include "auth/User.h" -#include "base/Vector.h" #include "CompositePoolNode.h" #include "DelayBucket.h" #include "DelayIdComposite.h" diff --git a/src/Makefile.am b/src/Makefile.am index 400f3153d5..c0568c1ead 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1077,8 +1077,7 @@ check_PROGRAMS+=\ tests/testSBuf \ tests/testSBufList \ tests/testConfigParser \ - tests/testStatHist \ - tests/testVector + tests/testStatHist if HAVE_FS_ROCK check_PROGRAMS += tests/testRock @@ -3826,21 +3825,6 @@ tests_testStatHist_LDADD = \ $(COMPAT_LIB) tests_testStatHist_DEPENDENCIES = $(SQUID_CPPUNIT_LA) -tests_testVector_SOURCES = \ - tests/testVector.cc \ - tests/testMain.cc \ - tests/testVector.h -nodist_tests_testVector_SOURCES = \ - $(TESTSOURCES) -tests_testVector_LDADD= \ - $(SQUID_CPPUNIT_LIBS) \ - $(COMPAT_LIB) \ - $(XTRA_LIBS) -tests_testVector_LDFLAGS = $(LIBADD_DL) -tests_testVector_DEPENDENCIES = \ - $(SQUID_CPPUNIT_LA) - - TESTS += testHeaders ## Special Universal .h dependency test script diff --git a/src/base/Makefile.am b/src/base/Makefile.am index 80533ad426..3591294cf8 100644 --- a/src/base/Makefile.am +++ b/src/base/Makefile.am @@ -23,9 +23,7 @@ libbase_la_SOURCES = \ RunnersRegistry.h \ Subscription.h \ TextException.cc \ - TextException.h \ - Vector.cc \ - Vector.h + TextException.h EXTRA_PROGRAMS = \ testCharacterSet diff --git a/src/base/Vector.cc b/src/base/Vector.cc deleted file mode 100644 index afc420aec9..0000000000 --- a/src/base/Vector.cc +++ /dev/null @@ -1,48 +0,0 @@ -/* - * AUTHOR: Alex Rousskov - * - * SQUID Web Proxy Cache http://www.squid-cache.org/ - * ---------------------------------------------------------- - * - * Squid is the result of efforts by numerous individuals from - * the Internet community; see the CONTRIBUTORS file for full - * details. Many organizations have provided support for Squid's - * development; see the SPONSORS file for full details. Squid is - * Copyrighted (C) 2001 by the Regents of the University of - * California; see the COPYRIGHT file for full details. Squid - * incorporates software developed and/or copyrighted by other - * sources; see the CREDITS file for full details. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program 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 for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA. - * - */ - -/* - * Array is an array of (void*) items with unlimited capacity - * - * Array grows when arrayAppend() is called and no space is left - * Currently, array does not have an interface for deleting an item because - * we do not need such an interface yet. - */ - -#include "squid.h" -#include "base/Vector.h" - -#if HAVE_ASSERT_H -#include -#endif -#if HAVE_STRING_H -#include -#endif diff --git a/src/base/Vector.h b/src/base/Vector.h deleted file mode 100644 index 05d58f1281..0000000000 --- a/src/base/Vector.h +++ /dev/null @@ -1,471 +0,0 @@ -/* - * AUTHOR: Alex Rousskov - * - * SQUID Web Proxy Cache http://www.squid-cache.org/ - * ---------------------------------------------------------- - * - * Squid is the result of efforts by numerous individuals from - * the Internet community; see the CONTRIBUTORS file for full - * details. Many organizations have provided support for Squid's - * development; see the SPONSORS file for full details. Squid is - * Copyrighted (C) 2001 by the Regents of the University of - * California; see the COPYRIGHT file for full details. Squid - * incorporates software developed and/or copyrighted by other - * sources; see the CREDITS file for full details. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program 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 for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA. - * - */ -#ifndef SQUID_ARRAY_H -#define SQUID_ARRAY_H - -/** - \todo remove this after replacing with STL - */ - -#include "fatal.h" -#include "util.h" - -/* users of this template also need assert() */ -#include "compat/assert.h" - -/* iterator support */ -#include - -template -class VectorIteratorBase -{ -public: - typedef typename C::value_type value_type; - typedef std::forward_iterator_tag iterator_category; - typedef typename C::pointer pointer; - typedef typename C::reference reference; - typedef typename C::difference_type difference_type; - - VectorIteratorBase(); - VectorIteratorBase(C &); - VectorIteratorBase(size_t, C &); - VectorIteratorBase & operator =(VectorIteratorBase const &); - bool operator != (VectorIteratorBase const &rhs) const; - bool operator == (VectorIteratorBase const &rhs) const; - VectorIteratorBase & operator ++(); - VectorIteratorBase operator ++(int); - typename C::value_type & operator *() const { - return theVector->items[pos]; - } - - typename C::value_type * operator -> () const { - return &theVector->items[pos]; - } - - ssize_t operator - (VectorIteratorBase const &rhs) const; - bool incrementable() const; - -private: - size_t pos; - C * theVector; -}; - -template -class Vector -{ -public: - typedef E value_type; - typedef E* pointer; - typedef E& reference; - typedef VectorIteratorBase > iterator; - typedef VectorIteratorBase const> const_iterator; - typedef ptrdiff_t difference_type; - friend class VectorIteratorBase >; - friend class VectorIteratorBase const>; - void *operator new (size_t); - void operator delete (void *); - - Vector(); - ~Vector(); - Vector(Vector const &); - Vector &operator = (Vector const &); - void clear(); - void reserve (size_t capacity); - void push_back (E); - - void insert (E); - const E &front() const; - E &front(); - E &back(); - void pop_back(); - E shift(); // aka pop_front - void prune(E); - void preAppend(int app_count); - inline bool empty() const; - inline size_t size() const; - iterator begin(); - const_iterator begin () const; - iterator end(); - const_iterator end () const; - E& at(unsigned i); - const E& at(unsigned i) const; - inline E& operator [] (unsigned i); - inline const E& operator [] (unsigned i) const; - E* data() const { return items; } - -protected: - size_t capacity; - size_t count; - E *items; -}; - -template -void * -Vector::operator new(size_t size) -{ - return xmalloc(size); -} - -template -void -Vector::operator delete (void *address) -{ - xfree (address); -} - -template -Vector::Vector() : capacity (0), count(0), items (NULL) -{} - -template -Vector::~Vector() -{ - clear(); -} - -template -void -Vector::clear() -{ - /* could also warn if some objects are left */ - delete[] items; - items = NULL; - capacity = 0; - count = 0; -} - -/* grows internal buffer to satisfy required minimal capacity */ -template -void -Vector::reserve(size_t min_capacity) -{ - const int min_delta = 16; - int delta; - - if (capacity >= min_capacity) - return; - - delta = min_capacity; - - /* make delta a multiple of min_delta */ - delta += min_delta - 1; - - delta /= min_delta; - - delta *= min_delta; - - /* actual grow */ - if (delta < 0) - delta = min_capacity - capacity; - - E*newitems = new E[capacity + delta]; - - for (size_t counter = 0; counter < size(); ++counter) { - newitems[counter] = items[counter]; - } - - capacity += delta; - delete[]items; - items = newitems; -} - -template -void -Vector::push_back(E obj) -{ - if (size() >= capacity) - reserve (size() + 1); - - items[count++] = obj; -} - -template -void -Vector::insert(E obj) -{ - if (size() >= capacity) - reserve (size() + 1); - - int i; - - for (i = count; i > 0; i--) - items[i] = items[i - 1]; - - items[i] = obj; - - count += 1; -} - -template -E -Vector::shift() -{ - assert (size()); - value_type result = items[0]; - - for (unsigned int i = 1; i < count; i++) - items[i-1] = items[i]; - - count--; - - /*reset the last (unused) element...*/ - items[count] = value_type(); - - return result; -} - -template -void -Vector::pop_back() -{ - assert (size()); - --count; - items[count] = value_type(); -} - -template -E & -Vector::back() -{ - assert (size()); - return items[size() - 1]; -} - -template -const E & -Vector::front() const -{ - assert (size()); - return items[0]; -} - -template -E & -Vector::front() -{ - assert (size()); - return items[0]; -} - -template -void -Vector::prune(E item) -{ - unsigned int n = 0; - for (unsigned int i = 0; i < count; i++) { - if (items[i] != item) { - if (i != n) - items[n] = items[i]; - n++; - } - } - - count = n; -} - -/* if you are going to append a known and large number of items, call this first */ -template -void -Vector::preAppend(int app_count) -{ - if (size() + app_count > capacity) - reserve(size() + app_count); -} - -template -Vector::Vector (Vector const &rhs) -{ - items = NULL; - capacity = 0; - count = 0; - reserve (rhs.size()); - - for (size_t counter = 0; counter < rhs.size(); ++counter) - push_back (rhs.items[counter]); -} - -template -Vector & -Vector::operator = (Vector const &old) -{ - clear(); - reserve (old.size()); - - for (size_t counter = 0; counter < old.size(); ++counter) - push_back (old.items[counter]); - - return *this; -} - -template -bool -Vector::empty() const -{ - return size() == 0; -} - -template -size_t -Vector::size() const -{ - return count; -} - -template -typename Vector::iterator -Vector::begin() -{ - return iterator (0, *this); -} - -template -typename Vector::iterator -Vector::end() -{ - return iterator(size(), *this); -} - -template -typename Vector::const_iterator -Vector::begin() const -{ - return const_iterator (0, *this); -} - -template -typename Vector::const_iterator -Vector::end() const -{ - return const_iterator(size(), *this); -} - -template -E & -Vector::at(unsigned i) -{ - assert (size() > i); - return operator[](i); -} - -template -const E & -Vector::at(unsigned i) const -{ - assert (size() > i); - return operator[](i); -} - -template -E & -Vector::operator [] (unsigned i) -{ - return items[i]; -} - -template -const E & -Vector::operator [] (unsigned i) const -{ - return items[i]; -} - -template -VectorIteratorBase::VectorIteratorBase() : pos(0), theVector(NULL) -{} - -template -VectorIteratorBase::VectorIteratorBase(C &container) : pos(container.begin()), theVector(&container) -{} - -template -VectorIteratorBase::VectorIteratorBase(size_t aPos, C &container) : pos(aPos), theVector(&container) {} - -template -bool VectorIteratorBase:: operator != (VectorIteratorBase const &rhs) const -{ - assert (theVector); - return pos != rhs.pos; -} - -template -bool VectorIteratorBase:: operator == (VectorIteratorBase const &rhs) const -{ - assert (theVector); - return pos == rhs.pos; -} - -template -bool -VectorIteratorBase::incrementable() const -{ - assert (theVector); - return pos != theVector->size(); -} - -template -VectorIteratorBase & VectorIteratorBase:: operator ++() -{ - assert (theVector); - - if (!incrementable()) - fatal ("domain error"); - - ++pos; - - return *this; -} - -template -VectorIteratorBase VectorIteratorBase:: operator ++(int) -{ - VectorIteratorBase result(*this); - ++*this; - return result; -} - -template -VectorIteratorBase& -VectorIteratorBase::operator =(VectorIteratorBase const &old) -{ - pos = old.pos; - theVector = old.theVector; - return *this; -} - -template -ssize_t -VectorIteratorBase::operator - (VectorIteratorBase const &rhs) const -{ - assert(theVector == rhs.theVector); - return pos - rhs.pos; -} - -#endif /* SQUID_ARRAY_H */ diff --git a/src/tests/testVector.cc b/src/tests/testVector.cc deleted file mode 100644 index 725700777d..0000000000 --- a/src/tests/testVector.cc +++ /dev/null @@ -1,19 +0,0 @@ -#define SQUID_UNIT_TEST 1 -#include "squid.h" -#include "base/Vector.h" -#include "tests/testVector.h" - -#include - -CPPUNIT_TEST_SUITE_REGISTRATION( testVector ); - -void testVector::all() -{ - CPPUNIT_ASSERT_EQUAL(1 , 1); - Vector aArray; - CPPUNIT_ASSERT_EQUAL(static_cast(0), aArray.size()); - aArray.push_back(2); - CPPUNIT_ASSERT_EQUAL(static_cast(1), aArray.size()); - CPPUNIT_ASSERT_EQUAL(2, aArray.back()); - CPPUNIT_ASSERT_EQUAL(static_cast(1), aArray.size()); -} diff --git a/src/tests/testVector.h b/src/tests/testVector.h deleted file mode 100644 index f1606db217..0000000000 --- a/src/tests/testVector.h +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef SQUID_SRC_TESTS_TESTVECTOR_H -#define SQUID_SRC_TESTS_TESTVECTOR_H - -#include - -/* - * A test case that is designed to produce - * example errors and failures - * - */ - -class testVector : public CPPUNIT_NS::TestFixture -{ - CPPUNIT_TEST_SUITE( testVector ); - CPPUNIT_TEST( all ); - CPPUNIT_TEST_SUITE_END(); - -public: - -protected: - void all(); -}; - -#endif diff --git a/test-suite/Makefile.am b/test-suite/Makefile.am index 010a8bb4fb..6aeb5187d4 100644 --- a/test-suite/Makefile.am +++ b/test-suite/Makefile.am @@ -31,7 +31,6 @@ endif TESTS += debug \ syntheticoperators \ VirtualDeleteOperator \ - StackTest \ splay\ MemPoolTest\ mem_node_test\ @@ -46,7 +45,6 @@ check_PROGRAMS += debug \ mem_node_test\ mem_hdr_test \ splay \ - StackTest \ syntheticoperators \ VirtualDeleteOperator @@ -89,8 +87,6 @@ MemPoolTest_SOURCES = MemPoolTest.cc splay_SOURCES = splay.cc -StackTest_SOURCES = StackTest.cc $(DEBUG_SOURCE) - syntheticoperators_SOURCES = syntheticoperators.cc $(DEBUG_SOURCE) VirtualDeleteOperator_SOURCES = VirtualDeleteOperator.cc $(DEBUG_SOURCE) diff --git a/test-suite/StackTest.cc b/test-suite/StackTest.cc deleted file mode 100644 index 377d899a82..0000000000 --- a/test-suite/StackTest.cc +++ /dev/null @@ -1,56 +0,0 @@ - -/* - * DEBUG: section 19 Store Memory Primitives - * AUTHOR: Robert Collins - * - * SQUID Web Proxy Cache http://www.squid-cache.org/ - * ---------------------------------------------------------- - * - * Squid is the result of efforts by numerous individuals from - * the Internet community; see the CONTRIBUTORS file for full - * details. Many organizations have provided support for Squid's - * development; see the SPONSORS file for full details. Squid is - * Copyrighted (C) 2001 by the Regents of the University of - * California; see the COPYRIGHT file for full details. Squid - * incorporates software developed and/or copyrighted by other - * sources; see the CREDITS file for full details. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program 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 for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA. - * - * Copyright (c) 2003 Robert Collins - */ - -#include "squid.h" -#include "Stack.h" - -int -main(int argc, char **argv) -{ - Stack aStack; - assert (aStack.size() == 0); - aStack.push_back(2); - assert (aStack.size() == 1); - assert (aStack.top() == 2); - assert (aStack.pop() == 2); - assert (aStack.size() == 0); - Stack<> oldStack; - assert (oldStack.size() == 0); - oldStack.push_back(&aStack); - assert (oldStack.size() == 1); - assert (oldStack.top() == &aStack); - assert (oldStack.pop() == &aStack); - assert (oldStack.size() == 0); - return 0; -}