From ac63aaf7d8545c6701f9aa15bb7482e6c956be84 Mon Sep 17 00:00:00 2001
From: Adam Moss <moss@lindenlab.com>
Date: Thu, 8 Oct 2009 15:48:05 +0000
Subject: [PATCH] DEV-41080 The unit testing framework itself doesn't
 (shouldn't) depend upon llmath, so relax that dependancy when we're actually
 testing llmath itself. This makes llmath unit-testable. Subsequently, upgrade
 some of the llmath Integration tests to something much closer to Unit tests
 (hooray).

---
 indra/cmake/LLAddBuildTest.cmake | 13 +++++++++++--
 indra/llmath/CMakeLists.txt      | 13 +++++--------
 2 files changed, 16 insertions(+), 10 deletions(-)

diff --git a/indra/cmake/LLAddBuildTest.cmake b/indra/cmake/LLAddBuildTest.cmake
index 7d6ef9ab1a7..008b277960b 100644
--- a/indra/cmake/LLAddBuildTest.cmake
+++ b/indra/cmake/LLAddBuildTest.cmake
@@ -11,7 +11,7 @@ MACRO(LL_ADD_PROJECT_UNIT_TESTS project sources)
   #
   # More info and examples at: https://wiki.secondlife.com/wiki/How_to_add_unit_tests_to_indra_code
   #
-  # WARNING: do NOT modify this code without working with poppy or daveh -
+  # WARNING: do NOT modify this code without working with poppy -
   # there is another branch that will conflict heavily with any changes here.
 
   IF(LL_TEST_VERBOSE)
@@ -23,11 +23,20 @@ MACRO(LL_ADD_PROJECT_UNIT_TESTS project sources)
   # Setup includes, paths, etc
   SET(alltest_SOURCE_FILES
     ${CMAKE_SOURCE_DIR}/test/test.cpp
+    ${CMAKE_SOURCE_DIR}/test/lltut.cpp
     )
   SET(alltest_DEP_TARGETS
+    # needed by the test harness itself
+    ${APRUTIL_LIBRARIES}
+    ${APR_LIBRARIES}
     llcommon
-    llmath
     )
+  IF(NOT "${project}" STREQUAL "llmath")
+    # add llmath as a dep unless the tested module *is* llmath!
+    LIST(APPEND alltest_DEP_TARGETS
+      llmath
+      )
+  ENDIF(NOT "${project}" STREQUAL "llmath")
   SET(alltest_INCLUDE_DIRS
     ${LLMATH_INCLUDE_DIRS}
     ${LLCOMMON_INCLUDE_DIRS}
diff --git a/indra/llmath/CMakeLists.txt b/indra/llmath/CMakeLists.txt
index 10b0ef1c86e..ea58765b895 100644
--- a/indra/llmath/CMakeLists.txt
+++ b/indra/llmath/CMakeLists.txt
@@ -85,24 +85,21 @@ add_library (llmath ${llmath_SOURCE_FILES})
 # Add tests
 include(LLAddBuildTest)
 SET(llmath_TEST_SOURCE_FILES
-  # nat 2009-08-28: found this commented out and considered implementing it
-  # using LL_ADD_INTEGRATION_TEST, but there's no llvolume_test.cpp source?
-  # llvolume.cpp
+  llrect.cpp
+  v2math.cpp
+  v3color.cpp
+  v4coloru.cpp
   )
 LL_ADD_PROJECT_UNIT_TESTS(llmath "${llmath_TEST_SOURCE_FILES}")
 
 set(test_libs llmath llcommon ${LLCOMMON_LIBRARIES} ${WINDOWS_LIBRARIES})
-# some of these are probably pretty decent *unit* tests rather than integration tests, but I have to work out a CMake whining puzzle.
+# TODO: Some of these need refactoring to be proper Unit tests rather than Integration tests.
 LL_ADD_INTEGRATION_TEST(llbbox llbbox.cpp "${test_libs}")
 LL_ADD_INTEGRATION_TEST(llbboxlocal llbboxlocal.cpp "${test_libs}")
 LL_ADD_INTEGRATION_TEST(mathmisc "" "${test_libs}")
-LL_ADD_INTEGRATION_TEST(llrect "llrect.cpp" "${test_libs}")
 LL_ADD_INTEGRATION_TEST(llquaternion llquaternion.cpp "${test_libs}")
-LL_ADD_INTEGRATION_TEST(v2math v2math.cpp "${test_libs}")
-LL_ADD_INTEGRATION_TEST(v3color v3color.cpp "${test_libs}")
 LL_ADD_INTEGRATION_TEST(v3dmath v3dmath.cpp "${test_libs}")
 LL_ADD_INTEGRATION_TEST(v3math v3math.cpp "${test_libs}")
 LL_ADD_INTEGRATION_TEST(v4color v4color.cpp "${test_libs}")
-LL_ADD_INTEGRATION_TEST(v4coloru v4coloru.cpp "${test_libs}")
 LL_ADD_INTEGRATION_TEST(v4math v4math.cpp "${test_libs}")
 LL_ADD_INTEGRATION_TEST(xform xform.cpp "${test_libs}")
-- 
GitLab