From: robertc <> Date: Sun, 22 Jun 2003 14:04:28 +0000 (+0000) Subject: Summary: Add a mempools testcase. X-Git-Tag: SQUID_3_0_PRE1~100 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=697079bbfb1fa16825adce6a0ef87ccf14c5c75b;p=thirdparty%2Fsquid.git Summary: Add a mempools testcase. Keywords: Add a mempools testcase. --- diff --git a/test-suite/Makefile.am b/test-suite/Makefile.am index b7e1403d59..47d153db09 100644 --- a/test-suite/Makefile.am +++ b/test-suite/Makefile.am @@ -1,7 +1,7 @@ # # Makefile for the Squid Object Cache server # -# $Id: Makefile.am,v 1.6 2003/06/09 04:02:16 robertc Exp $ +# $Id: Makefile.am,v 1.7 2003/06/22 08:04:28 robertc Exp $ # AUTOMAKE_OPTIONS = subdir-objects @@ -14,14 +14,25 @@ INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include -I$(top_srcdir)/incl EXTRA_PROGRAMS = mem_node_test membanger splay tcp-banger2 rfc1738 ## Sort by dependencies - test lowest layers first -TESTS = rfc1738 refcount splay mem_node_test http_range_test +TESTS = rfc1738 \ + refcount\ + splay\ + mem_node_test\ + MemPoolTest\ + http_range_test ## Sort by dependencies - test lowest layers first -check_PROGRAMS= rfc1738 refcount splay mem_node_test http_range_test +check_PROGRAMS= rfc1738\ + refcount\ + splay\ + MemPoolTest\ + mem_node_test\ + http_range_test LDADD = -L$(top_builddir)/lib -lmiscutil mem_node_test_SOURCES = mem_node_test.cc mem_node_test_LDADD = $(top_builddir)/src/mem_node.o $(LDADD) +MemPoolTest_SOURCES = MemPoolTest.cc refcount_SOURCES = refcount.cc DEBUG_OBJECTS = $(top_builddir)/src/debug.o\ diff --git a/test-suite/MemPoolTest.cc b/test-suite/MemPoolTest.cc new file mode 100644 index 0000000000..dad063d831 --- /dev/null +++ b/test-suite/MemPoolTest.cc @@ -0,0 +1,85 @@ +/* + * $Id: MemPoolTest.cc,v 1.1 2003/06/22 08:04:28 robertc Exp $ + * + * 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 "MemPool.h" +#include + +/* TODO: put this in a libTest */ +void +xassert(const char *msg, const char *file, int line) +{ + std::cout << "Assertion failed: (" << msg << ") at " << file << ":" << line << std::endl; + exit (1); +} +time_t squid_curtime = 0; + +class MemPoolTest { +public: + void run(); +private: + class SomethingToAlloc { + public: + int aValue; + }; + static MemPool *Pool; +}; +MemPool *MemPoolTest::Pool = NULL; + +void +MemPoolTest::run() +{ + assert (Pool == NULL); + Pool = memPoolCreate ("Test Pool", sizeof(SomethingToAlloc)); + assert (Pool); + SomethingToAlloc *something = static_cast(memPoolAlloc(Pool)); + assert (something); + assert (something->aValue == 0); + something->aValue = 5; + memPoolFree (Pool, something); + SomethingToAlloc *otherthing = static_cast(memPoolAlloc (Pool)); + assert (otherthing == something); + assert (otherthing->aValue == 0); + memPoolFree (Pool, otherthing); + memPoolDestroy (&Pool); +} + +int +main (int argc, char *argv) +{ + MemPoolTest aTest; + aTest.run(); + return 0; +} +