Fix/add failure behavior #266 (#267)

This MR addresses the behavior mismatch mentioned in
https://github.com/etcd-cpp-apiv3/etcd-cpp-apiv3/issues/266
Have passed the `EtcdSyncTest`
This commit is contained in:
Daniel Tsai 2024-03-13 09:29:03 -04:00 committed by GitHub
parent c911c83c53
commit ca0e352d55
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 3 additions and 3 deletions

View File

@ -994,9 +994,9 @@ etcdv3::AsyncSetAction::AsyncSetAction(etcdv3::ActionParameters&& params,
// backwards compatibility // backwards compatibility
txn.add_success_range(parameters.key); txn.add_success_range(parameters.key);
if (create) { if (create) {
txn.add_failure_put(parameters.key, parameters.value, parameters.lease_id);
} else {
txn.add_failure_range(parameters.key); txn.add_failure_range(parameters.key);
} else {
txn.add_failure_put(parameters.key, parameters.value, parameters.lease_id);
} }
response_reader = response_reader =
parameters.kv_stub->AsyncTxn(&context, *txn.txn_request, &cq_); parameters.kv_stub->AsyncTxn(&context, *txn.txn_request, &cq_);

View File

@ -18,7 +18,7 @@ TEST_CASE("sync operations") {
// add // add
CHECK(0 == etcd.add("/test/key1", "42").error_code()); CHECK(0 == etcd.add("/test/key1", "42").error_code());
CHECK(etcd::ERROR_KEY_ALREADY_EXISTS == CHECK(etcd::ERROR_KEY_ALREADY_EXISTS ==
etcd.add("/test/key1", "42").error_code()); // Key already exists etcd.add("/test/key1", "41").error_code()); // Key already exists
CHECK("42" == etcd.get("/test/key1").value().as_string()); CHECK("42" == etcd.get("/test/key1").value().as_string());
// modify // modify