]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Summary: Add a mempools testcase.
authorrobertc <>
Sun, 22 Jun 2003 14:04:28 +0000 (14:04 +0000)
committerrobertc <>
Sun, 22 Jun 2003 14:04:28 +0000 (14:04 +0000)
Keywords:

Add a mempools testcase.

test-suite/Makefile.am
test-suite/MemPoolTest.cc [new file with mode: 0644]

index b7e1403d59d8b0af0464fa9f9bf06da9617e376a..47d153db099deadc27da5fd942394ed29a7ddbea 100644 (file)
@@ -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 (file)
index 0000000..dad063d
--- /dev/null
@@ -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 <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;
+}
+