(b *testing.B)
| 198 | } |
| 199 | |
| 200 | func BenchmarkMuxParallel(b *testing.B) { |
| 201 | var bp, s, ms, r = setupBenchmarkMuxParallel(b) |
| 202 | defer teardownBenchmarkMuxParallel(bp.server, s.server) |
| 203 | var benchmarks = []struct { |
| 204 | name string |
| 205 | kg keygen |
| 206 | }{ |
| 207 | { |
| 208 | name: "Write", |
| 209 | kg: newKeyPermKeygen, |
| 210 | }, { |
| 211 | name: "MixRW", |
| 212 | kg: allKeyPermKeygen, |
| 213 | }, |
| 214 | } |
| 215 | for _, bm := range benchmarks { |
| 216 | b.Run(bm.name, func(b *testing.B) { |
| 217 | var ( |
| 218 | counter int32 |
| 219 | c *Chain |
| 220 | ) |
| 221 | |
| 222 | c = setupBenchmarkChain(b) |
| 223 | ms.register(benchmarkDatabaseID, c) |
| 224 | b.ResetTimer() |
| 225 | defer func() { |
| 226 | b.StopTimer() |
| 227 | ms.unregister(benchmarkDatabaseID) |
| 228 | teardownBenchmarkChain(b, c) |
| 229 | }() |
| 230 | |
| 231 | b.RunParallel(func(pb *testing.PB) { |
| 232 | var ( |
| 233 | err error |
| 234 | method = fmt.Sprintf("%s.%s", benchmarkRPCName, "Query") |
| 235 | caller = rpc.NewPersistentCaller(s.node.ID) |
| 236 | ) |
| 237 | for pb.Next() { |
| 238 | if err = caller.Call( |
| 239 | method, &r[bm.kg.next()], &MuxQueryResponse{}, |
| 240 | ); err != nil { |
| 241 | b.Fatalf("failed to execute: %v", err) |
| 242 | } |
| 243 | if atomic.AddInt32(&counter, 1)%benchmarkQueriesPerBlock == 0 { |
| 244 | if err = c.state.commit(); err != nil { |
| 245 | b.Fatalf("failed to commit block: %v", err) |
| 246 | } |
| 247 | } |
| 248 | } |
| 249 | }) |
| 250 | }) |
| 251 | } |
| 252 | } |
| 253 | |
| 254 | func TestMuxService(t *testing.T) { |
| 255 | Convey("test xenomint MuxService", t, func() { |
nothing calls this directly
no test coverage detected