diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 18:45:59 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 18:45:59 +0000 |
commit | 19fcec84d8d7d21e796c7624e521b60d28ee21ed (patch) | |
tree | 42d26aa27d1e3f7c0b8bd3fd14e7d7082f5008dc /src/jaegertracing/thrift/lib/go/test/tests/thrifttest_handler.go | |
parent | Initial commit. (diff) | |
download | ceph-upstream.tar.xz ceph-upstream.zip |
Adding upstream version 16.2.11+ds.upstream/16.2.11+dsupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r-- | src/jaegertracing/thrift/lib/go/test/tests/thrifttest_handler.go | 210 |
1 files changed, 210 insertions, 0 deletions
diff --git a/src/jaegertracing/thrift/lib/go/test/tests/thrifttest_handler.go b/src/jaegertracing/thrift/lib/go/test/tests/thrifttest_handler.go new file mode 100644 index 000000000..31b9ee23e --- /dev/null +++ b/src/jaegertracing/thrift/lib/go/test/tests/thrifttest_handler.go @@ -0,0 +1,210 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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 tests + +import ( + "context" + "errors" + "thrift" + "thrifttest" + "time" +) + +type SecondServiceHandler struct { +} + +func NewSecondServiceHandler() *SecondServiceHandler { + return &SecondServiceHandler{} +} + +func (p *SecondServiceHandler) BlahBlah(ctx context.Context) (err error) { + return nil +} + +func (p *SecondServiceHandler) SecondtestString(ctx context.Context, thing string) (r string, err error) { + return thing, nil +} + +type ThriftTestHandler struct { +} + +func NewThriftTestHandler() *ThriftTestHandler { + return &ThriftTestHandler{} +} + +func (p *ThriftTestHandler) TestVoid(ctx context.Context) (err error) { + return nil +} + +func (p *ThriftTestHandler) TestString(ctx context.Context, thing string) (r string, err error) { + return thing, nil +} + +func (p *ThriftTestHandler) TestBool(ctx context.Context, thing bool) (r bool, err error) { + return thing, nil +} + +func (p *ThriftTestHandler) TestByte(ctx context.Context, thing int8) (r int8, err error) { + return thing, nil +} + +func (p *ThriftTestHandler) TestI32(ctx context.Context, thing int32) (r int32, err error) { + return thing, nil +} + +func (p *ThriftTestHandler) TestI64(ctx context.Context, thing int64) (r int64, err error) { + return thing, nil +} + +func (p *ThriftTestHandler) TestDouble(ctx context.Context, thing float64) (r float64, err error) { + return thing, nil +} + +func (p *ThriftTestHandler) TestBinary(ctx context.Context, thing []byte) (r []byte, err error) { + return thing, nil +} + +func (p *ThriftTestHandler) TestStruct(ctx context.Context, thing *thrifttest.Xtruct) (r *thrifttest.Xtruct, err error) { + return thing, nil +} + +func (p *ThriftTestHandler) TestNest(ctx context.Context, thing *thrifttest.Xtruct2) (r *thrifttest.Xtruct2, err error) { + return thing, nil +} + +func (p *ThriftTestHandler) TestMap(ctx context.Context, thing map[int32]int32) (r map[int32]int32, err error) { + return thing, nil +} + +func (p *ThriftTestHandler) TestStringMap(ctx context.Context, thing map[string]string) (r map[string]string, err error) { + return thing, nil +} + +func (p *ThriftTestHandler) TestSet(ctx context.Context, thing []int32) (r []int32, err error) { + return thing, nil +} + +func (p *ThriftTestHandler) TestList(ctx context.Context, thing []int32) (r []int32, err error) { + return thing, nil +} + +func (p *ThriftTestHandler) TestEnum(ctx context.Context, thing thrifttest.Numberz) (r thrifttest.Numberz, err error) { + return thing, nil +} + +func (p *ThriftTestHandler) TestTypedef(ctx context.Context, thing thrifttest.UserId) (r thrifttest.UserId, err error) { + return thing, nil +} + +func (p *ThriftTestHandler) TestMapMap(ctx context.Context, hello int32) (r map[int32]map[int32]int32, err error) { + r = make(map[int32]map[int32]int32) + pos := make(map[int32]int32) + neg := make(map[int32]int32) + + for i := int32(1); i < 5; i++ { + pos[i] = i + neg[-i] = -i + } + r[4] = pos + r[-4] = neg + + return r, nil +} + +func (p *ThriftTestHandler) TestInsanity(ctx context.Context, argument *thrifttest.Insanity) (r map[thrifttest.UserId]map[thrifttest.Numberz]*thrifttest.Insanity, err error) { + hello := thrifttest.NewXtruct() + hello.StringThing = "Hello2" + hello.ByteThing = 2 + hello.I32Thing = 2 + hello.I64Thing = 2 + + goodbye := thrifttest.NewXtruct() + goodbye.StringThing = "Goodbye4" + goodbye.ByteThing = 4 + goodbye.I32Thing = 4 + goodbye.I64Thing = 4 + + crazy := thrifttest.NewInsanity() + crazy.UserMap = make(map[thrifttest.Numberz]thrifttest.UserId) + crazy.UserMap[thrifttest.Numberz_EIGHT] = 8 + crazy.UserMap[thrifttest.Numberz_FIVE] = 5 + crazy.Xtructs = []*thrifttest.Xtruct{goodbye, hello} + + first_map := make(map[thrifttest.Numberz]*thrifttest.Insanity) + second_map := make(map[thrifttest.Numberz]*thrifttest.Insanity) + + first_map[thrifttest.Numberz_TWO] = crazy + first_map[thrifttest.Numberz_THREE] = crazy + + looney := thrifttest.NewInsanity() + second_map[thrifttest.Numberz_SIX] = looney + + var insane = make(map[thrifttest.UserId]map[thrifttest.Numberz]*thrifttest.Insanity) + insane[1] = first_map + insane[2] = second_map + + return insane, nil +} + +func (p *ThriftTestHandler) TestMulti(ctx context.Context, arg0 int8, arg1 int32, arg2 int64, arg3 map[int16]string, arg4 thrifttest.Numberz, arg5 thrifttest.UserId) (r *thrifttest.Xtruct, err error) { + r = thrifttest.NewXtruct() + r.StringThing = "Hello2" + r.ByteThing = arg0 + r.I32Thing = arg1 + r.I64Thing = arg2 + return r, nil +} + +func (p *ThriftTestHandler) TestException(ctx context.Context, arg string) (err error) { + if arg == "Xception" { + x := thrifttest.NewXception() + x.ErrorCode = 1001 + x.Message = arg + return x + } else if arg == "TException" { + return thrift.TException(errors.New(arg)) + } else { + return nil + } +} + +func (p *ThriftTestHandler) TestMultiException(ctx context.Context, arg0 string, arg1 string) (r *thrifttest.Xtruct, err error) { + if arg0 == "Xception" { + x := thrifttest.NewXception() + x.ErrorCode = 1001 + x.Message = "This is an Xception" + return nil, x + } else if arg0 == "Xception2" { + x2 := thrifttest.NewXception2() + x2.ErrorCode = 2002 + x2.StructThing = thrifttest.NewXtruct() + x2.StructThing.StringThing = "This is an Xception2" + return nil, x2 + } + + res := thrifttest.NewXtruct() + res.StringThing = arg1 + return res, nil +} + +func (p *ThriftTestHandler) TestOneway(ctx context.Context, secondsToSleep int32) (err error) { + time.Sleep(time.Second * time.Duration(secondsToSleep)) + return nil +} |