gnucash master: Multiple changes pushed

John Ralls jralls at code.gnucash.org
Fri Jul 1 18:08:39 EDT 2016


Updated	 via  https://github.com/Gnucash/gnucash/commit/cf735d73 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/5547337e (commit)
	from  https://github.com/Gnucash/gnucash/commit/4be44045 (commit)



commit cf735d730446a0594bb46229a01581e4ef423a22
Author: John Ralls <jralls at ceridwen.us>
Date:   Fri Jul 1 15:02:33 2016 -0700

    GCC-4.9 doesn't have the C++14 initializer list fix.

diff --git a/src/libqof/qof/test/test-gnc-guid.cpp b/src/libqof/qof/test/test-gnc-guid.cpp
index b4bcf35..a8e0505 100644
--- a/src/libqof/qof/test/test-gnc-guid.cpp
+++ b/src/libqof/qof/test/test-gnc-guid.cpp
@@ -59,14 +59,14 @@ TEST (GncGUID, move)
 TEST (GncGUID, to_string)
 {
     std::string fixture (32, '0');
-    auto str {GncGUID::null_guid ().to_string ()};
+    auto str = GncGUID::null_guid ().to_string ();
     EXPECT_EQ (str, fixture);
 }
 
 TEST (GncGUID, from_string)
 {
     std::string fixture (32, '0');
-    auto guid {GncGUID::from_string (fixture)};
+    auto guid = GncGUID::from_string (fixture);
     EXPECT_EQ (guid, GncGUID::null_guid ());
 
     guid = GncGUID::create_random ();

commit 5547337e05d152dcdabe85cf558ce150782184a7
Author: John Ralls <jralls at ceridwen.us>
Date:   Fri Jul 1 13:26:17 2016 -0700

    Enable Google Tests under CMake.

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3010147..0664d9f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -418,6 +418,8 @@ IF (GNC_BUILD_AS_INSTALL)
 ENDIF()
 # ############################################################
 
+GNC_GTEST_CONFIGURE()
+
 SET(CMAKE_CTEST_COMMAND ctest)
 IF (XCODE_VERSION)
   SET(CMAKE_CTEST_COMMAND ctest -C Debug)
diff --git a/src/cmake_modules/GncAddTest.cmake b/src/cmake_modules/GncAddTest.cmake
index 9692c5e..63adc3c 100644
--- a/src/cmake_modules/GncAddTest.cmake
+++ b/src/cmake_modules/GncAddTest.cmake
@@ -83,3 +83,36 @@ FUNCTION(GNC_ADD_SCHEME_TEST _TARGET _SOURCE_FILE)
   GET_GUILE_ENV()
   SET_TESTS_PROPERTIES(${_TARGET} PROPERTIES ENVIRONMENT "${GUILE_ENV};${ARGN}")
 ENDFUNCTION()
+
+FUNCTION(GNC_GTEST_CONFIGURE)
+  MESSAGE(STATUS "Maybe setting up GTEST with " ${GTEST_DISABLE})
+  IF (NOT GTEST_DISABLE)
+    FIND_PATH(GTEST_INCLUDE_DIR gtest/gtest.h
+      PATHS /usr/include ${GMOCK_ROOT}/gtest/include ${GTEST_ROOT}/include)
+    FIND_PATH(GTEST_SRC_DIR src/gtest-all.cc
+      PATHS /usr/src/gtest ${GMOCK_ROOT}/gtest ${GTEST_ROOT})
+    FIND_PATH(GMOCK_INCLUDE_DIR gmock/gmock.h
+      PATHS /usr/include ${GMOCK_ROOT}/include)
+    FIND_PATH(GMOCK_SRC_DIR src/gmock-all.cc
+      PATHS /usr/src/gmock ${GMOCK_ROOT})
+    FIND_LIBRARY(GTEST_SHARED_LIB gtest)
+    FIND_LIBRARY(GTEST_MAIN_LIB gtest_main)
+    IF ((GTEST_SHARED_LIB OR GTEST_SRC_DIR) AND GTEST_INCLUDE_DIR)
+      SET(THREADS_PREFER_PTHREAD_FLAG ON)
+      FIND_PACKAGE(Threads REQUIRED)
+      SET(GTEST_FOUND YES CACHE INTERNAL "Found GTest")
+      IF(GTEST_SHARED_LIB)
+        SET(GTEST_LIB "${GTEST_SHARED_LIB};${GTEST_MAIN_LIB}" PARENT_SCOPE)
+        UNSET(GTEST_SRC_DIR CACHE)
+      ELSE()
+        SET(GTEST_SRC "${GTEST_SRC_DIR}/src/gtest_main.cc" PARENT_SCOPE)
+        SET(GTEST_LIB "${CMAKE_BINARY_DIR}/src/test-core/libgtest.a" PARENT_SCOPE)
+      ENDIF()
+      if (GMOCK_INCLUDE_DIR AND GMOCK_SRC_DIR)
+        SET(GMOCK_FOUND YES PARENT_SCOPE)
+        SET(GMOCK_SRC "${GMOCK_SRC_DIR}/src/gmock_main.cc" PARENT_SCOPE)
+        SET(GMOCK_LIB "${CMAKE_BINARY_DIR}/src/test-core/libgmock.a" PARENT_SCOPE)
+      ENDIF()
+    ENDIF()
+  ENDIF()
+ENDFUNCTION()
diff --git a/src/libqof/qof/test/CMakeLists.txt b/src/libqof/qof/test/CMakeLists.txt
index a16a4bb..96d4ab5 100644
--- a/src/libqof/qof/test/CMakeLists.txt
+++ b/src/libqof/qof/test/CMakeLists.txt
@@ -14,11 +14,8 @@ SET(test_qof_SOURCES
   test-qof.c
   test-qofbook.c
   test-qofinstance.cpp
-#  test-kvp-frame.cpp  This now use Google Test
   test-qofobject.c
-  test-qofsession.cpp
   test-qof-string-cache.c
-  test-gnc-guid.cpp
   ${CMAKE_SOURCE_DIR}/src/test-core/unittest-support.c
 )
 
@@ -28,4 +25,56 @@ SET(test_qof_SOURCES
 IF (NOT WIN32)
   GNC_ADD_TEST(test-qof "${test_qof_SOURCES}" TEST_QOF_INCLUDE_DIRS TEST_QOF_LIBS)
   TARGET_COMPILE_DEFINITIONS(test-qof PRIVATE TESTPROG=test_qof)
+  IF(GTEST_FOUND)
+    SET(MODULEPATH ${CMAKE_SOURCE_DIR}/src/libqof/qof)
+    SET(gtest_qof_LIBS gnc-qof ${GLIB2_LDFLAGS} ${Boost_LIBRARIES} ${GTEST_LIB})
+    SET(gtest_qof_INCLUDES
+      ${MODULEPATH}
+      ${GLIB2_INCLUDE_DIRS}
+      ${GTEST_INCLUDE_DIR})
+
+    SET(test_gnc_guid_SOURCES
+      ${MODULEPATH}/guid.cpp
+      test-gnc-guid.cpp
+      ${GTEST_SRC})
+    GNC_ADD_TEST(test-gnc-guid "${test_gnc_guid_SOURCES}"
+      gtest_qof_INCLUDES gtest_qof_LIBS)
+
+    SET(test_kvp_value_SOURCES
+      ${MODULEPATH}/kvp-value.cpp
+      test-kvp-value.cpp
+      test-kvp-frame.cpp
+      ${GTEST_SRC})
+    GNC_ADD_TEST(test-kvp-value "${test_kvp_value_SOURCES}"
+      gtest_qof_INCLUDES gtest_qof_LIBS)
+
+    SET(test_qofsession_SOURCES
+      ${MODULEPATH}/qofsession.cpp
+      test-qofsession.cpp
+      ${GTEST_SRC})
+    GNC_ADD_TEST(test-qofsession "${test_qofsession_SOURCES}"
+      gtest_qof_INCLUDES gtest_qof_LIBS)
+
+    SET(test_gnc_int128_SOURCES
+      ${MODULEPATH}/gnc-int128.cpp
+      gtest-gnc-int128.cpp
+      ${GTEST_SRC})
+    GNC_ADD_TEST(test-gnc-int128 "${test_gnc_int128_SOURCES}"
+      gtest_qof_INCLUDES gtest_qof_LIBS)
+
+    SET(test_gnc_timezone_SOURCES
+      ${MODULEPATH}/gnc-timezone.cpp
+      gtest-gnc-timezone.cpp
+      ${GTEST_SRC})
+    GNC_ADD_TEST(test-gnc-timezone "${test_gnc_timezone_SOURCES}"
+      gtest_qof_INCLUDES gtest_qof_LIBS)
+
+    SET(test_gnc_datetime_SOURCES
+      ${MODULEPATH}/gnc-datetime.cpp
+      gtest-gnc-datetime.cpp
+      ${GTEST_SRC})
+    GNC_ADD_TEST(test-gnc-datetime "${test_gnc_datetime_SOURCES}"
+      gtest_qof_INCLUDES gtest_qof_LIBS)
+
+  ENDIF()
 ENDIF()
diff --git a/src/libqof/qof/test/test-qof.c b/src/libqof/qof/test/test-qof.c
index cd7ce43..2c11236 100644
--- a/src/libqof/qof/test/test-qof.c
+++ b/src/libqof/qof/test/test-qof.c
@@ -28,10 +28,8 @@
 extern void test_suite_qofbook();
 extern void test_suite_qofinstance();
 extern void test_suite_qofobject();
-extern void test_suite_qofsession();
 extern void test_suite_gnc_date();
 extern void test_suite_qof_string_cache();
-extern void test_suite_gnc_guid ( void );
 
 int
 main (int   argc,
@@ -43,11 +41,9 @@ main (int   argc,
 //    g_log_set_always_fatal (0);
     g_test_bug_base("https://bugzilla.gnome.org/show_bug.cgi?id="); /* init the bugzilla URL */
 
-    test_suite_gnc_guid();
     test_suite_qofbook();
     test_suite_qofinstance();
     test_suite_qofobject();
-    test_suite_qofsession();
     test_suite_gnc_date();
     test_suite_qof_string_cache();
 
diff --git a/src/test-core/CMakeLists.txt b/src/test-core/CMakeLists.txt
index d6aca03..275b836 100644
--- a/src/test-core/CMakeLists.txt
+++ b/src/test-core/CMakeLists.txt
@@ -51,6 +51,20 @@ GNC_ADD_SCHEME_TARGETS(scm-test-core
   "${GUILE_LIBRARY_DIRS}"
   "${GUILE_DEPENDS}"
   FALSE
-)
+  )
 
+IF(GTEST_FOUND)
+  IF(NOT GTEST_SHARED_LIB)
+    SET (lib_gtest_SOURCES ${GTEST_SRC_DIR}/src/gtest-all.cc)
+    ADD_LIBRARY(gtest STATIC  ${lib_gtest_SOURCES})
+    TARGET_INCLUDE_DIRECTORIES(gtest PUBLIC ${GTEST_INCLUDE_DIR} ${GTEST_SRC_DIR})
+  ENDIF()
+  IF(GMOCK_FOUND)
+    SET (lib_gmock_SOURCES ${GMOCK_SRC_DIR}/src/gmock-all.cc)
+    ADD_LIBRARY(gmock STATIC  ${lib_gmock_SOURCES})
+    TARGET_INCLUDE_DIRECTORIES(gmock PUBLIC
+      ${GTEST_INCLUDE_DIR} ${GTEST_SRC_DIR}
+      ${GMOCK_INCLUDE_DIR} ${GMOCK_SRC_DIR})
+  ENDIF()
+ENDIF()
 INSTALL(FILES unittest-support.h DESTINATION libexec/gnucash/src/libqof/qof/test)



Summary of changes:
 CMakeLists.txt                        |  2 ++
 src/cmake_modules/GncAddTest.cmake    | 33 +++++++++++++++++++++
 src/libqof/qof/test/CMakeLists.txt    | 55 +++++++++++++++++++++++++++++++++--
 src/libqof/qof/test/test-gnc-guid.cpp |  4 +--
 src/libqof/qof/test/test-qof.c        |  4 ---
 src/test-core/CMakeLists.txt          | 16 +++++++++-
 6 files changed, 104 insertions(+), 10 deletions(-)



More information about the gnucash-changes mailing list