hycdong commented on code in PR #1150:
URL: https://github.com/apache/incubator-pegasus/pull/1150#discussion_r976084409
##########
src/rdsn/src/replica/backup/test/replica_backup_manager_test.cpp:
##########
@@ -120,7 +143,178 @@ class replica_backup_manager_test : public
replica_test_base
std::unique_ptr<replica_backup_manager> _backup_mgr;
};
-// TODO(heyuchen): add unit test for on_backup after implement all status
+TEST_F(replica_backup_manager_test, on_backup_test)
+{
+ fail::cfg("replica_backup_start_checkpointing", "return()");
+ fail::cfg("replica_backup_start_uploading", "return()");
+ fail::cfg("replica_backup_upload_completed", "return()");
+ fail::cfg("replica_backup_clear_context", "return()");
+
+ struct test_struct
+ {
+ backup_status::type local_status;
+ backup_status::type request_status;
+ error_code expected_err;
+ backup_status::type expected_status;
+ } tests[]{
+ // request_status = UNINITIALIZED
+ {backup_status::UNINITIALIZED,
+ backup_status::UNINITIALIZED,
+ ERR_INVALID_STATE,
+ backup_status::UNINITIALIZED},
+ {backup_status::CHECKPOINTING,
+ backup_status::UNINITIALIZED,
+ ERR_INVALID_STATE,
+ backup_status::CHECKPOINTING},
+ {backup_status::CHECKPOINTED,
+ backup_status::UNINITIALIZED,
+ ERR_INVALID_STATE,
+ backup_status::CHECKPOINTED},
+ {backup_status::UPLOADING,
+ backup_status::UNINITIALIZED,
+ ERR_INVALID_STATE,
+ backup_status::UPLOADING},
+ {backup_status::SUCCEED,
+ backup_status::UNINITIALIZED,
+ ERR_INVALID_STATE,
+ backup_status::SUCCEED},
+ {backup_status::FAILED,
+ backup_status::UNINITIALIZED,
+ ERR_INVALID_STATE,
+ backup_status::FAILED},
+ {backup_status::CANCELED,
+ backup_status::UNINITIALIZED,
+ ERR_INVALID_STATE,
+ backup_status::CANCELED},
+ // request_status = CHECKPOINTING
+ {backup_status::UNINITIALIZED,
+ backup_status::CHECKPOINTING,
+ ERR_OK,
+ backup_status::CHECKPOINTING},
+ {backup_status::CHECKPOINTING,
+ backup_status::CHECKPOINTING,
+ ERR_OK,
+ backup_status::CHECKPOINTING},
+ {backup_status::CHECKPOINTED,
+ backup_status::CHECKPOINTING,
+ ERR_OK,
+ backup_status::CHECKPOINTED},
+ {backup_status::UPLOADING,
+ backup_status::CHECKPOINTING,
+ ERR_INVALID_STATE,
+ backup_status::UPLOADING},
+ {backup_status::SUCCEED,
+ backup_status::CHECKPOINTING,
+ ERR_INVALID_STATE,
+ backup_status::SUCCEED},
+ {backup_status::FAILED,
+ backup_status::CHECKPOINTING,
+ ERR_INVALID_STATE,
+ backup_status::FAILED},
+ {backup_status::CANCELED,
+ backup_status::CHECKPOINTING,
+ ERR_INVALID_STATE,
+ backup_status::CANCELED},
+ // request_status = CHECKPOINTED
+ {backup_status::UNINITIALIZED,
+ backup_status::CHECKPOINTED,
+ ERR_INVALID_STATE,
+ backup_status::UNINITIALIZED},
+ {backup_status::CHECKPOINTING,
+ backup_status::CHECKPOINTED,
+ ERR_INVALID_STATE,
+ backup_status::CHECKPOINTING},
+ {backup_status::CHECKPOINTED,
+ backup_status::CHECKPOINTED,
+ ERR_INVALID_STATE,
+ backup_status::CHECKPOINTED},
+ {backup_status::UPLOADING,
+ backup_status::CHECKPOINTED,
+ ERR_INVALID_STATE,
+ backup_status::UPLOADING},
+ {backup_status::SUCCEED,
+ backup_status::CHECKPOINTED,
+ ERR_INVALID_STATE,
+ backup_status::SUCCEED},
+ {backup_status::FAILED,
+ backup_status::CHECKPOINTED,
+ ERR_INVALID_STATE,
+ backup_status::FAILED},
+ {backup_status::CANCELED,
+ backup_status::CHECKPOINTED,
+ ERR_INVALID_STATE,
+ backup_status::CANCELED},
+ // request_status = UPLOADING
+ {backup_status::UNINITIALIZED,
+ backup_status::UPLOADING,
+ ERR_INVALID_STATE,
+ backup_status::UNINITIALIZED},
+ {backup_status::CHECKPOINTING,
+ backup_status::UPLOADING,
+ ERR_INVALID_STATE,
+ backup_status::CHECKPOINTING},
+ {backup_status::CHECKPOINTED, backup_status::UPLOADING, ERR_OK,
backup_status::UPLOADING},
+ {backup_status::UPLOADING, backup_status::UPLOADING, ERR_OK,
backup_status::UPLOADING},
+ {backup_status::SUCCEED, backup_status::UPLOADING, ERR_OK,
backup_status::SUCCEED},
+ {backup_status::FAILED, backup_status::UPLOADING, ERR_INVALID_STATE,
backup_status::FAILED},
+ {backup_status::CANCELED,
+ backup_status::UPLOADING,
+ ERR_INVALID_STATE,
+ backup_status::CANCELED},
+ // request_status = SUCCEED
+ {backup_status::UNINITIALIZED,
+ backup_status::SUCCEED,
+ ERR_INVALID_STATE,
+ backup_status::UNINITIALIZED},
+ {backup_status::CHECKPOINTING,
+ backup_status::SUCCEED,
+ ERR_INVALID_STATE,
+ backup_status::CHECKPOINTING},
+ {backup_status::CHECKPOINTED,
+ backup_status::SUCCEED,
+ ERR_INVALID_STATE,
+ backup_status::CHECKPOINTED},
+ {backup_status::UPLOADING,
+ backup_status::SUCCEED,
+ ERR_INVALID_STATE,
+ backup_status::UPLOADING},
+ {backup_status::SUCCEED, backup_status::SUCCEED, ERR_INVALID_STATE,
backup_status::SUCCEED},
+ {backup_status::FAILED, backup_status::SUCCEED, ERR_INVALID_STATE,
backup_status::FAILED},
+ {backup_status::CANCELED,
+ backup_status::SUCCEED,
+ ERR_INVALID_STATE,
+ backup_status::CANCELED},
+ // request_status = FAILED
+ {backup_status::UNINITIALIZED, backup_status::FAILED, ERR_OK,
backup_status::UNINITIALIZED},
+ {backup_status::CHECKPOINTING, backup_status::FAILED, ERR_OK,
backup_status::UNINITIALIZED},
+ {backup_status::CHECKPOINTED, backup_status::FAILED, ERR_OK,
backup_status::UNINITIALIZED},
+ {backup_status::UPLOADING, backup_status::FAILED, ERR_OK,
backup_status::UNINITIALIZED},
+ {backup_status::SUCCEED, backup_status::FAILED, ERR_OK,
backup_status::UNINITIALIZED},
+ {backup_status::FAILED, backup_status::FAILED, ERR_OK,
backup_status::UNINITIALIZED},
+ {backup_status::CANCELED, backup_status::FAILED, ERR_OK,
backup_status::UNINITIALIZED},
+ // request_status = CANCELED
+ {backup_status::UNINITIALIZED,
+ backup_status::CANCELED,
+ ERR_OK,
+ backup_status::UNINITIALIZED},
+ {backup_status::CHECKPOINTING,
+ backup_status::CANCELED,
+ ERR_OK,
+ backup_status::UNINITIALIZED},
+ {backup_status::CHECKPOINTED,
+ backup_status::CANCELED,
+ ERR_OK,
+ backup_status::UNINITIALIZED},
+ {backup_status::UPLOADING, backup_status::CANCELED, ERR_OK,
backup_status::UNINITIALIZED},
+ {backup_status::SUCCEED, backup_status::CANCELED, ERR_OK,
backup_status::UNINITIALIZED},
+ {backup_status::FAILED, backup_status::CANCELED, ERR_OK,
backup_status::UNINITIALIZED},
+ {backup_status::CANCELED, backup_status::CANCELED, ERR_OK,
backup_status::UNINITIALIZED}};
+
+ for (const auto &test : tests) {
+ ASSERT_EQ(on_backup(test.local_status, test.request_status),
test.expected_err);
Review Comment:
I have to admit that it is only be shown by unit test log.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]