commit | 8549c88d7cf69b2f20eb3d8e8f2418f18b665cf8 | [log] [tgz] |
---|---|---|
author | Keir Mierle <mierle@gmail.com> | Thu Feb 08 19:06:49 2018 -0800 |
committer | Keir Mierle <mierle@gmail.com> | Tue Feb 20 14:46:10 2018 -0800 |
tree | 07548c6fe09f0e72d360c90a68885f0a103c750b | |
parent | 2f99a2a37d133a8c295af14a637896b7e45ea783 [diff] |
Split bundle adjustment tests into individual binaries The bundle adjustment test is extremely slow to run (especially in debug or fastbuild), and since it is in one binary, there is no way to get CMake or Bazel to parallelize the test execution. This change divides the test into a single binary for each configuration, making parallelized execution possible. In this patch, only the Bazel build is updated to use the new test. The old test still exists to retain parity with the CMake build. A followup change will complete the process of adding equivalent test execution to the CMake build. Example build output: % bazel test -c opt :all INFO: Analysed 123 targets (15 packages loaded). INFO: Found 2 targets and 121 test targets... INFO: From Compiling external/com_github_google_glog/src/logging.cc: external/com_github_google_glog/src/logging.cc: In static member function 'static void google::LogMessage::Fail()': external/com_github_google_glog/src/logging.cc:1518:1: warning: 'noreturn' function does return } ^ INFO: Elapsed time: 98.056s, Critical Path: 23.80s INFO: Build completed successfully, 976 total actions //:array_utils_test PASSED in 0.1s //:autodiff_cost_function_test PASSED in 0.2s //:autodiff_local_parameterization_test PASSED in 0.2s //:autodiff_test PASSED in 0.1s //:ba_denseschur_auto_test PASSED in 5.3s //:ba_denseschur_auto_threads_test PASSED in 0.1s //:ba_denseschur_user_test PASSED in 5.3s //:ba_denseschur_user_threads_test PASSED in 0.1s //:ba_iterschur_jacobi_auto_test PASSED in 6.2s //:ba_iterschur_jacobi_auto_threads_test PASSED in 0.1s //:ba_iterschur_jacobi_user_test PASSED in 6.0s //:ba_iterschur_jacobi_user_threads_test PASSED in 0.2s //:ba_iterschur_schurjacobi_auto_test PASSED in 6.1s //:ba_iterschur_schurjacobi_auto_threads_test PASSED in 0.2s //:ba_iterschur_schurjacobi_user_test PASSED in 5.7s //:ba_iterschur_schurjacobi_user_threads_test PASSED in 0.1s //:ba_iterschur_suitesparse_clustjacobi_auto_test PASSED in 0.1s //:ba_iterschur_suitesparse_clustjacobi_auto_threads_test PASSED in 0.1s //:ba_iterschur_suitesparse_clustjacobi_user_test PASSED in 0.1s //:ba_iterschur_suitesparse_clustjacobi_user_threads_test PASSED in 0.1s //:ba_iterschur_suitesparse_clusttri_auto_test PASSED in 0.1s //:ba_iterschur_suitesparse_clusttri_auto_threads_test PASSED in 0.1s //:ba_iterschur_suitesparse_clusttri_user_test PASSED in 0.1s //:ba_iterschur_suitesparse_clusttri_user_threads_test PASSED in 0.1s //:ba_sparsecholesky_cxsparse_auto_test PASSED in 0.2s //:ba_sparsecholesky_cxsparse_auto_threads_test PASSED in 0.2s //:ba_sparsecholesky_cxsparse_user_test PASSED in 0.1s //:ba_sparsecholesky_cxsparse_user_threads_test PASSED in 0.1s //:ba_sparsecholesky_eigensparse_auto_test PASSED in 0.1s //:ba_sparsecholesky_eigensparse_auto_threads_test PASSED in 0.1s //:ba_sparsecholesky_eigensparse_user_test PASSED in 0.2s //:ba_sparsecholesky_eigensparse_user_threads_test PASSED in 0.1s //:ba_sparsecholesky_suitesparse_auto_test PASSED in 0.1s //:ba_sparsecholesky_suitesparse_auto_threads_test PASSED in 0.3s //:ba_sparsecholesky_suitesparse_user_test PASSED in 0.1s //:ba_sparsecholesky_suitesparse_user_threads_test PASSED in 0.2s //:ba_sparseschur_cxsparse_auto_test PASSED in 0.1s //:ba_sparseschur_cxsparse_auto_threads_test PASSED in 0.2s //:ba_sparseschur_cxsparse_user_test PASSED in 0.1s //:ba_sparseschur_cxsparse_user_threads_test PASSED in 0.2s //:ba_sparseschur_eigensparse_auto_test PASSED in 0.2s //:ba_sparseschur_eigensparse_auto_threads_test PASSED in 0.2s //:ba_sparseschur_eigensparse_user_test PASSED in 0.1s //:ba_sparseschur_eigensparse_user_threads_test PASSED in 0.2s //:ba_sparseschur_suitesparse_auto_test PASSED in 0.3s //:ba_sparseschur_suitesparse_auto_threads_test PASSED in 0.2s //:ba_sparseschur_suitesparse_user_test PASSED in 0.2s //:ba_sparseschur_suitesparse_user_threads_test PASSED in 0.2s //:block_jacobi_preconditioner_test PASSED in 0.1s //:block_random_access_dense_matrix_test PASSED in 0.2s //:block_random_access_diagonal_matrix_test PASSED in 0.4s //:block_random_access_sparse_matrix_test PASSED in 0.2s //:block_sparse_matrix_test PASSED in 0.2s //:c_api_test PASSED in 0.2s //:canonical_views_clustering_test PASSED in 0.4s //:compressed_col_sparse_matrix_utils_test PASSED in 0.3s //:compressed_row_sparse_matrix_test PASSED in 0.3s //:conditioned_cost_function_test PASSED in 0.2s //:conjugate_gradients_solver_test PASSED in 0.2s //:corrector_test PASSED in 0.2s //:cost_function_to_functor_test PASSED in 0.1s //:covariance_test PASSED in 0.1s //:cubic_interpolation_test PASSED in 0.2s //:dense_linear_solver_test PASSED in 0.1s //:dense_sparse_matrix_test PASSED in 0.4s //:detect_structure_test PASSED in 0.3s //:dogleg_strategy_test PASSED in 0.4s //:dynamic_autodiff_cost_function_test PASSED in 0.2s //:dynamic_compressed_row_sparse_matrix_test PASSED in 0.2s //:dynamic_numeric_diff_cost_function_test PASSED in 0.1s //:dynamic_sparse_normal_cholesky_solver_test PASSED in 0.4s //:dynamic_sparsity_test PASSED in 0.3s //:evaluator_test PASSED in 0.2s //:gradient_checker_test PASSED in 0.2s //:gradient_checking_cost_function_test PASSED in 0.2s //:gradient_problem_solver_test PASSED in 0.2s //:gradient_problem_test PASSED in 0.4s //:graph_algorithms_test PASSED in 0.4s //:graph_test PASSED in 0.2s //:householder_vector_test PASSED in 0.2s //:implicit_schur_complement_test PASSED in 0.2s //:inner_product_computer_test PASSED in 0.3s //:invert_psd_matrix_test PASSED in 0.1s //:is_close_test PASSED in 0.4s //:iterative_schur_complement_solver_test PASSED in 0.3s //:jet_test PASSED in 0.3s //:levenberg_marquardt_strategy_test PASSED in 0.2s //:line_search_minimizer_test PASSED in 0.2s //:line_search_preprocessor_test PASSED in 0.1s //:local_parameterization_test PASSED in 0.1s //:loss_function_test PASSED in 0.1s //:minimizer_test PASSED in 0.2s //:normal_prior_test PASSED in 0.3s //:numeric_diff_cost_function_test PASSED in 0.2s //:ordered_groups_test PASSED in 0.2s //:parameter_block_ordering_test PASSED in 0.2s //:parameter_block_test PASSED in 0.1s //:partitioned_matrix_view_test PASSED in 0.1s //:polynomial_test PASSED in 0.1s //:problem_test PASSED in 0.1s //:program_test PASSED in 0.2s //:reorder_program_test PASSED in 0.2s //:residual_block_test PASSED in 0.2s //:residual_block_utils_test PASSED in 0.2s //:rotation_test PASSED in 7.1s //:schur_complement_solver_test PASSED in 0.2s //:schur_eliminator_test PASSED in 0.2s //:single_linkage_clustering_test PASSED in 0.2s //:small_blas_test PASSED in 0.2s //:solver_test PASSED in 0.2s //:sparse_cholesky_test PASSED in 0.2s //:sparse_normal_cholesky_solver_test PASSED in 0.2s //:system_test PASSED in 0.1s //:tiny_solver_autodiff_function_test PASSED in 0.2s //:tiny_solver_cost_function_adapter_test PASSED in 0.1s //:tiny_solver_test PASSED in 0.1s //:triplet_sparse_matrix_test PASSED in 0.2s //:trust_region_minimizer_test PASSED in 0.2s //:trust_region_preprocessor_test PASSED in 0.2s //:visibility_based_preconditioner_test PASSED in 0.1s //:visibility_test PASSED in 0.2s Executed 121 out of 121 tests: 121 tests pass. There were tests whose specified size is too big. Use the --test_verbose_timeout_warnings command line option to see which ones these are. Change-Id: I32825f1e6278ba69dc296bb2dc05fb8ebda26592
Ceres Solver is an open source C++ library for modeling and solving large, complicated optimization problems. It is a feature rich, mature and performant library which has been used in production at Google since 2010. Ceres Solver can solve two kinds of problems.
Please see ceres-solver.org for more information.
Ceres development happens on Gerrit, including both repository hosting and code reviews. The GitHub Repository is a continuously updated mirror which is primarily meant for issue tracking. Please see our Contributing to Ceres Guide for more details.
The upstream Gerrit repository is
https://ceres-solver.googlesource.com/ceres-solver