From 4f42ef7aa593b20fa17ad542f53c296032955fb7 Mon Sep 17 00:00:00 2001 From: Christian Lavoie Date: Thu, 4 Nov 2010 18:51:42 +0000 Subject: [PATCH] THRIFT-953: Fix compilation of TransportTest.cpp on Mac (actual tests still fail) and fix boost m4 macros for Mac. git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1031148 13f79535-47bb-0310-9956-ffa450edef68 --- aclocal/ax_boost_base.m4 | 8 ++++++++ lib/cpp/test/Makefile.am | 21 +++++++++++++++++---- lib/cpp/test/TransportTest.cpp | 9 +++++---- lib/cpp/test/UnitTestMain.cpp | 2 -- 4 files changed, 30 insertions(+), 10 deletions(-) diff --git a/aclocal/ax_boost_base.m4 b/aclocal/ax_boost_base.m4 index c96d1b66..5894d0ca 100644 --- a/aclocal/ax_boost_base.m4 +++ b/aclocal/ax_boost_base.m4 @@ -70,11 +70,13 @@ if test "x$want_boost" = "xyes"; then if test "$ac_boost_path" != ""; then BOOST_LDFLAGS="-L$ac_boost_path/lib" BOOST_CPPFLAGS="-I$ac_boost_path/include" + BOOST_ROOT_PATH="$ac_boost_path" else for ac_boost_path_tmp in /usr /usr/local /opt /opt/local ; do if test -d "$ac_boost_path_tmp/include/boost" && test -r "$ac_boost_path_tmp/include/boost"; then BOOST_LDFLAGS="-L$ac_boost_path_tmp/lib" BOOST_CPPFLAGS="-I$ac_boost_path_tmp/include" + BOOST_ROOT_PATH="$ac_boost_path_tmp" break; fi done @@ -88,6 +90,8 @@ if test "x$want_boost" = "xyes"; then LDFLAGS="$LDFLAGS $BOOST_LDFLAGS" export LDFLAGS + export BOOST_ROOT_PATH + AC_LANG_PUSH(C++) AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ @%:@include @@ -141,6 +145,7 @@ if test "x$want_boost" = "xyes"; then VERSION_UNDERSCORE=`echo $_version | sed 's/\./_/'` BOOST_CPPFLAGS="-I$best_path/include/boost-$VERSION_UNDERSCORE" BOOST_LDFLAGS="-L$best_path/lib" + BOOST_ROOT_PATH="$best_path" if test "x$BOOST_ROOT" != "x"; then if test -d "$BOOST_ROOT" && test -r "$BOOST_ROOT" && test -d "$BOOST_ROOT/stage/lib" && test -r "$BOOST_ROOT/stage/lib"; then @@ -152,6 +157,7 @@ if test "x$want_boost" = "xyes"; then AC_MSG_NOTICE(We will use a staged boost library from $BOOST_ROOT) BOOST_CPPFLAGS="-I$BOOST_ROOT" BOOST_LDFLAGS="-L$BOOST_ROOT/stage/lib" + BOOST_ROOT_PATH="$BOOST_ROOT" fi fi fi @@ -161,6 +167,7 @@ if test "x$want_boost" = "xyes"; then export CPPFLAGS LDFLAGS="$LDFLAGS $BOOST_LDFLAGS" export LDFLAGS + export BOOST_ROOT_PATH AC_LANG_PUSH(C++) AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ @@ -189,6 +196,7 @@ if test "x$want_boost" = "xyes"; then else AC_SUBST(BOOST_CPPFLAGS) AC_SUBST(BOOST_LDFLAGS) + AC_SUBST(BOOST_ROOT_PATH) AC_DEFINE(HAVE_BOOST,,[define if the Boost library is available]) fi diff --git a/lib/cpp/test/Makefile.am b/lib/cpp/test/Makefile.am index 1fadff3e..02c26ada 100644 --- a/lib/cpp/test/Makefile.am +++ b/lib/cpp/test/Makefile.am @@ -62,22 +62,35 @@ UnitTests_SOURCES = \ TMemoryBufferTest.cpp \ TBufferBaseTest.cpp -UnitTests_LDADD = $(BOOST_LDFLAGS) libtestgencpp.la -lboost_unit_test_framework +UnitTests_LDADD = \ + $(BOOST_LDFLAGS) \ + libtestgencpp.la \ + $(BOOST_ROOT_PATH)/lib/libboost_unit_test_framework.a TransportTest_SOURCES = \ TransportTest.cpp -TransportTest_LDADD = libtestgencpp.la $(top_builddir)/lib/cpp/libthriftz.la -l:libboost_unit_test_framework.a -lz +TransportTest_LDADD = \ + libtestgencpp.la \ + $(top_builddir)/lib/cpp/libthriftz.la \ + $(BOOST_ROOT_PATH)/lib/libboost_unit_test_framework.a \ + -lz ZlibTest_SOURCES = \ ZlibTest.cpp -ZlibTest_LDADD = libtestgencpp.la $(top_builddir)/lib/cpp/libthriftz.la -l:libboost_unit_test_framework.a -lz +ZlibTest_LDADD = \ + libtestgencpp.la \ + $(top_builddir)/lib/cpp/libthriftz.la \ + $(BOOST_ROOT_PATH)/lib/libboost_unit_test_framework.a \ + -lz TFileTransportTest_SOURCES = \ TFileTransportTest.cpp -TFileTransportTest_LDADD = libtestgencpp.la -l:libboost_unit_test_framework.a +TFileTransportTest_LDADD = \ + libtestgencpp.la \ + $(BOOST_ROOT_PATH)/lib/libboost_unit_test_framework.a # # TFDTransportTest diff --git a/lib/cpp/test/TransportTest.cpp b/lib/cpp/test/TransportTest.cpp index 59f2427a..0762ecae 100644 --- a/lib/cpp/test/TransportTest.cpp +++ b/lib/cpp/test/TransportTest.cpp @@ -379,7 +379,7 @@ void set_alarm() { struct sigaction action; memset(&action, 0, sizeof(action)); action.sa_handler = alarm_handler; - action.sa_flags = SA_ONESHOT; + action.sa_flags = SA_RESETHAND; sigemptyset(&action.sa_mask); sigaction(SIGALRM, &action, NULL); @@ -1025,9 +1025,10 @@ void parse_args(int argc, char* argv[], Options* options) { if (!have_seed) { // choose a seed now if the user didn't specify one - struct timespec t; - clock_gettime(CLOCK_REALTIME, &t); - options->seed = t.tv_sec + t.tv_nsec; + struct timeval tv; + struct timezone tz; + gettimeofday(&tv, &tz); + options->seed = tv.tv_sec ^ tv.tv_usec; } } diff --git a/lib/cpp/test/UnitTestMain.cpp b/lib/cpp/test/UnitTestMain.cpp index d4e1ece7..f0ef1e4a 100644 --- a/lib/cpp/test/UnitTestMain.cpp +++ b/lib/cpp/test/UnitTestMain.cpp @@ -18,6 +18,4 @@ */ #define BOOST_TEST_MODULE thrift -#define BOOST_TEST_DYN_LINK -#define BOOST_AUTO_TEST_MAIN #include -- 2.17.1