aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/github.com/aws/smithy-go/encoding/httpbinding/shared_test.go
diff options
context:
space:
mode:
authorvitalyisaev <vitalyisaev@ydb.tech>2023-12-12 21:55:07 +0300
committervitalyisaev <vitalyisaev@ydb.tech>2023-12-12 22:25:10 +0300
commit4967f99474a4040ba150eb04995de06342252718 (patch)
treec9c118836513a8fab6e9fcfb25be5d404338bca7 /vendor/github.com/aws/smithy-go/encoding/httpbinding/shared_test.go
parent2ce9cccb9b0bdd4cd7a3491dc5cbf8687cda51de (diff)
downloadydb-4967f99474a4040ba150eb04995de06342252718.tar.gz
YQ Connector: prepare code base for S3 integration
1. Кодовая база Коннектора переписана с помощью Go дженериков так, чтобы добавление нового источника данных (в частности S3 + csv) максимально переиспользовало имеющийся код (чтобы сохранялась логика нарезания на блоки данных, учёт трафика и пр.) 2. API Connector расширено для работы с S3, но ещё пока не протестировано.
Diffstat (limited to 'vendor/github.com/aws/smithy-go/encoding/httpbinding/shared_test.go')
-rw-r--r--vendor/github.com/aws/smithy-go/encoding/httpbinding/shared_test.go36
1 files changed, 36 insertions, 0 deletions
diff --git a/vendor/github.com/aws/smithy-go/encoding/httpbinding/shared_test.go b/vendor/github.com/aws/smithy-go/encoding/httpbinding/shared_test.go
new file mode 100644
index 0000000000..2b7518e1c7
--- /dev/null
+++ b/vendor/github.com/aws/smithy-go/encoding/httpbinding/shared_test.go
@@ -0,0 +1,36 @@
+package httpbinding
+
+import (
+ "fmt"
+ "reflect"
+)
+
+func reflectCall(funcValue reflect.Value, args []interface{}) error {
+ argValues := make([]reflect.Value, len(args))
+
+ for i, v := range args {
+ value := reflect.ValueOf(v)
+ argValues[i] = value
+ }
+
+ retValues := funcValue.Call(argValues)
+ if len(retValues) > 0 {
+ errValue := retValues[0]
+
+ if typeName := errValue.Type().Name(); typeName != "error" {
+ panic(fmt.Sprintf("expected first return argument to be error but got %v", typeName))
+ }
+
+ if errValue.IsNil() {
+ return nil
+ }
+
+ if err, ok := errValue.Interface().(error); ok {
+ return err
+ }
+
+ panic(fmt.Sprintf("expected %v to return error type, but got %v", funcValue.Type().String(), retValues[0].Type().String()))
+ }
+
+ return nil
+}