(t *testing.T)
| 969 | } |
| 970 | |
| 971 | func TestConcurrentGetSet(t *testing.T) { |
| 972 | kms.Unittest = true |
| 973 | utils.RemoveAll(testStorePath + "*") |
| 974 | kms.ResetBucket() |
| 975 | |
| 976 | x, _ := InitConsistent(testStorePath, new(KMSStorage), false) |
| 977 | defer utils.RemoveAll(testStorePath + "*") |
| 978 | x.Set([]Node{NewNodeFromString("0000"), NewNodeFromString("1111"), NewNodeFromString("2222"), NewNodeFromString("3333"), NewNodeFromString("4444")}) |
| 979 | |
| 980 | var wg sync.WaitGroup |
| 981 | for i := 0; i < 10; i++ { |
| 982 | wg.Add(1) |
| 983 | go func() { |
| 984 | for i := 0; i < 100; i++ { |
| 985 | x.Set([]Node{NewNodeFromString("0000"), NewNodeFromString("1111"), NewNodeFromString("2222"), NewNodeFromString("3333"), NewNodeFromString("4444")}) |
| 986 | time.Sleep(time.Duration(rand.Intn(10)) * time.Millisecond) |
| 987 | x.Set([]Node{NewNodeFromString("5555"), NewNodeFromString("6666"), NewNodeFromString("7777")}) |
| 988 | time.Sleep(time.Duration(rand.Intn(10)) * time.Millisecond) |
| 989 | } |
| 990 | wg.Done() |
| 991 | }() |
| 992 | } |
| 993 | |
| 994 | for i := 0; i < 100; i++ { |
| 995 | wg.Add(1) |
| 996 | go func() { |
| 997 | for i := 0; i < 100; i++ { |
| 998 | a, err := x.GetNeighbor("111111") |
| 999 | if err != nil { |
| 1000 | t.Error(err) |
| 1001 | } |
| 1002 | if a.ID != "5555" && a.ID != "3333" { |
| 1003 | t.Errorf("got %v, expected 5555 or 3333", a) |
| 1004 | } |
| 1005 | time.Sleep(time.Duration(rand.Intn(10)) * time.Millisecond) |
| 1006 | } |
| 1007 | wg.Done() |
| 1008 | }() |
| 1009 | } |
| 1010 | wg.Wait() |
| 1011 | } |
nothing calls this directly
no test coverage detected