init
This commit is contained in:
121
comet/group_test.go
Normal file
121
comet/group_test.go
Normal file
@@ -0,0 +1,121 @@
|
||||
package comet
|
||||
|
||||
import (
|
||||
"strconv"
|
||||
"sync/atomic"
|
||||
"testing"
|
||||
"time"
|
||||
)
|
||||
|
||||
func TestGroup_Put(t *testing.T) {
|
||||
//one channel
|
||||
var gid int32 = 0
|
||||
ch := NewChannel(10, 10)
|
||||
//one groups
|
||||
{
|
||||
g := NewGroup(strconv.Itoa(int(atomic.AddInt32(&gid, 1))))
|
||||
for i := 0; i < 10; i++ {
|
||||
go func() {
|
||||
for {
|
||||
err := g.Put(ch)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
}
|
||||
}()
|
||||
}
|
||||
}
|
||||
|
||||
//many groups
|
||||
{
|
||||
for i := 0; i < 10; i++ {
|
||||
g := NewGroup(strconv.Itoa(int(atomic.AddInt32(&gid, 1))))
|
||||
go func() {
|
||||
for {
|
||||
err := g.Put(ch)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
}
|
||||
}()
|
||||
}
|
||||
}
|
||||
|
||||
time.Sleep(10 * time.Second)
|
||||
}
|
||||
|
||||
func TestGroup_Del(t *testing.T) {
|
||||
//one channel
|
||||
var gid int32 = 0
|
||||
//var lc sync.RWMutex
|
||||
var groups = make(map[int32]*Group)
|
||||
ch := NewChannel(10, 10)
|
||||
//init
|
||||
for i := 0; i < 10; i++ {
|
||||
g := NewGroup(strconv.Itoa(int(atomic.AddInt32(&gid, 1))))
|
||||
groups[gid] = g
|
||||
}
|
||||
gid = 0
|
||||
|
||||
go func() {
|
||||
for _, g := range groups {
|
||||
err := g.Put(ch)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
}
|
||||
}()
|
||||
|
||||
go func() {
|
||||
for _, g := range groups {
|
||||
g.Del(ch)
|
||||
}
|
||||
}()
|
||||
time.Sleep(10 * time.Second)
|
||||
}
|
||||
|
||||
func TestGroup_Del2(t *testing.T) {
|
||||
//one channel
|
||||
var gid int32 = 0
|
||||
//var lc sync.RWMutex
|
||||
var groups = make(map[int32]*Group)
|
||||
ch := NewChannel(10, 10)
|
||||
//init
|
||||
for i := 0; i < 10; i++ {
|
||||
g := NewGroup(strconv.Itoa(int(atomic.AddInt32(&gid, 1))))
|
||||
groups[gid] = g
|
||||
}
|
||||
gid = 0
|
||||
|
||||
go func() {
|
||||
for _, g := range groups {
|
||||
err := g.Put(ch)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
}
|
||||
}()
|
||||
|
||||
go func() {
|
||||
for _, g := range groups {
|
||||
g.Del(ch)
|
||||
}
|
||||
}()
|
||||
time.Sleep(10 * time.Second)
|
||||
}
|
||||
|
||||
func convertAddress(addr string) string {
|
||||
if len(addr) == 0 {
|
||||
return addr
|
||||
}
|
||||
switch addr[0] {
|
||||
case 'g':
|
||||
return addr[7:]
|
||||
default:
|
||||
return addr
|
||||
}
|
||||
}
|
||||
|
||||
func Test_convertAddress(t *testing.T) {
|
||||
t.Log(convertAddress("grpc://172.16.101.107:3109"))
|
||||
}
|
||||
Reference in New Issue
Block a user