mirror of
https://github.com/ceph/ceph-csi.git
synced 2024-12-02 19:20:23 +00:00
44 lines
831 B
Go
44 lines
831 B
Go
|
package restful
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"io"
|
||
|
"testing"
|
||
|
)
|
||
|
|
||
|
var uris = []string{}
|
||
|
|
||
|
func setup(container *Container) {
|
||
|
wsCount := 26
|
||
|
rtCount := 26
|
||
|
|
||
|
for i := 0; i < wsCount; i++ {
|
||
|
root := fmt.Sprintf("/%s/{%s}/", string(i+97), string(i+97))
|
||
|
ws := new(WebService).Path(root)
|
||
|
for j := 0; j < rtCount; j++ {
|
||
|
sub := fmt.Sprintf("/%s2/{%s2}", string(j+97), string(j+97))
|
||
|
ws.Route(ws.GET(sub).To(echo))
|
||
|
}
|
||
|
container.Add(ws)
|
||
|
for _, each := range ws.Routes() {
|
||
|
uris = append(uris, "http://bench.com"+each.Path)
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func echo(req *Request, resp *Response) {
|
||
|
io.WriteString(resp.ResponseWriter, "echo")
|
||
|
}
|
||
|
|
||
|
func BenchmarkMany(b *testing.B) {
|
||
|
container := NewContainer()
|
||
|
setup(container)
|
||
|
b.ResetTimer()
|
||
|
for t := 0; t < b.N; t++ {
|
||
|
for _, each := range uris {
|
||
|
// println(each)
|
||
|
sendItTo(each, container)
|
||
|
}
|
||
|
}
|
||
|
}
|