#
# 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
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\
--- /dev/null
+/*
+ * $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 <robertc@squid-cache.org>
+ */
+
+#include "squid.h"
+#include "MemPool.h"
+#include <iostream>
+
+/* 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<SomethingToAlloc *>(memPoolAlloc(Pool));
+ assert (something);
+ assert (something->aValue == 0);
+ something->aValue = 5;
+ memPoolFree (Pool, something);
+ SomethingToAlloc *otherthing = static_cast<SomethingToAlloc *>(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;
+}
+