Skip to content

Commit

Permalink
THRIFT-2083 Improve the go lib: Testcase for buffered Transport
Browse files Browse the repository at this point in the history
Patch: Feng Shen
  • Loading branch information
Jens-G committed Jul 26, 2013
1 parent 7d95246 commit 44b19df
Show file tree
Hide file tree
Showing 5 changed files with 64 additions and 7 deletions.
Original file line number Diff line number Diff line change
@@ -1,3 +1,22 @@
/*
* 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 thrift

type TBufferedTransportFactory struct {
Expand Down
29 changes: 29 additions & 0 deletions lib/go/thrift/buffered_transport_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
/*
* 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 thrift

import (
"testing"
)

func TestBufferedTransport(t *testing.T) {
trans := NewTBufferedTransport(NewTMemoryBuffer(), 10240)
TransportTest(t, trans, trans)
}
4 changes: 2 additions & 2 deletions tutorial/go/src/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -69,9 +69,9 @@ func handleClient(client *tutorial.CalculatorClient) (err error) {
return err
}

func runClient(transportFactory thrift.TTransportFactory, protocolFactory thrift.TProtocolFactory) error {
func runClient(transportFactory thrift.TTransportFactory, protocolFactory thrift.TProtocolFactory, addr string) error {
var transport thrift.TTransport
transport, err := thrift.NewTSocket("localhost:9090")
transport, err := thrift.NewTSocket(addr)
if err != nil {
fmt.Println("Error opening socket:", err)
return err
Expand Down
15 changes: 12 additions & 3 deletions tutorial/go/src/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@ func main() {
server := flag.Bool("server", false, "Run server")
protocol := flag.String("P", "binary", "Specify the protocol (binary, compact, simplejson)")
framed := flag.Bool("framed", false, "Use framed transport")
buffered := flag.Bool("buffered", false, "Use buffered transport")
addr := flag.String("addr", "localhost:9090", "Address to listen to")

flag.Parse()

Expand All @@ -55,17 +57,24 @@ func main() {
Usage()
os.Exit(1)
}
transportFactory := thrift.NewTTransportFactory()

var transportFactory thrift.TTransportFactory
if *buffered {
transportFactory = thrift.NewTBufferedTransportFactory(8192)
} else {
transportFactory = thrift.NewTTransportFactory()
}

if *framed {
transportFactory = thrift.NewTFramedTransportFactory(transportFactory)
}

if *server {
if err := runServer(transportFactory, protocolFactory); err != nil {
if err := runServer(transportFactory, protocolFactory, *addr); err != nil {
fmt.Println("error running server:", err)
}
} else {
if err := runClient(transportFactory, protocolFactory); err != nil {
if err := runClient(transportFactory, protocolFactory, *addr); err != nil {
fmt.Println("error running client:", err)
}
}
Expand Down
4 changes: 2 additions & 2 deletions tutorial/go/src/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@ import (
"tutorial"
)

func runServer(transportFactory thrift.TTransportFactory, protocolFactory thrift.TProtocolFactory) error {
transport, err := thrift.NewTServerSocket("localhost:9090")
func runServer(transportFactory thrift.TTransportFactory, protocolFactory thrift.TProtocolFactory, addr string) error {
transport, err := thrift.NewTServerSocket(addr)
if err != nil {
return err
}
Expand Down

0 comments on commit 44b19df

Please sign in to comment.