mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
tests/robustness: Improve naming of Txn fields
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
This commit is contained in:
parent
9a922091ed
commit
831ce4c3cf
@ -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, ", ")
|
||||
}
|
||||
|
@ -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 {
|
||||
|
@ -393,7 +393,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 {
|
||||
@ -417,7 +417,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 {
|
||||
@ -429,19 +429,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 {
|
||||
@ -469,15 +469,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 {
|
||||
|
@ -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
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user