(b *testing.B)
| 53 | } |
| 54 | |
| 55 | func setupBenchmarkChainRequest(b *testing.B) (r []*types.Request) { |
| 56 | // Setup query requests |
| 57 | var ( |
| 58 | sel = `SELECT v1, v2, v3 FROM bench WHERE k=?` |
| 59 | ins = `INSERT INTO bench VALUES (?, ?, ?, ?)` |
| 60 | priv *ca.PrivateKey |
| 61 | src = make([][]interface{}, benchmarkNewKeyLength) |
| 62 | err error |
| 63 | ) |
| 64 | if priv, err = kms.GetLocalPrivateKey(); err != nil { |
| 65 | b.Fatalf("failed to setup bench environment: %v", err) |
| 66 | } |
| 67 | r = make([]*types.Request, benchmarkMaxKey) |
| 68 | // Read query key space [0, n-1] |
| 69 | for i := 0; i < benchmarkReservedKeyLength; i++ { |
| 70 | r[i] = buildRequest(types.ReadQuery, []types.Query{ |
| 71 | buildQuery(sel, i+benchmarkReservedKeyOffset), |
| 72 | }) |
| 73 | if err = r[i].Sign(priv); err != nil { |
| 74 | b.Fatalf("failed to setup bench environment: %v", err) |
| 75 | } |
| 76 | } |
| 77 | // Write query key space [n, 2n-1] |
| 78 | for i := range src { |
| 79 | var vals [benchmarkVNum][benchmarkVLen]byte |
| 80 | src[i] = make([]interface{}, benchmarkVNum+1) |
| 81 | src[i][0] = i + benchmarkNewKeyOffset |
| 82 | for j := range vals { |
| 83 | rand.Read(vals[j][:]) |
| 84 | src[i][j+1] = string(vals[j][:]) |
| 85 | } |
| 86 | } |
| 87 | for i := 0; i < benchmarkNewKeyLength; i++ { |
| 88 | r[i+benchmarkNewKeyOffset] = buildRequest(types.WriteQuery, []types.Query{ |
| 89 | buildQuery(ins, src[i]...), |
| 90 | }) |
| 91 | if err = r[i+benchmarkNewKeyOffset].Sign(priv); err != nil { |
| 92 | b.Fatalf("Failed to setup bench environment: %v", err) |
| 93 | } |
| 94 | } |
| 95 | return |
| 96 | } |
| 97 | |
| 98 | func setupBenchmarkChain(b *testing.B) (c *Chain) { |
| 99 | var ( |
no test coverage detected