예제 #1
0
파일: main.go 프로젝트: yanzay/bankgo
func main() {
	flag.Parse()
	s, err := common.NewServer(*flAddr)
	if err != nil {
		log.Fatal(err)
	}
	log.Printf("run rpc server")
	err = s.Run()
	if err != nil {
		log.Fatal(err)
	}
}
예제 #2
0
func TestClientGet(t *testing.T) {
	var client *BalanceStorageClient

	addr := "127.0.0.1:17090"
	server, err := common.NewServer(addr)
	if err != nil {
		log.Fatal(err)
	}
	go func() {
		if err = server.Run(); err != nil {
			log.Fatalf("server run err: %s", err)
		}
	}()
	for i := 0; i < 50; i++ {
		time.Sleep(time.Millisecond * 100)
		client, err = Connect(addr)
		if err != nil {
			continue
		}
	}
	if err != nil {
		log.Fatalf("client connect err: %s", err)
	} else {
		log.Printf("connected")
	}

	value, err := client.IncrementValue(1, 10)
	if err != nil {
		t.Fatal(err)
	}
	value, err = client.IncrementValue(1, -20)
	if err != nil {
		t.Fatal(err)
	}
	if value != 90 {
		t.Fatalf("balance not equals to 90: %d", value)
	}
	t.Logf("balance tested")
}
예제 #3
0
func TestMain(m *testing.M) {
	server, err := rpcserver.NewServer(RpcAddr)
	if err != nil {
		log.Fatalf("rpc init err: %s", err)
	}
	go func() {
		if err := server.Run(); err != nil {
			log.Fatalf("rpc run err: %s", err)
		}
	}()
	log.Printf("rpc runned")
	app := httpserver.App{}
	if err = app.Init(RpcAddr); err != nil {
		log.Fatalf("http init error: %s", err)
	}
	go func() {
		if err := app.Run(HttpAddr); err != nil {
			log.Fatalf("http run error: %s", err)
		}
	}()
	log.Printf("http runned")
	time.Sleep(time.Second)
	m.Run()
}