Merge pull request #15882 from serathius/robustness-txn-fields

tests/robustness: Improve naming of Txn fields
This commit is contained in:
Marek Siarkowicz 2023-05-12 13:34:02 +02:00 committed by GitHub
commit 2a0c989662
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 32 additions and 32 deletions

View File

@ -42,9 +42,9 @@ func describeEtcdResponse(request EtcdRequest, response EtcdResponse) string {
func describeEtcdRequest(request EtcdRequest) string {
switch request.Type {
case Txn:
describeOperations := describeEtcdOperations(request.Txn.Ops)
if len(request.Txn.Conds) != 0 {
return fmt.Sprintf("if(%s).then(%s)", describeEtcdConditions(request.Txn.Conds), describeOperations)
describeOperations := describeEtcdOperations(request.Txn.OperationsOnSuccess)
if len(request.Txn.Conditions) != 0 {
return fmt.Sprintf("if(%s).then(%s)", describeEtcdConditions(request.Txn.Conditions), describeOperations)
}
return describeOperations
case LeaseGrant:
@ -75,12 +75,12 @@ func describeEtcdOperations(ops []EtcdOperation) string {
}
func describeTxnResponse(request *TxnRequest, response *TxnResponse) string {
if response.TxnResult {
if response.Failure {
return fmt.Sprintf("txn failed")
}
respDescription := make([]string, len(response.OpsResult))
for i := range response.OpsResult {
respDescription[i] = describeEtcdOperationResponse(request.Ops[i], response.OpsResult[i])
respDescription := make([]string, len(response.Results))
for i := range response.Results {
respDescription[i] = describeEtcdOperationResponse(request.OperationsOnSuccess[i], response.Results[i])
}
return strings.Join(respDescription, ", ")
}

View File

@ -78,14 +78,14 @@ func initState(request EtcdRequest, response EtcdResponse) etcdState {
}
switch request.Type {
case Txn:
if response.Txn.TxnResult {
if response.Txn.Failure {
return state
}
if len(request.Txn.Ops) != len(response.Txn.OpsResult) {
if len(request.Txn.OperationsOnSuccess) != len(response.Txn.Results) {
panic(fmt.Sprintf("Incorrect request %s, response %+v", describeEtcdRequest(request), describeEtcdResponse(request, response)))
}
for i, op := range request.Txn.Ops {
opResp := response.Txn.OpsResult[i]
for i, op := range request.Txn.OperationsOnSuccess {
opResp := response.Txn.Results[i]
switch op.Type {
case Range:
for _, kv := range opResp.KVs {
@ -128,18 +128,18 @@ func (s etcdState) step(request EtcdRequest) (etcdState, EtcdResponse) {
switch request.Type {
case Txn:
success := true
for _, cond := range request.Txn.Conds {
for _, cond := range request.Txn.Conditions {
if val := s.KeyValues[cond.Key]; val.ModRevision != cond.ExpectedRevision {
success = false
break
}
}
if !success {
return s, EtcdResponse{Revision: s.Revision, Txn: &TxnResponse{TxnResult: true}}
return s, EtcdResponse{Revision: s.Revision, Txn: &TxnResponse{Failure: true}}
}
opResp := make([]EtcdOperationResult, len(request.Txn.Ops))
opResp := make([]EtcdOperationResult, len(request.Txn.OperationsOnSuccess))
increaseRevision := false
for i, op := range request.Txn.Ops {
for i, op := range request.Txn.OperationsOnSuccess {
switch op.Type {
case Range:
opResp[i] = EtcdOperationResult{
@ -198,7 +198,7 @@ func (s etcdState) step(request EtcdRequest) (etcdState, EtcdResponse) {
if increaseRevision {
s.Revision += 1
}
return s, EtcdResponse{Txn: &TxnResponse{OpsResult: opResp}, Revision: s.Revision}
return s, EtcdResponse{Txn: &TxnResponse{Results: opResp}, Revision: s.Revision}
case LeaseGrant:
lease := EtcdLease{
LeaseID: request.LeaseGrant.LeaseID,
@ -264,8 +264,8 @@ type EtcdRequest struct {
}
type TxnRequest struct {
Conds []EtcdCondition
Ops []EtcdOperation
Conditions []EtcdCondition
OperationsOnSuccess []EtcdOperation
}
type EtcdCondition struct {
@ -299,8 +299,8 @@ type EtcdResponse struct {
}
type TxnResponse struct {
TxnResult bool
OpsResult []EtcdOperationResult
Failure bool
Results []EtcdOperationResult
}
type LeaseGrantReponse struct {

View File

@ -396,7 +396,7 @@ func getRequest(key string) EtcdRequest {
}
func rangeRequest(key string, withPrefix bool, limit int64) EtcdRequest {
return EtcdRequest{Type: Txn, Txn: &TxnRequest{Ops: []EtcdOperation{{Type: Range, Key: key, WithPrefix: withPrefix, Limit: limit}}}}
return EtcdRequest{Type: Txn, Txn: &TxnRequest{OperationsOnSuccess: []EtcdOperation{{Type: Range, Key: key, WithPrefix: withPrefix, Limit: limit}}}}
}
func emptyGetResponse(revision int64) EtcdNonDeterministicResponse {
@ -420,7 +420,7 @@ func rangeResponse(kvs []*mvccpb.KeyValue, count int64, revision int64) EtcdNonD
}
result.Count = count
}
return EtcdNonDeterministicResponse{EtcdResponse: EtcdResponse{Txn: &TxnResponse{OpsResult: []EtcdOperationResult{result}}, Revision: revision}}
return EtcdNonDeterministicResponse{EtcdResponse: EtcdResponse{Txn: &TxnResponse{Results: []EtcdOperationResult{result}}, Revision: revision}}
}
func failedResponse(err error) EtcdNonDeterministicResponse {
@ -432,19 +432,19 @@ func unknownResponse(revision int64) EtcdNonDeterministicResponse {
}
func putRequest(key, value string) EtcdRequest {
return EtcdRequest{Type: Txn, Txn: &TxnRequest{Ops: []EtcdOperation{{Type: Put, Key: key, Value: ToValueOrHash(value)}}}}
return EtcdRequest{Type: Txn, Txn: &TxnRequest{OperationsOnSuccess: []EtcdOperation{{Type: Put, Key: key, Value: ToValueOrHash(value)}}}}
}
func putResponse(revision int64) EtcdNonDeterministicResponse {
return EtcdNonDeterministicResponse{EtcdResponse: EtcdResponse{Txn: &TxnResponse{OpsResult: []EtcdOperationResult{{}}}, Revision: revision}}
return EtcdNonDeterministicResponse{EtcdResponse: EtcdResponse{Txn: &TxnResponse{Results: []EtcdOperationResult{{}}}, Revision: revision}}
}
func deleteRequest(key string) EtcdRequest {
return EtcdRequest{Type: Txn, Txn: &TxnRequest{Ops: []EtcdOperation{{Type: Delete, Key: key}}}}
return EtcdRequest{Type: Txn, Txn: &TxnRequest{OperationsOnSuccess: []EtcdOperation{{Type: Delete, Key: key}}}}
}
func deleteResponse(deleted int64, revision int64) EtcdNonDeterministicResponse {
return EtcdNonDeterministicResponse{EtcdResponse: EtcdResponse{Txn: &TxnResponse{OpsResult: []EtcdOperationResult{{Deleted: deleted}}}, Revision: revision}}
return EtcdNonDeterministicResponse{EtcdResponse: EtcdResponse{Txn: &TxnResponse{Results: []EtcdOperationResult{{Deleted: deleted}}}, Revision: revision}}
}
func compareRevisionAndDeleteRequest(key string, expectedRevision int64) EtcdRequest {
@ -472,15 +472,15 @@ func compareRevisionAndDeleteResponse(succeeded bool, deleted, revision int64) E
}
func txnRequest(conds []EtcdCondition, onSuccess []EtcdOperation) EtcdRequest {
return EtcdRequest{Type: Txn, Txn: &TxnRequest{Conds: conds, Ops: onSuccess}}
return EtcdRequest{Type: Txn, Txn: &TxnRequest{Conditions: conds, OperationsOnSuccess: onSuccess}}
}
func txnResponse(result []EtcdOperationResult, succeeded bool, revision int64) EtcdNonDeterministicResponse {
return EtcdNonDeterministicResponse{EtcdResponse: EtcdResponse{Txn: &TxnResponse{OpsResult: result, TxnResult: !succeeded}, Revision: revision}}
return EtcdNonDeterministicResponse{EtcdResponse: EtcdResponse{Txn: &TxnResponse{Results: result, Failure: !succeeded}, Revision: revision}}
}
func putWithLeaseRequest(key, value string, leaseID int64) EtcdRequest {
return EtcdRequest{Type: Txn, Txn: &TxnRequest{Ops: []EtcdOperation{{Type: Put, Key: key, Value: ToValueOrHash(value), LeaseID: leaseID}}}}
return EtcdRequest{Type: Txn, Txn: &TxnRequest{OperationsOnSuccess: []EtcdOperation{{Type: Put, Key: key, Value: ToValueOrHash(value), LeaseID: leaseID}}}}
}
func leaseGrantRequest(leaseID int64) EtcdRequest {

View File

@ -318,7 +318,7 @@ func lastOperationObservedInWatch(operations []porcupine.Operation, watchEvents
}
func matchWatchEvent(request *model.TxnRequest, watchEvents map[model.EtcdOperation]watchEvent) *watchEvent {
for _, etcdOp := range request.Ops {
for _, etcdOp := range request.OperationsOnSuccess {
if etcdOp.Type == model.Put {
// Remove LeaseID which is not exposed in watch.
event, ok := watchEvents[model.EtcdOperation{
@ -335,7 +335,7 @@ func matchWatchEvent(request *model.TxnRequest, watchEvents map[model.EtcdOperat
}
func hasNonUniqueWriteOperation(request *model.TxnRequest) bool {
for _, etcdOp := range request.Ops {
for _, etcdOp := range request.OperationsOnSuccess {
if etcdOp.Type == model.Put || etcdOp.Type == model.Delete {
return true
}
@ -344,7 +344,7 @@ func hasNonUniqueWriteOperation(request *model.TxnRequest) bool {
}
func hasUniqueWriteOperation(request *model.TxnRequest) bool {
for _, etcdOp := range request.Ops {
for _, etcdOp := range request.OperationsOnSuccess {
if etcdOp.Type == model.Put {
return true
}