[Bf-blender-cvs] [52cebc8] gtest-testing: Extend unit tests collection

Sergey Sharybin noreply at git.blender.org
Sat May 17 14:07:23 CEST 2014


Commit: 52cebc80b6580be58e6be6dba5c39f0366cbe98b
Author: Sergey Sharybin
Date:   Sat May 17 13:42:47 2014 +0200
https://developer.blender.org/rB52cebc80b6580be58e6be6dba5c39f0366cbe98b

Extend unit tests collection

- Cover Libmv with unit tests.
  We often hack into libmv from Blender side, so it's useful
  to have it covered here.

- Added some round-trip tests for color space conversions.

===================================================================

M	build_files/cmake/Modules/Testing.cmake
M	extern/libmv/CMakeLists.txt
M	extern/libmv/SConscript
M	extern/libmv/bundle.sh
M	extern/libmv/files.txt
A	extern/libmv/libmv/base/scoped_ptr_test.cc
A	extern/libmv/libmv/base/vector_test.cc
A	extern/libmv/libmv/image/array_nd_test.cc
A	extern/libmv/libmv/image/convolve_test.cc
A	extern/libmv/libmv/image/image_drawing.h
A	extern/libmv/libmv/image/image_test.cc
A	extern/libmv/libmv/image/sample_test.cc
A	extern/libmv/libmv/image/tuple_test.cc
A	extern/libmv/libmv/multiview/euclidean_resection_test.cc
A	extern/libmv/libmv/multiview/fundamental_test.cc
A	extern/libmv/libmv/multiview/homography_error.h
A	extern/libmv/libmv/multiview/homography_test.cc
A	extern/libmv/libmv/multiview/nviewtriangulation_test.cc
A	extern/libmv/libmv/multiview/panography_kernel.cc
A	extern/libmv/libmv/multiview/panography_kernel.h
A	extern/libmv/libmv/multiview/panography_test.cc
A	extern/libmv/libmv/multiview/projection_test.cc
A	extern/libmv/libmv/multiview/resection_test.cc
A	extern/libmv/libmv/multiview/test_data_sets.cc
A	extern/libmv/libmv/multiview/test_data_sets.h
A	extern/libmv/libmv/multiview/triangulation_test.cc
A	extern/libmv/libmv/multiview/two_view_kernel.h
A	extern/libmv/libmv/numeric/dogleg_test.cc
A	extern/libmv/libmv/numeric/function_derivative_test.cc
A	extern/libmv/libmv/numeric/levenberg_marquardt_test.cc
A	extern/libmv/libmv/numeric/numeric_test.cc
A	extern/libmv/libmv/numeric/poly_test.cc
A	extern/libmv/libmv/simple_pipeline/camera_intrinsics_test.cc
A	extern/libmv/libmv/simple_pipeline/detect_test.cc
A	extern/libmv/libmv/simple_pipeline/intersect_test.cc
A	extern/libmv/libmv/simple_pipeline/keyframe_selection_test.cc
A	extern/libmv/libmv/simple_pipeline/modal_solver_test.cc
A	extern/libmv/libmv/simple_pipeline/resect_test.cc
A	extern/libmv/libmv/tracking/brute_region_tracker_test.cc
A	extern/libmv/libmv/tracking/klt_region_tracker_test.cc
A	extern/libmv/libmv/tracking/pyramid_region_tracker_test.cc
M	source/tests/blenlib_tests/CMakeLists.txt
A	source/tests/blenlib_tests/mathutils_color_test.cc
A	source/tests/blenlib_tests/mathutils_geom_test.cc
D	source/tests/blenlib_tests/mathutils_test.cc
M	source/tests/testing/testing.h

===================================================================

diff --git a/build_files/cmake/Modules/Testing.cmake b/build_files/cmake/Modules/Testing.cmake
index a28af7e..2e14d6e 100644
--- a/build_files/cmake/Modules/Testing.cmake
+++ b/build_files/cmake/Modules/Testing.cmake
@@ -12,20 +12,21 @@
 #
 #=============================================================================
 
-macro(BLENDER_TEST NAME EXTRA_LIBS)
+macro(BLENDER_SRC_TEST NAME SRC EXTRA_LIBS)
 	if(WITH_TESTS)
 		get_property(_current_include_directories
 		             DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
 		             PROPERTY INCLUDE_DIRECTORIES)
-		set(INC
+		set(TEST_INC
 			${_current_include_directories}
+			${CMAKE_SOURCE_DIR}/source/tests
 			${CMAKE_SOURCE_DIR}/extern/libmv/third_party/glog/src
 			${CMAKE_SOURCE_DIR}/extern/libmv/third_party/gflags
 			${CMAKE_SOURCE_DIR}/extern/gtest/include
 		)
 		unset(_current_include_directories)
 
-		add_executable(${NAME}_test ${NAME}_test.cc)
+		add_executable(${NAME}_test ${SRC})
 		target_link_libraries(${NAME}_test
 		                      ${EXTRA_LIBS}
 		                      bf_testing_main
@@ -36,7 +37,11 @@ macro(BLENDER_TEST NAME EXTRA_LIBS)
 		                      RUNTIME_OUTPUT_DIRECTORY         "${TESTS_OUTPUT_DIR}"
 		                      RUNTIME_OUTPUT_DIRECTORY_RELEASE "${TESTS_OUTPUT_DIR}"
 		                      RUNTIME_OUTPUT_DIRECTORY_DEBUG   "${TESTS_OUTPUT_DIR}"
-		                      INCLUDE_DIRECTORIES              "${INC}")
+		                      INCLUDE_DIRECTORIES              "${TEST_INC}")
 		add_test(${NAME}_test ${TESTS_OUTPUT_DIR}/${NAME}_test)
 	endif()
 endmacro()
+
+macro(BLENDER_TEST NAME EXTRA_LIBS)
+	BLENDER_SRC_TEST("${NAME}" "${NAME}_test.cc" "${EXTRA_LIBS}")
+endmacro()
diff --git a/extern/libmv/CMakeLists.txt b/extern/libmv/CMakeLists.txt
index 8668c6a..26d1c8c 100644
--- a/extern/libmv/CMakeLists.txt
+++ b/extern/libmv/CMakeLists.txt
@@ -70,6 +70,7 @@ if(WITH_LIBMV)
 		libmv/multiview/fundamental.cc
 		libmv/multiview/homography.cc
 		libmv/multiview/panography.cc
+		libmv/multiview/panography_kernel.cc
 		libmv/multiview/projection.cc
 		libmv/multiview/triangulation.cc
 		libmv/numeric/numeric.cc
@@ -105,6 +106,7 @@ if(WITH_LIBMV)
 		libmv/image/convolve.h
 		libmv/image/correlation.h
 		libmv/image/image_converter.h
+		libmv/image/image_drawing.h
 		libmv/image/image.h
 		libmv/image/sample.h
 		libmv/image/tuple.h
@@ -112,13 +114,16 @@ if(WITH_LIBMV)
 		libmv/multiview/conditioning.h
 		libmv/multiview/euclidean_resection.h
 		libmv/multiview/fundamental.h
+		libmv/multiview/homography_error.h
 		libmv/multiview/homography.h
 		libmv/multiview/homography_parameterization.h
 		libmv/multiview/nviewtriangulation.h
 		libmv/multiview/panography.h
+		libmv/multiview/panography_kernel.h
 		libmv/multiview/projection.h
 		libmv/multiview/resection.h
 		libmv/multiview/triangulation.h
+		libmv/multiview/two_view_kernel.h
 		libmv/numeric/dogleg.h
 		libmv/numeric/function_derivative.h
 		libmv/numeric/levenberg_marquardt.h
@@ -163,6 +168,40 @@ if(WITH_LIBMV)
 			)
 		endif()
 	endif()
+
+	if(WITH_TESTS)
+		blender_add_lib(libmv_test_dataset "./libmv/multiview/test_data_sets.cc" "" "")
+	endif()
+
+	BLENDER_SRC_TEST("libmv_scoped_ptr" "./libmv/base/scoped_ptr_test.cc" "libmv_test_dataset;extern_libmv;extern_ceres")
+	BLENDER_SRC_TEST("libmv_vector" "./libmv/base/vector_test.cc" "libmv_test_dataset;extern_libmv;extern_ceres")
+	BLENDER_SRC_TEST("libmv_array_nd" "./libmv/image/array_nd_test.cc" "libmv_test_dataset;extern_libmv;extern_ceres")
+	BLENDER_SRC_TEST("libmv_convolve" "./libmv/image/convolve_test.cc" "libmv_test_dataset;extern_libmv;extern_ceres")
+	BLENDER_SRC_TEST("libmv_image" "./libmv/image/image_test.cc" "libmv_test_dataset;extern_libmv;extern_ceres")
+	BLENDER_SRC_TEST("libmv_sample" "./libmv/image/sample_test.cc" "libmv_test_dataset;extern_libmv;extern_ceres")
+	BLENDER_SRC_TEST("libmv_tuple" "./libmv/image/tuple_test.cc" "libmv_test_dataset;extern_libmv;extern_ceres")
+	BLENDER_SRC_TEST("libmv_euclidean_resection" "./libmv/multiview/euclidean_resection_test.cc" "libmv_test_dataset;extern_libmv;extern_ceres")
+	BLENDER_SRC_TEST("libmv_fundamental" "./libmv/multiview/fundamental_test.cc" "libmv_test_dataset;extern_libmv;extern_ceres")
+	BLENDER_SRC_TEST("libmv_homography" "./libmv/multiview/homography_test.cc" "libmv_test_dataset;extern_libmv;extern_ceres")
+	BLENDER_SRC_TEST("libmv_nviewtriangulation" "./libmv/multiview/nviewtriangulation_test.cc" "libmv_test_dataset;extern_libmv;extern_ceres")
+	BLENDER_SRC_TEST("libmv_panography" "./libmv/multiview/panography_test.cc" "libmv_test_dataset;extern_libmv;extern_ceres")
+	BLENDER_SRC_TEST("libmv_projection" "./libmv/multiview/projection_test.cc" "libmv_test_dataset;extern_libmv;extern_ceres")
+	BLENDER_SRC_TEST("libmv_resection" "./libmv/multiview/resection_test.cc" "libmv_test_dataset;extern_libmv;extern_ceres")
+	BLENDER_SRC_TEST("libmv_triangulation" "./libmv/multiview/triangulation_test.cc" "libmv_test_dataset;extern_libmv;extern_ceres")
+	BLENDER_SRC_TEST("libmv_dogleg" "./libmv/numeric/dogleg_test.cc" "libmv_test_dataset;extern_libmv;extern_ceres")
+	BLENDER_SRC_TEST("libmv_function_derivative" "./libmv/numeric/function_derivative_test.cc" "libmv_test_dataset;extern_libmv;extern_ceres")
+	BLENDER_SRC_TEST("libmv_levenberg_marquardt" "./libmv/numeric/levenberg_marquardt_test.cc" "libmv_test_dataset;extern_libmv;extern_ceres")
+	BLENDER_SRC_TEST("libmv_numeric" "./libmv/numeric/numeric_test.cc" "libmv_test_dataset;extern_libmv;extern_ceres")
+	BLENDER_SRC_TEST("libmv_poly" "./libmv/numeric/poly_test.cc" "libmv_test_dataset;extern_libmv;extern_ceres")
+	BLENDER_SRC_TEST("libmv_camera_intrinsics" "./libmv/simple_pipeline/camera_intrinsics_test.cc" "libmv_test_dataset;extern_libmv;extern_ceres")
+	BLENDER_SRC_TEST("libmv_detect" "./libmv/simple_pipeline/detect_test.cc" "libmv_test_dataset;extern_libmv;extern_ceres")
+	BLENDER_SRC_TEST("libmv_intersect" "./libmv/simple_pipeline/intersect_test.cc" "libmv_test_dataset;extern_libmv;extern_ceres")
+	BLENDER_SRC_TEST("libmv_keyframe_selection" "./libmv/simple_pipeline/keyframe_selection_test.cc" "libmv_test_dataset;extern_libmv;extern_ceres")
+	BLENDER_SRC_TEST("libmv_modal_solver" "./libmv/simple_pipeline/modal_solver_test.cc" "libmv_test_dataset;extern_libmv;extern_ceres")
+	BLENDER_SRC_TEST("libmv_resect" "./libmv/simple_pipeline/resect_test.cc" "libmv_test_dataset;extern_libmv;extern_ceres")
+	BLENDER_SRC_TEST("libmv_brute_region_tracker" "./libmv/tracking/brute_region_tracker_test.cc" "libmv_test_dataset;extern_libmv;extern_ceres")
+	BLENDER_SRC_TEST("libmv_klt_region_tracker" "./libmv/tracking/klt_region_tracker_test.cc" "libmv_test_dataset;extern_libmv;extern_ceres")
+	BLENDER_SRC_TEST("libmv_pyramid_region_tracker" "./libmv/tracking/pyramid_region_tracker_test.cc" "libmv_test_dataset;extern_libmv;extern_ceres")
 else()
 	list(APPEND SRC
 		libmv-capi_stub.cc
diff --git a/extern/libmv/SConscript b/extern/libmv/SConscript
index dc12950..a267c96 100644
--- a/extern/libmv/SConscript
+++ b/extern/libmv/SConscript
@@ -44,6 +44,8 @@ if env['WITH_BF_LIBMV']:
 else:
     src = env.Glob("libmv-capi_stub.cc")
 
+src = [src for src in src if src.find('_test.cc') == -1]
+
 env.BlenderLib ( libname = 'extern_libmv', sources=src, includes=Split(incs), defines=defs, libtype=['extern', 'player'], priority=[20,137] )
 
 if env['WITH_BF_LIBMV']:
diff --git a/extern/libmv/bundle.sh b/extern/libmv/bundle.sh
index 3bedf10..2f408c7 100755
--- a/extern/libmv/bundle.sh
+++ b/extern/libmv/bundle.sh
@@ -30,8 +30,8 @@ rm -rf $tmp
 
 chmod 664 ./third_party/glog/src/windows/*.cc ./third_party/glog/src/windows/*.h ./third_party/glog/src/windows/glog/*.h
 
-sources=`find ./libmv -type f -iname '*.cc' -or -iname '*.cpp' -or -iname '*.c' | sed -r 's/^\.\//\t\t/' | sort -d`
-headers=`find ./libmv -type f -iname '*.h' | sed -r 's/^\.\//\t\t/' | sort -d`
+sources=`find ./libmv -type f -iname '*.cc' -or -iname '*.cpp' -or -iname '*.c' | grep -v _test.cc | grep -v test_data_sets | sed -r 's/^\.\//\t\t/' | sort -d`
+headers=`find ./libmv -type f -iname '*.h' | grep -v test_data_sets | sed -r 's/^\.\//\t\t/' | sort -d`
 
 third_sources=`find ./third_party -type f -iname '*.cc' -or -iname '*.cpp' -or -iname '*.c' | grep -v glog | grep -v gflags | grep -v ceres | sed -r 's/^\.\//\t\t/' | sort -d`
 third_headers=`find ./third_party -type f -iname '*.h' | grep -v glog | grep -v gflags | grep -v ceres | sed -r 's/^\.\//\t\t/' | sort -d`
@@ -42,6 +42,8 @@ third_glog_headers=`find ./third_party -type f -iname '*.h' | grep glog | grep -
 third_gflags_sources=`find ./third_party -type f -iname '*.cc' -or -iname '*.cpp' -or -iname '*.c' | grep gflags | grep -v windows | sed -r 's/^\.\//\t\t/' | sort -d`
 third_gflags_headers=`find ./third_party -type f -iname '*.h' | grep gflags | grep -v windows | sed -r 's/^\.\//\t\t/' | sort -d`
 
+tests=`find ./libmv -type f -iname '*_test.cc' | sort -d | awk ' { name=gensub(".*/([A-Za-z_]+)_test.cc", "\\\\1", $1); printf("\tBLENDER_SRC_TEST(\"libmv_%s\" \"%s\" \"libmv_test_dataset;extern_libmv;extern_ceres\")\n", name, $1) } '`
+
 src_dir=`find ./libmv -type f -iname '*.cc' -exec dirname {} \; -or -iname '*.cpp' -exec dirname {} \; -or -iname '*.c' -exec dirname {} \; | sed -r 's/^\.\//\t\t/' | sort -d | uniq`
 src_third_dir=`find ./third_party -type f -iname '*.cc' -exec dirname {} \; -or -iname '*.cpp' -exec dirname {} \; -or -iname '*.c' -exec dirname {} \;  | grep -v ceres | sed -r 's/^\.\//\t\t/'  | sort -d | uniq`
 src=""
@@ -172,6 +174,12 @@ ${third_headers}
 			)
 		endif()
 	endif()
+
+	if(WITH_TESTS)
+		blender_add_lib(libmv_test_dataset "./libmv/multiview/test_data_sets.cc" "${INC}" "${INC_SYS}")
+	endif()
+
+${tests}
 else()
 	list(APPEND SRC
 		libmv-capi_stub.cc
@@ -281,6 +289,8 @@ ${win_src}
 else:
     src = env.Glob("libmv-capi_stub.cc")
 
+src = [src for src in src if src.find('_test.cc') == -1]
+
 env.BlenderLib ( libname = 'extern_libmv', sources=src, includes=Split(incs), defines=defs, libtype=['extern', 'player'], priority=[20,137] )
 
 if env['WITH_BF_LIBMV']:
diff --git a/extern/libmv/files.txt b/extern/libmv/files.txt
index 60a9930..f1eb958 100644
--- a/extern/libmv/files.txt
+++ b/extern/libmv/files.txt
@@ -2

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list