--- /dev/null
+#include <string.h>
+#include "reallocpool_test.h"
+#include "pbd/reallocpool.h"
+
+CPPUNIT_TEST_SUITE_REGISTRATION (ReallocPoolTest);
+
+using namespace std;
+
+ReallocPoolTest::ReallocPoolTest ()
+{
+}
+
+void
+ReallocPoolTest::testBasic ()
+{
+ srand (0);
+ PBD::ReallocPool *m = new PBD::ReallocPool("TestPool", 256 * 1024);
+
+ for (int l = 0; l < 2 * 1024 * 1024; ++l) {
+ void *x[32];
+ size_t s[32];
+ int cnt = rand() % 32;
+ for (int i = 0; i < cnt; ++i) {
+ s[i] = rand() % 1024;
+ x[i] = m->malloc (s[i]);
+ }
+ for (int i = 0; i < cnt; ++i) {
+ if (x[i]) {
+ memset (x[i], 0xa5, s[i]);
+ }
+ }
+ for (int i = 0; i < cnt; ++i) {
+ m->free (x[i]);
+ }
+ }
+#ifdef RAP_WITH_CALL_STATS
+ CPPUNIT_ASSERT (m->mem_used() == 0);
+#endif
+ delete (m);
+}
--- /dev/null
+#include <cppunit/TestFixture.h>
+#include <cppunit/extensions/HelperMacros.h>
+#include "glibmm/threads.h"
+
+class ReallocPoolTest : public CppUnit::TestFixture
+{
+ CPPUNIT_TEST_SUITE (ReallocPoolTest);
+ CPPUNIT_TEST (testBasic);
+ CPPUNIT_TEST_SUITE_END ();
+
+public:
+ ReallocPoolTest ();
+ void testBasic ();
+
+private:
+};