request_test.go 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. // Copyright 2012-present Oliver Eilhard. All rights reserved.
  2. // Use of this source code is governed by a MIT-license.
  3. // See http://olivere.mit-license.org/license.txt for details.
  4. package elastic
  5. import "testing"
  6. var testReq *Request // used as a temporary variable to avoid compiler optimizations in tests/benchmarks
  7. func BenchmarkRequestSetBodyString(b *testing.B) {
  8. req, err := NewRequest("GET", "/")
  9. if err != nil {
  10. b.Fatal(err)
  11. }
  12. for i := 0; i < b.N; i++ {
  13. body := `{"query":{"match_all":{}}}`
  14. err = req.SetBody(body, false)
  15. if err != nil {
  16. b.Fatal(err)
  17. }
  18. }
  19. testReq = req
  20. }
  21. func BenchmarkRequestSetBodyStringGzip(b *testing.B) {
  22. req, err := NewRequest("GET", "/")
  23. if err != nil {
  24. b.Fatal(err)
  25. }
  26. for i := 0; i < b.N; i++ {
  27. body := `{"query":{"match_all":{}}}`
  28. err = req.SetBody(body, true)
  29. if err != nil {
  30. b.Fatal(err)
  31. }
  32. }
  33. testReq = req
  34. }
  35. func BenchmarkRequestSetBodyBytes(b *testing.B) {
  36. req, err := NewRequest("GET", "/")
  37. if err != nil {
  38. b.Fatal(err)
  39. }
  40. for i := 0; i < b.N; i++ {
  41. body := []byte(`{"query":{"match_all":{}}}`)
  42. err = req.SetBody(body, false)
  43. if err != nil {
  44. b.Fatal(err)
  45. }
  46. }
  47. testReq = req
  48. }
  49. func BenchmarkRequestSetBodyBytesGzip(b *testing.B) {
  50. req, err := NewRequest("GET", "/")
  51. if err != nil {
  52. b.Fatal(err)
  53. }
  54. for i := 0; i < b.N; i++ {
  55. body := []byte(`{"query":{"match_all":{}}}`)
  56. err = req.SetBody(body, true)
  57. if err != nil {
  58. b.Fatal(err)
  59. }
  60. }
  61. testReq = req
  62. }
  63. func BenchmarkRequestSetBodyMap(b *testing.B) {
  64. req, err := NewRequest("GET", "/")
  65. if err != nil {
  66. b.Fatal(err)
  67. }
  68. for i := 0; i < b.N; i++ {
  69. body := map[string]interface{}{
  70. "query": map[string]interface{}{
  71. "match_all": map[string]interface{}{},
  72. },
  73. }
  74. err = req.SetBody(body, false)
  75. if err != nil {
  76. b.Fatal(err)
  77. }
  78. }
  79. testReq = req
  80. }
  81. func BenchmarkRequestSetBodyMapGzip(b *testing.B) {
  82. req, err := NewRequest("GET", "/")
  83. if err != nil {
  84. b.Fatal(err)
  85. }
  86. for i := 0; i < b.N; i++ {
  87. body := map[string]interface{}{
  88. "query": map[string]interface{}{
  89. "match_all": map[string]interface{}{},
  90. },
  91. }
  92. err = req.SetBody(body, true)
  93. if err != nil {
  94. b.Fatal(err)
  95. }
  96. }
  97. testReq = req
  98. }