| /* | |
| Copyright 2018 Google LLC | |
| Licensed under the Apache License, Version 2.0 (the "License"); | |
| you may not use this file except in compliance with the License. | |
| You may obtain a copy of the License at | |
| http://www.apache.org/licenses/LICENSE-2.0 | |
| Unless required by applicable law or agreed to in writing, software | |
| distributed under the License is distributed on an "AS IS" BASIS, | |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| See the License for the specific language governing permissions and | |
| limitations under the License. | |
| */ | |
| package spanner | |
| import ( | |
| "math/big" | |
| "strings" | |
| "cloud.google.com/go/internal/testutil" | |
| "github.com/google/go-cmp/cmp" | |
| ) | |
| // TODO(deklerk): move this to internal/testutil | |
| func testEqual(a, b interface{}) bool { | |
| return testutil.Equal(a, b, | |
| cmp.AllowUnexported(TimestampBound{}, Error{}, TransactionOutcomeUnknownError{}, | |
| Mutation{}, Row{}, Partition{}, BatchReadOnlyTransactionID{}, big.Rat{}, big.Int{}), | |
| cmp.FilterPath(func(path cmp.Path) bool { | |
| // Ignore Error.state, Error.sizeCache, and Error.unknownFields | |
| if strings.HasSuffix(path.GoString(), ".err.(*status.Error).state") { | |
| return true | |
| } | |
| if strings.HasSuffix(path.GoString(), ".err.(*status.Error).sizeCache") { | |
| return true | |
| } | |
| if strings.HasSuffix(path.GoString(), ".err.(*status.Error).unknownFields") { | |
| return true | |
| } | |
| if strings.HasSuffix(path.GoString(), ".err.(*status.Error).e") { | |
| return true | |
| } | |
| if strings.Contains(path.GoString(), "{*status.Error}.state") { | |
| return true | |
| } | |
| if strings.Contains(path.GoString(), "{*status.Error}.sizeCache") { | |
| return true | |
| } | |
| if strings.Contains(path.GoString(), "{*status.Error}.unknownFields") { | |
| return true | |
| } | |
| if strings.Contains(path.GoString(), "{*status.Error}.e") { | |
| return true | |
| } | |
| if strings.Contains(path.GoString(), "{*status.Error}.s") { | |
| return true | |
| } | |
| if strings.Contains(path.GoString(), "(*status.Error).s") { | |
| return true | |
| } | |
| if strings.Contains(path.GoString(), "{*spanner.Error}.err") { | |
| return true | |
| } | |
| return false | |
| }, cmp.Ignore())) | |
| } |