Use the current gMock mocking syntax The mocks use deprecated macros and Times(1) with WillRepeatedly. Use MOCK_METHOD, WillOnce and std::make_unique. Change-Id: I83530eb485996796e22f7684d0ff800ae8a77cf8
diff --git a/internal/ceres/dense_cholesky_test.cc b/internal/ceres/dense_cholesky_test.cc index b5fa59b..161b57c 100644 --- a/internal/ceres/dense_cholesky_test.cc +++ b/internal/ceres/dense_cholesky_test.cc
@@ -140,25 +140,27 @@ class MockDenseCholesky : public DenseCholesky { public: - MOCK_METHOD3(Factorize, - LinearSolverTerminationType(int num_cols, - double* lhs, - std::string* message)); - MOCK_METHOD3(Solve, - LinearSolverTerminationType(const double* rhs, - double* solution, - std::string* message)); + MOCK_METHOD(LinearSolverTerminationType, + Factorize, + (int num_cols, double* lhs, std::string* message), + (override)); + MOCK_METHOD(LinearSolverTerminationType, + Solve, + (const double* rhs, double* solution, std::string* message), + (override)); }; class MockDenseIterativeRefiner : public DenseIterativeRefiner { public: MockDenseIterativeRefiner() : DenseIterativeRefiner(1) {} - MOCK_METHOD5(Refine, - void(int num_cols, - const double* lhs, - const double* rhs, - DenseCholesky* dense_cholesky, - double* solution)); + MOCK_METHOD(void, + Refine, + (int num_cols, + const double* lhs, + const double* rhs, + DenseCholesky* dense_cholesky, + double* solution), + (override)); }; using testing::_; @@ -168,8 +170,7 @@ auto dense_cholesky = std::make_unique<MockDenseCholesky>(); auto iterative_refiner = std::make_unique<MockDenseIterativeRefiner>(); EXPECT_CALL(*dense_cholesky, Factorize(_, _, _)) - .Times(1) - .WillRepeatedly(Return(LinearSolverTerminationType::SUCCESS)); + .WillOnce(Return(LinearSolverTerminationType::SUCCESS)); EXPECT_CALL(*iterative_refiner, Refine(_, _, _, _, _)).Times(0); RefinedDenseCholesky refined_dense_cholesky(std::move(dense_cholesky), std::move(iterative_refiner)); @@ -177,14 +178,13 @@ std::string message; EXPECT_EQ(refined_dense_cholesky.Factorize(1, &lhs, &message), LinearSolverTerminationType::SUCCESS); -}; +} TEST(RefinedDenseCholesky, FactorAndSolveWithUnsuccessfulFactorization) { auto dense_cholesky = std::make_unique<MockDenseCholesky>(); auto iterative_refiner = std::make_unique<MockDenseIterativeRefiner>(); EXPECT_CALL(*dense_cholesky, Factorize(_, _, _)) - .Times(1) - .WillRepeatedly(Return(LinearSolverTerminationType::FAILURE)); + .WillOnce(Return(LinearSolverTerminationType::FAILURE)); EXPECT_CALL(*dense_cholesky, Solve(_, _, _)).Times(0); EXPECT_CALL(*iterative_refiner, Refine(_, _, _, _, _)).Times(0); RefinedDenseCholesky refined_dense_cholesky(std::move(dense_cholesky), @@ -196,17 +196,15 @@ EXPECT_EQ( refined_dense_cholesky.FactorAndSolve(1, &lhs, &rhs, &solution, &message), LinearSolverTerminationType::FAILURE); -}; +} TEST(RefinedDenseCholesky, FactorAndSolveWithSuccess) { auto dense_cholesky = std::make_unique<MockDenseCholesky>(); auto iterative_refiner = std::make_unique<MockDenseIterativeRefiner>(); EXPECT_CALL(*dense_cholesky, Factorize(_, _, _)) - .Times(1) - .WillRepeatedly(Return(LinearSolverTerminationType::SUCCESS)); + .WillOnce(Return(LinearSolverTerminationType::SUCCESS)); EXPECT_CALL(*dense_cholesky, Solve(_, _, _)) - .Times(1) - .WillRepeatedly(Return(LinearSolverTerminationType::SUCCESS)); + .WillOnce(Return(LinearSolverTerminationType::SUCCESS)); EXPECT_CALL(*iterative_refiner, Refine(_, _, _, _, _)).Times(1); RefinedDenseCholesky refined_dense_cholesky(std::move(dense_cholesky), @@ -218,6 +216,6 @@ EXPECT_EQ( refined_dense_cholesky.FactorAndSolve(1, &lhs, &rhs, &solution, &message), LinearSolverTerminationType::SUCCESS); -}; +} } // namespace ceres::internal
diff --git a/internal/ceres/problem_test.cc b/internal/ceres/problem_test.cc index 29524d1..6ac8d48 100644 --- a/internal/ceres/problem_test.cc +++ b/internal/ceres/problem_test.cc
@@ -2208,7 +2208,10 @@ class MockEvaluationCallback : public EvaluationCallback { public: - MOCK_METHOD2(PrepareForEvaluation, void(bool, bool)); + MOCK_METHOD(void, + PrepareForEvaluation, + (bool evaluate_jacobians, bool new_evaluation_point), + (override)); }; TEST(ProblemEvaluate, CallsEvaluationCallbackWithoutJacobian) {
diff --git a/internal/ceres/sparse_cholesky_test.cc b/internal/ceres/sparse_cholesky_test.cc index 4142a4c..5375150 100644 --- a/internal/ceres/sparse_cholesky_test.cc +++ b/internal/ceres/sparse_cholesky_test.cc
@@ -289,24 +289,30 @@ class MockSparseCholesky : public SparseCholesky { public: - MOCK_CONST_METHOD0(StorageType, CompressedRowSparseMatrix::StorageType()); - MOCK_METHOD2(Factorize, - LinearSolverTerminationType(CompressedRowSparseMatrix* lhs, - std::string* message)); - MOCK_METHOD3(Solve, - LinearSolverTerminationType(const double* rhs, - double* solution, - std::string* message)); + MOCK_METHOD(CompressedRowSparseMatrix::StorageType, + StorageType, + (), + (const, override)); + MOCK_METHOD(LinearSolverTerminationType, + Factorize, + (CompressedRowSparseMatrix * lhs, std::string* message), + (override)); + MOCK_METHOD(LinearSolverTerminationType, + Solve, + (const double* rhs, double* solution, std::string* message), + (override)); }; class MockSparseIterativeRefiner : public SparseIterativeRefiner { public: MockSparseIterativeRefiner() : SparseIterativeRefiner(1) {} - MOCK_METHOD4(Refine, - void(const SparseMatrix& lhs, - const double* rhs, - SparseCholesky* sparse_cholesky, - double* solution)); + MOCK_METHOD(void, + Refine, + (const SparseMatrix& lhs, + const double* rhs, + SparseCholesky* sparse_cholesky, + double* solution), + (override)); }; using testing::_; @@ -316,45 +322,36 @@ auto sparse_cholesky = std::make_unique<MockSparseCholesky>(); auto iterative_refiner = std::make_unique<MockSparseIterativeRefiner>(); EXPECT_CALL(*sparse_cholesky, StorageType()) - .Times(1) - .WillRepeatedly( + .WillOnce( Return(CompressedRowSparseMatrix::StorageType::UPPER_TRIANGULAR)); EXPECT_CALL(*iterative_refiner, Refine(_, _, _, _)).Times(0); RefinedSparseCholesky refined_sparse_cholesky(std::move(sparse_cholesky), std::move(iterative_refiner)); EXPECT_EQ(refined_sparse_cholesky.StorageType(), CompressedRowSparseMatrix::StorageType::UPPER_TRIANGULAR); -}; +} TEST(RefinedSparseCholesky, Factorize) { - auto* mock_sparse_cholesky = new MockSparseCholesky; - auto* mock_iterative_refiner = new MockSparseIterativeRefiner; - EXPECT_CALL(*mock_sparse_cholesky, Factorize(_, _)) - .Times(1) - .WillRepeatedly(Return(LinearSolverTerminationType::SUCCESS)); - EXPECT_CALL(*mock_iterative_refiner, Refine(_, _, _, _)).Times(0); - std::unique_ptr<SparseCholesky> sparse_cholesky(mock_sparse_cholesky); - std::unique_ptr<SparseIterativeRefiner> iterative_refiner( - mock_iterative_refiner); + auto sparse_cholesky = std::make_unique<MockSparseCholesky>(); + auto iterative_refiner = std::make_unique<MockSparseIterativeRefiner>(); + EXPECT_CALL(*sparse_cholesky, Factorize(_, _)) + .WillOnce(Return(LinearSolverTerminationType::SUCCESS)); + EXPECT_CALL(*iterative_refiner, Refine(_, _, _, _)).Times(0); RefinedSparseCholesky refined_sparse_cholesky(std::move(sparse_cholesky), std::move(iterative_refiner)); CompressedRowSparseMatrix m(1, 1, 1); std::string message; EXPECT_EQ(refined_sparse_cholesky.Factorize(&m, &message), LinearSolverTerminationType::SUCCESS); -}; +} TEST(RefinedSparseCholesky, FactorAndSolveWithUnsuccessfulFactorization) { - auto* mock_sparse_cholesky = new MockSparseCholesky; - auto* mock_iterative_refiner = new MockSparseIterativeRefiner; - EXPECT_CALL(*mock_sparse_cholesky, Factorize(_, _)) - .Times(1) - .WillRepeatedly(Return(LinearSolverTerminationType::FAILURE)); - EXPECT_CALL(*mock_sparse_cholesky, Solve(_, _, _)).Times(0); - EXPECT_CALL(*mock_iterative_refiner, Refine(_, _, _, _)).Times(0); - std::unique_ptr<SparseCholesky> sparse_cholesky(mock_sparse_cholesky); - std::unique_ptr<SparseIterativeRefiner> iterative_refiner( - mock_iterative_refiner); + auto sparse_cholesky = std::make_unique<MockSparseCholesky>(); + auto iterative_refiner = std::make_unique<MockSparseIterativeRefiner>(); + EXPECT_CALL(*sparse_cholesky, Factorize(_, _)) + .WillOnce(Return(LinearSolverTerminationType::FAILURE)); + EXPECT_CALL(*sparse_cholesky, Solve(_, _, _)).Times(0); + EXPECT_CALL(*iterative_refiner, Refine(_, _, _, _)).Times(0); RefinedSparseCholesky refined_sparse_cholesky(std::move(sparse_cholesky), std::move(iterative_refiner)); CompressedRowSparseMatrix m(1, 1, 1); @@ -364,23 +361,17 @@ EXPECT_EQ( refined_sparse_cholesky.FactorAndSolve(&m, &rhs, &solution, &message), LinearSolverTerminationType::FAILURE); -}; +} TEST(RefinedSparseCholesky, FactorAndSolveWithSuccess) { - auto* mock_sparse_cholesky = new MockSparseCholesky; - std::unique_ptr<MockSparseIterativeRefiner> mock_iterative_refiner( - new MockSparseIterativeRefiner); - EXPECT_CALL(*mock_sparse_cholesky, Factorize(_, _)) - .Times(1) - .WillRepeatedly(Return(LinearSolverTerminationType::SUCCESS)); - EXPECT_CALL(*mock_sparse_cholesky, Solve(_, _, _)) - .Times(1) - .WillRepeatedly(Return(LinearSolverTerminationType::SUCCESS)); - EXPECT_CALL(*mock_iterative_refiner, Refine(_, _, _, _)).Times(1); + auto sparse_cholesky = std::make_unique<MockSparseCholesky>(); + auto iterative_refiner = std::make_unique<MockSparseIterativeRefiner>(); + EXPECT_CALL(*sparse_cholesky, Factorize(_, _)) + .WillOnce(Return(LinearSolverTerminationType::SUCCESS)); + EXPECT_CALL(*sparse_cholesky, Solve(_, _, _)) + .WillOnce(Return(LinearSolverTerminationType::SUCCESS)); + EXPECT_CALL(*iterative_refiner, Refine(_, _, _, _)).Times(1); - std::unique_ptr<SparseCholesky> sparse_cholesky(mock_sparse_cholesky); - std::unique_ptr<SparseIterativeRefiner> iterative_refiner( - std::move(mock_iterative_refiner)); RefinedSparseCholesky refined_sparse_cholesky(std::move(sparse_cholesky), std::move(iterative_refiner)); CompressedRowSparseMatrix m(1, 1, 1); @@ -390,7 +381,7 @@ EXPECT_EQ( refined_sparse_cholesky.FactorAndSolve(&m, &rhs, &solution, &message), LinearSolverTerminationType::SUCCESS); -}; +} } // namespace