diff --git a/test/cpp/Makefile.am b/test/cpp/Makefile.am
new file mode 100755
index 0000000..a828e57
--- /dev/null
+++ b/test/cpp/Makefile.am
@@ -0,0 +1,112 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+noinst_LTLIBRARIES = libtestgencpp.la libstresstestgencpp.la
+nodist_libtestgencpp_la_SOURCES = \
+	gen-cpp/ThriftTest_constants.cpp \
+	gen-cpp/ThriftTest_types.cpp \
+	gen-cpp/ThriftTest_constants.h \
+	gen-cpp/ThriftTest_types.h \
+	gen-cpp/ThriftTest_types.tcc \
+	gen-cpp/ThriftTest.tcc
+
+libtestgencpp_la_LIBADD = $(top_builddir)/lib/cpp/libthrift.la
+
+nodist_libstresstestgencpp_la_SOURCES = \
+	gen-cpp/StressTest_constants.cpp \
+	gen-cpp/StressTest_types.cpp \
+	gen-cpp/StressTest_constants.h \
+	gen-cpp/StressTest_types.h \
+	gen-cpp/Service.cpp \
+	gen-cpp/Service.h
+
+libstresstestgencpp_la_LIBADD = $(top_builddir)/lib/cpp/libthrift.la
+
+check_PROGRAMS = \
+	TestServer \
+	TestClient \
+	StressTest \
+	StressTestNonBlocking
+
+# we currently do not run the testsuite, stop c++ server issue
+# TESTS = \
+#	$(check_PROGRAMS)
+
+TestServer_SOURCES = \
+	src/TestServer.cpp
+
+TestServer_LDADD = \
+	libtestgencpp.la \
+	$(top_builddir)/lib/cpp/libthrift.la \
+	$(top_builddir)/lib/cpp/libthriftz.la \
+	$(top_builddir)/lib/cpp/libthriftnb.la \
+	-levent -lboost_program_options
+
+TestClient_SOURCES = \
+	src/TestClient.cpp
+
+TestClient_LDADD = \
+	libtestgencpp.la \
+	$(top_builddir)/lib/cpp/libthrift.la \
+	$(top_builddir)/lib/cpp/libthriftz.la \
+	$(top_builddir)/lib/cpp/libthriftnb.la \
+	-levent -lboost_program_options
+
+StressTest_SOURCES = \
+	src/StressTest.cpp
+
+StressTest_LDADD = \
+	libstresstestgencpp.la \
+	$(top_builddir)/lib/cpp/libthrift.la
+
+StressTestNonBlocking_SOURCES = \
+	src/StressTestNonBlocking.cpp
+
+StressTestNonBlocking_LDADD = \
+	libstresstestgencpp.la \
+	$(top_builddir)/lib/cpp/libthriftnb.la \
+	-levent
+#
+# Common thrift code generation rules
+#
+THRIFT = $(top_builddir)/compiler/cpp/thrift
+
+gen-cpp/ThriftTest.cpp gen-cpp/ThriftTest_types.cpp gen-cpp/ThriftTest_constants.cpp: $(top_srcdir)/test/ThriftTest.thrift
+	$(THRIFT) --gen cpp:templates $<
+
+gen-cpp/ThriftTest.cpp gen-cpp/StressTest_types.cpp gen-cpp/StressTest_constants.cpp: $(top_srcdir)/test/StressTest.thrift
+	$(THRIFT) --gen cpp $<
+
+INCLUDES = \
+	-I$(top_srcdir)/lib/cpp/src -Igen-cpp
+
+AM_CPPFLAGS = $(BOOST_CPPFLAGS)
+AM_CXXFLAGS = -Wall
+
+clean-local:
+	$(RM) -r gen-cpp
+
+EXTRA_DIST = \
+	src/TestClient.cpp \
+	src/TestServer.cpp \
+	src/StressTest.cpp \
+	src/StressTestNonBlocking.cpp \
+	realloc/realloc_test.c \
+	realloc/Makefile
+	
+	
diff --git a/test/cpp/Stress-test.mk b/test/cpp/Stress-test.mk
deleted file mode 100644
index 049bcb8..0000000
--- a/test/cpp/Stress-test.mk
+++ /dev/null
@@ -1,71 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-
-ifndef thrift_home
-thrift_home=../..
-endif #thrift_home
-
-target: all
-
-ifndef boost_home
-#boost_home=../../../../../thirdparty/boost_1_33_1
-boost_home=/usr/local/include/boost-1_33_1
-endif #boost_home
-target: all
-
-include_paths = $(thrift_home)/lib/cpp/src \
-                $(thrift_home)/lib/cpp \
-                $(thrift_home)/ \
-                $(boost_home)
-
-include_flags = $(patsubst %,-I%, $(include_paths))
-
-# Tools
-ifndef THRIFT
-THRIFT = ../../compiler/cpp/thrift
-endif # THRIFT
-
-CC     = g++
-LD     = g++
-
-# Compiler flags
-DCFL  = -Wall -O3 -g -I./gen-cpp $(include_flags) -L$(thrift_home)/lib/cpp/.libs -lthrift -lthriftnb -levent
-CFL   = -Wall -O3 -I./gen-cpp $(include_flags) -L$(thrift_home)/lib/cpp/.libs -lthrift -lthriftnb -levent
-
-all: stress-test stress-test-nb
-
-debug: stress-test-debug stress-test-debug-nb
-
-stubs: ../StressTest.thrift
-	$(THRIFT) --gen cpp --gen php ../StressTest.thrift
-
-stress-test-debug-nb: stubs
-	$(CC) -o stress-test-nb $(DCFL) src/nb-main.cpp ./gen-cpp/Service.cpp gen-cpp/StressTest_types.cpp
-
-stress-test-nb: stubs
-	$(CC) -o stress-test-nb $(CFL) src/nb-main.cpp ./gen-cpp/Service.cpp gen-cpp/StressTest_types.cpp
-
-stress-test-debug: stubs
-	$(CC) -o stress-test $(DCFL) src/main.cpp ./gen-cpp/Service.cpp gen-cpp/StressTest_types.cpp
-
-stress-test: stubs
-	$(CC) -o stress-test $(CFL) src/main.cpp ./gen-cpp/Service.cpp gen-cpp/StressTest_types.cpp
-
-clean:
-	rm -fr stress-test stress-test-nb gen-cpp
diff --git a/test/cpp/Thrift-test.mk b/test/cpp/Thrift-test.mk
deleted file mode 100644
index e0a624c..0000000
--- a/test/cpp/Thrift-test.mk
+++ /dev/null
@@ -1,78 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-
-# Makefile for Thrift test project.
-# Default target is everything
-
-ifndef thrift_home
-thrift_home=../..
-endif #thrift_home
-
-target: all
-
-ifndef boost_home
-#boost_home=../../../../../thirdparty/boost_1_33_1
-boost_home=/usr/local/include/boost-1_33_1
-endif #boost_home
-target: all
-
-include_paths = $(thrift_home)/lib/cpp/src \
-		$(boost_home)
-
-include_flags = $(patsubst %,-I%, $(include_paths))
-
-# Tools
-ifndef THRIFT
-THRIFT = ../../compiler/cpp/thrift
-endif # THRIFT
-
-CC     = g++
-LD     = g++
-
-# Compiler flags
-DCFL  = -Wall -O3 -g -I. -I./gen-cpp $(include_flags) -L$(thrift_home)/lib/cpp/.libs -lthrift -lthriftnb -levent -lboost_program_options
-LFL   =  -L$(thrift_home)/lib/cpp/.libs -lthrift -lthriftnb -levent -lboost_program_options
-CCFL  = -Wall -O3 -I. -I./gen-cpp $(include_flags)
-CFL   = $(CCFL) $(LFL)
-
-all: server client
-
-debug: server-debug client-debug
-
-stubs: ../ThriftTest.thrift
-	$(THRIFT) --gen cpp:templates ../ThriftTest.thrift
-
-server-debug: stubs
-	$(CC) -o TestServer $(DCFL) src/TestServer.cpp ./gen-cpp/ThriftTest.cpp ./gen-cpp/ThriftTest_types.cpp ./gen-cpp/ThriftTest_constants.cpp
-
-client-debug: stubs
-	$(CC) -o TestClient $(DCFL) src/TestClient.cpp ./gen-cpp/ThriftTest.cpp ./gen-cpp/ThriftTest_types.cpp ./gen-cpp/ThriftTest_constants.cpp
-
-server: stubs
-	$(CC) -o TestServer $(CFL) src/TestServer.cpp ./gen-cpp/ThriftTest.cpp ./gen-cpp/ThriftTest_types.cpp ./gen-cpp/ThriftTest_constants.cpp
-
-client: stubs
-	$(CC) -o TestClient $(CFL) src/TestClient.cpp ./gen-cpp/ThriftTest.cpp ./gen-cpp/ThriftTest_types.cpp ./gen-cpp/ThriftTest_constants.cpp
-
-small:
-	$(THRIFT) --gen cpp:templates ../SmallTest.thrift
-	$(CC) -c $(CCFL) ./gen-cpp/SmallService.cpp ./gen-cpp/SmallTest_types.cpp
-
-clean:
-	rm -fr *.o TestServer TestClient gen-cpp
diff --git a/test/cpp/src/main.cpp b/test/cpp/src/StressTest.cpp
similarity index 100%
rename from test/cpp/src/main.cpp
rename to test/cpp/src/StressTest.cpp
diff --git a/test/cpp/src/nb-main.cpp b/test/cpp/src/StressTestNonBlocking.cpp
similarity index 100%
rename from test/cpp/src/nb-main.cpp
rename to test/cpp/src/StressTestNonBlocking.cpp
diff --git a/test/cpp/src/TestClient.cpp b/test/cpp/src/TestClient.cpp
index 23d7dcd..ceea838 100644
--- a/test/cpp/src/TestClient.cpp
+++ b/test/cpp/src/TestClient.cpp
@@ -17,6 +17,9 @@
  * under the License.
  */
 
+#define __STDC_FORMAT_MACROS
+#include <inttypes.h>
+
 #include <iostream>
 #include <unistd.h>
 #include <sys/time.h>
@@ -32,9 +35,6 @@
 
 #include "ThriftTest.h"
 
-#define __STDC_FORMAT_MACROS
-#include <inttypes.h>
-
 using namespace boost;
 using namespace std;
 using namespace apache::thrift;
diff --git a/test/cpp/src/TestServer.cpp b/test/cpp/src/TestServer.cpp
index bb3cd43..9ba0509 100644
--- a/test/cpp/src/TestServer.cpp
+++ b/test/cpp/src/TestServer.cpp
@@ -17,6 +17,9 @@
  * under the License.
  */
 
+#define __STDC_FORMAT_MACROS
+#include <inttypes.h>
+
 #include <concurrency/ThreadManager.h>
 #include <concurrency/PosixThreadFactory.h>
 #include <protocol/TBinaryProtocol.h>
@@ -39,8 +42,6 @@
 
 #include <boost/program_options.hpp>
 
-#define __STDC_FORMAT_MACROS
-#include <inttypes.h>
 #include <signal.h>
 
 using namespace std;
@@ -114,6 +115,22 @@
     out = thing;
   }
 
+  void testStringMap(map<std::string, std::string> &out, const map<std::string, std::string> &thing) {
+    printf("testMap({");
+    map<std::string, std::string>::const_iterator m_iter;
+    bool first = true;
+    for (m_iter = thing.begin(); m_iter != thing.end(); ++m_iter) {
+      if (first) {
+        first = false;
+      } else {
+        printf(", ");
+      }
+      printf("%s => %s", (m_iter->first).c_str(), (m_iter->second).c_str());
+    }
+    printf("})\n");
+    out = thing;
+  }
+
   void testSet(set<int32_t> &out, const set<int32_t> &thing) {
     printf("testSet({");
     set<int32_t>::const_iterator s_iter;
