123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- package server
- import (
- "net/rpc"
- "testing"
- "time"
- )
- const (
- testRPCHost = "localhost:12346"
- )
- var testRPCArgs = &Args{100, 200}
- type Args struct {
- A, B int
- }
- type Arith int
- func (t *Arith) Multiply(args *Args, reply *int) error {
- *reply = args.A * args.B
- return nil
- }
- func validateRPCServer(t *testing.T, addr string, method string) {
- rpccli, err := rpc.Dial("tcp", addr)
- if err != nil {
- t.Fatal(err)
- }
- var reply int
- err = rpccli.Call(method, testRPCArgs, &reply)
- if err != nil {
- t.Fatal(err)
- }
- if reply != testRPCArgs.A*testRPCArgs.B {
- t.Fatalf("rpc test faild, want %d, got %d", testRPCArgs.A*testRPCArgs.B, reply)
- }
- }
- func TestRPCServer(t *testing.T) {
- initLog("test", "debug")
- testRPC := new(Arith)
- err := rpc.Register(testRPC)
- if err != nil {
- t.Fatal(err)
- }
- handler := rpcHandler{}
- svr := &RPCServer{
- TCPServer{
- addr: testRPCHost,
- handler: &handler,
- useTls: false,
- },
- }
- err = svr.Start()
- if err != nil {
- t.Fatal(err)
- }
- time.Sleep(time.Millisecond * 300)
- validateRPCServer(t, testRPCHost, "Arith.Multiply")
- }
|