rfuzz 0.8 → 0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. data/Rakefile +1 -1
  2. data/doc/rdoc/classes/RFuzz.html +1 -1
  3. data/doc/rdoc/classes/RFuzz/Browser.html +15 -15
  4. data/doc/rdoc/classes/RFuzz/Browser.src/M000084.html +12 -10
  5. data/doc/rdoc/classes/RFuzz/Browser.src/M000085.html +10 -11
  6. data/doc/rdoc/classes/RFuzz/Browser.src/M000086.html +24 -0
  7. data/doc/rdoc/classes/RFuzz/HttpClient.html +72 -64
  8. data/doc/rdoc/classes/RFuzz/HttpClient.src/M000020.html +12 -21
  9. data/doc/rdoc/classes/RFuzz/HttpClient.src/M000021.html +21 -15
  10. data/doc/rdoc/classes/RFuzz/HttpClient.src/M000022.html +15 -17
  11. data/doc/rdoc/classes/RFuzz/HttpClient.src/M000023.html +17 -22
  12. data/doc/rdoc/classes/RFuzz/HttpClient.src/M000024.html +22 -9
  13. data/doc/rdoc/classes/RFuzz/HttpClient.src/M000025.html +9 -31
  14. data/doc/rdoc/classes/RFuzz/HttpClient.src/M000026.html +31 -25
  15. data/doc/rdoc/classes/RFuzz/HttpClient.src/M000027.html +25 -13
  16. data/doc/rdoc/classes/RFuzz/HttpClient.src/M000028.html +13 -21
  17. data/doc/rdoc/classes/RFuzz/HttpClient.src/M000029.html +21 -5
  18. data/doc/rdoc/classes/RFuzz/HttpClient.src/M000030.html +5 -13
  19. data/doc/rdoc/classes/RFuzz/HttpClient.src/M000031.html +26 -0
  20. data/doc/rdoc/classes/RFuzz/HttpResponse.html +15 -15
  21. data/doc/rdoc/classes/RFuzz/HttpResponse.src/M000032.html +9 -5
  22. data/doc/rdoc/classes/RFuzz/HttpResponse.src/M000033.html +5 -5
  23. data/doc/rdoc/classes/RFuzz/HttpResponse.src/M000034.html +18 -0
  24. data/doc/rdoc/classes/RFuzz/Notifier.html +36 -36
  25. data/doc/rdoc/classes/RFuzz/Notifier.src/M000059.html +4 -4
  26. data/doc/rdoc/classes/RFuzz/Notifier.src/M000060.html +4 -4
  27. data/doc/rdoc/classes/RFuzz/Notifier.src/M000061.html +4 -4
  28. data/doc/rdoc/classes/RFuzz/Notifier.src/M000062.html +4 -4
  29. data/doc/rdoc/classes/RFuzz/Notifier.src/M000063.html +4 -4
  30. data/doc/rdoc/classes/RFuzz/Notifier.src/M000064.html +4 -4
  31. data/doc/rdoc/classes/RFuzz/Notifier.src/{M000058.html → M000065.html} +4 -4
  32. data/doc/rdoc/classes/RFuzz/PushBackIO.html +55 -40
  33. data/doc/rdoc/classes/RFuzz/PushBackIO.src/M000010.html +2 -1
  34. data/doc/rdoc/classes/RFuzz/PushBackIO.src/M000011.html +6 -5
  35. data/doc/rdoc/classes/RFuzz/PushBackIO.src/M000012.html +8 -6
  36. data/doc/rdoc/classes/RFuzz/PushBackIO.src/M000013.html +7 -5
  37. data/doc/rdoc/classes/RFuzz/PushBackIO.src/M000014.html +6 -31
  38. data/doc/rdoc/classes/RFuzz/PushBackIO.src/M000015.html +32 -5
  39. data/doc/rdoc/classes/RFuzz/PushBackIO.src/M000016.html +6 -5
  40. data/doc/rdoc/classes/RFuzz/PushBackIO.src/M000017.html +6 -5
  41. data/doc/rdoc/classes/RFuzz/PushBackIO.src/M000018.html +5 -9
  42. data/doc/rdoc/classes/RFuzz/PushBackIO.src/M000019.html +22 -0
  43. data/doc/rdoc/classes/RFuzz/RandomGenerator.html +62 -62
  44. data/doc/rdoc/classes/RFuzz/RandomGenerator.src/M000047.html +8 -10
  45. data/doc/rdoc/classes/RFuzz/RandomGenerator.src/M000048.html +23 -0
  46. data/doc/rdoc/classes/RFuzz/RandomGenerator.src/M000051.html +9 -7
  47. data/doc/rdoc/classes/RFuzz/RandomGenerator.src/M000052.html +7 -9
  48. data/doc/rdoc/classes/RFuzz/RandomGenerator.src/M000053.html +9 -7
  49. data/doc/rdoc/classes/RFuzz/RandomGenerator.src/M000054.html +7 -5
  50. data/doc/rdoc/classes/RFuzz/RandomGenerator.src/M000055.html +5 -5
  51. data/doc/rdoc/classes/RFuzz/RandomGenerator.src/M000056.html +5 -9
  52. data/doc/rdoc/classes/RFuzz/RandomGenerator.src/M000057.html +9 -5
  53. data/doc/rdoc/classes/RFuzz/RandomGenerator.src/M000058.html +18 -0
  54. data/doc/rdoc/classes/RFuzz/Sampler.html +60 -60
  55. data/doc/rdoc/classes/RFuzz/Sampler.src/M000072.html +6 -10
  56. data/doc/rdoc/classes/RFuzz/Sampler.src/M000073.html +10 -13
  57. data/doc/rdoc/classes/RFuzz/Sampler.src/M000074.html +13 -5
  58. data/doc/rdoc/classes/RFuzz/Sampler.src/M000075.html +5 -5
  59. data/doc/rdoc/classes/RFuzz/Sampler.src/M000076.html +5 -5
  60. data/doc/rdoc/classes/RFuzz/Sampler.src/M000077.html +5 -5
  61. data/doc/rdoc/classes/RFuzz/Sampler.src/M000078.html +5 -6
  62. data/doc/rdoc/classes/RFuzz/Sampler.src/M000079.html +6 -5
  63. data/doc/rdoc/classes/RFuzz/Sampler.src/M000080.html +5 -10
  64. data/doc/rdoc/classes/RFuzz/Sampler.src/M000081.html +10 -5
  65. data/doc/rdoc/classes/RFuzz/Sampler.src/M000082.html +5 -7
  66. data/doc/rdoc/classes/RFuzz/Sampler.src/M000083.html +20 -0
  67. data/doc/rdoc/classes/RFuzz/Session.html +63 -63
  68. data/doc/rdoc/classes/RFuzz/Session.src/M000035.html +18 -5
  69. data/doc/rdoc/classes/RFuzz/Session.src/M000036.html +5 -5
  70. data/doc/rdoc/classes/RFuzz/Session.src/M000037.html +5 -21
  71. data/doc/rdoc/classes/RFuzz/Session.src/M000038.html +21 -6
  72. data/doc/rdoc/classes/RFuzz/Session.src/M000039.html +6 -6
  73. data/doc/rdoc/classes/RFuzz/Session.src/M000040.html +6 -13
  74. data/doc/rdoc/classes/RFuzz/Session.src/M000041.html +13 -16
  75. data/doc/rdoc/classes/RFuzz/Session.src/M000042.html +16 -6
  76. data/doc/rdoc/classes/RFuzz/Session.src/M000043.html +6 -5
  77. data/doc/rdoc/classes/RFuzz/Session.src/M000044.html +5 -5
  78. data/doc/rdoc/classes/RFuzz/Session.src/M000045.html +5 -10
  79. data/doc/rdoc/classes/RFuzz/Session.src/M000046.html +23 -0
  80. data/doc/rdoc/classes/RFuzz/StatsTracker.html +32 -32
  81. data/doc/rdoc/classes/RFuzz/StatsTracker.src/M000066.html +6 -6
  82. data/doc/rdoc/classes/RFuzz/StatsTracker.src/M000067.html +6 -5
  83. data/doc/rdoc/classes/RFuzz/StatsTracker.src/M000068.html +5 -5
  84. data/doc/rdoc/classes/RFuzz/StatsTracker.src/M000069.html +5 -15
  85. data/doc/rdoc/classes/RFuzz/StatsTracker.src/M000070.html +15 -5
  86. data/doc/rdoc/classes/RFuzz/StatsTracker.src/{M000065.html → M000071.html} +5 -6
  87. data/doc/rdoc/created.rid +1 -1
  88. data/doc/rdoc/files/lib/rfuzz/client_rb.html +1 -1
  89. data/doc/rdoc/files/lib/rfuzz/pushbackio_rb.html +1 -1
  90. data/doc/rdoc/files/lib/rfuzz/session_rb.html +1 -1
  91. data/doc/rdoc/fr_method_index.html +76 -75
  92. data/examples/kill_routes.rb +5 -4
  93. data/examples/mongrel_test_suite/test/rails/put.rb +14 -7
  94. data/examples/random_sockets.rb +37 -0
  95. data/examples/randomizer.rb +19 -0
  96. data/ext/http11_client/http11_parser.c +33 -34
  97. data/lib/rfuzz/client.rb +1 -1
  98. data/lib/rfuzz/pushbackio.rb +16 -2
  99. data/lib/rfuzz/session.rb +1 -1
  100. metadata +14 -11
  101. data/doc/rdoc/classes/RFuzz/Browser.src/M000083.html +0 -25
  102. data/doc/rdoc/classes/RFuzz/HttpClient.src/M000019.html +0 -25
  103. data/doc/rdoc/classes/RFuzz/HttpResponse.src/M000031.html +0 -22
  104. data/doc/rdoc/classes/RFuzz/RandomGenerator.src/M000046.html +0 -21
  105. data/doc/rdoc/classes/RFuzz/RandomGenerator.src/M000050.html +0 -22
  106. data/doc/rdoc/classes/RFuzz/Sampler.src/M000071.html +0 -19
  107. data/doc/rdoc/classes/RFuzz/Session.src/M000034.html +0 -31
@@ -5,15 +5,15 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>mark (RFuzz::StatsTracker)</title>
8
+ <title>new (RFuzz::StatsTracker)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
10
  <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre> <span class="ruby-comment cmt"># File lib/rfuzz/stats.rb, line 128</span>
14
- 128: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">mark</span>(<span class="ruby-identifier">event</span>)
15
- 129: <span class="ruby-ivar">@stats</span>[<span class="ruby-identifier">event</span>] <span class="ruby-operator">||=</span> <span class="ruby-constant">RFuzz</span><span class="ruby-operator">::</span><span class="ruby-constant">Sampler</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">event</span>)
16
- 130: <span class="ruby-ivar">@stats</span>[<span class="ruby-identifier">event</span>].<span class="ruby-identifier">mark</span>
17
- 131: <span class="ruby-keyword kw">end</span></pre>
13
+ <pre> <span class="ruby-comment cmt"># File lib/rfuzz/stats.rb, line 123</span>
14
+ 123: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>
15
+ 124: <span class="ruby-ivar">@stats</span> = {}
16
+ 125: <span class="ruby-ivar">@error_count</span> = <span class="ruby-value">0</span>
17
+ 126: <span class="ruby-keyword kw">end</span></pre>
18
18
  </body>
19
19
  </html>
@@ -5,14 +5,15 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>sample (RFuzz::StatsTracker)</title>
8
+ <title>mark (RFuzz::StatsTracker)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
10
  <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre> <span class="ruby-comment cmt"># File lib/rfuzz/stats.rb, line 133</span>
14
- 133: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sample</span>(<span class="ruby-identifier">event</span>)
15
- 134: <span class="ruby-ivar">@stats</span>[<span class="ruby-identifier">event</span>].<span class="ruby-identifier">tick</span>
16
- 135: <span class="ruby-keyword kw">end</span></pre>
13
+ <pre> <span class="ruby-comment cmt"># File lib/rfuzz/stats.rb, line 128</span>
14
+ 128: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">mark</span>(<span class="ruby-identifier">event</span>)
15
+ 129: <span class="ruby-ivar">@stats</span>[<span class="ruby-identifier">event</span>] <span class="ruby-operator">||=</span> <span class="ruby-constant">RFuzz</span><span class="ruby-operator">::</span><span class="ruby-constant">Sampler</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">event</span>)
16
+ 130: <span class="ruby-ivar">@stats</span>[<span class="ruby-identifier">event</span>].<span class="ruby-identifier">mark</span>
17
+ 131: <span class="ruby-keyword kw">end</span></pre>
17
18
  </body>
18
19
  </html>
@@ -5,14 +5,14 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>reset (RFuzz::StatsTracker)</title>
8
+ <title>sample (RFuzz::StatsTracker)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
10
  <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre> <span class="ruby-comment cmt"># File lib/rfuzz/stats.rb, line 137</span>
14
- 137: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">reset</span>
15
- 138: <span class="ruby-ivar">@stats</span>.<span class="ruby-identifier">each</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">e</span>,<span class="ruby-identifier">s</span><span class="ruby-operator">|</span> <span class="ruby-identifier">s</span>.<span class="ruby-identifier">reset</span> }
16
- 139: <span class="ruby-keyword kw">end</span></pre>
13
+ <pre> <span class="ruby-comment cmt"># File lib/rfuzz/stats.rb, line 133</span>
14
+ 133: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sample</span>(<span class="ruby-identifier">event</span>)
15
+ 134: <span class="ruby-ivar">@stats</span>[<span class="ruby-identifier">event</span>].<span class="ruby-identifier">tick</span>
16
+ 135: <span class="ruby-keyword kw">end</span></pre>
17
17
  </body>
18
18
  </html>
@@ -5,24 +5,14 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>method_missing (RFuzz::StatsTracker)</title>
8
+ <title>reset (RFuzz::StatsTracker)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
10
  <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre> <span class="ruby-comment cmt"># File lib/rfuzz/stats.rb, line 141</span>
14
- 141: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">method_missing</span>(<span class="ruby-identifier">event</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
15
- 142: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>]
16
- 143: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:begins</span>
17
- 144: <span class="ruby-identifier">mark</span>(<span class="ruby-identifier">:request</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">event</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">:connect</span>
18
- 145: <span class="ruby-identifier">mark</span>(<span class="ruby-identifier">event</span>)
19
- 146: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:ends</span>
20
- 147: <span class="ruby-identifier">sample</span>(<span class="ruby-identifier">:request</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">event</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">:close</span>
21
- 148: <span class="ruby-identifier">sample</span>(<span class="ruby-identifier">event</span>)
22
- 149: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:error</span>
23
- 150: <span class="ruby-identifier">sample</span>(<span class="ruby-identifier">:request</span>)
24
- 151: <span class="ruby-ivar">@error_count</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
25
- 152: <span class="ruby-keyword kw">end</span>
26
- 153: <span class="ruby-keyword kw">end</span></pre>
13
+ <pre> <span class="ruby-comment cmt"># File lib/rfuzz/stats.rb, line 137</span>
14
+ 137: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">reset</span>
15
+ 138: <span class="ruby-ivar">@stats</span>.<span class="ruby-identifier">each</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">e</span>,<span class="ruby-identifier">s</span><span class="ruby-operator">|</span> <span class="ruby-identifier">s</span>.<span class="ruby-identifier">reset</span> }
16
+ 139: <span class="ruby-keyword kw">end</span></pre>
27
17
  </body>
28
18
  </html>
@@ -5,14 +5,24 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>to_s (RFuzz::StatsTracker)</title>
8
+ <title>method_missing (RFuzz::StatsTracker)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
10
  <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre> <span class="ruby-comment cmt"># File lib/rfuzz/stats.rb, line 155</span>
14
- 155: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span>
15
- 156: <span class="ruby-node">&quot;#{@stats.values.join(&quot;\n&quot;)}\nErrors: #@error_count&quot;</span>
16
- 157: <span class="ruby-keyword kw">end</span></pre>
13
+ <pre> <span class="ruby-comment cmt"># File lib/rfuzz/stats.rb, line 141</span>
14
+ 141: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">method_missing</span>(<span class="ruby-identifier">event</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
15
+ 142: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">args</span>[<span class="ruby-value">0</span>]
16
+ 143: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:begins</span>
17
+ 144: <span class="ruby-identifier">mark</span>(<span class="ruby-identifier">:request</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">event</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">:connect</span>
18
+ 145: <span class="ruby-identifier">mark</span>(<span class="ruby-identifier">event</span>)
19
+ 146: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:ends</span>
20
+ 147: <span class="ruby-identifier">sample</span>(<span class="ruby-identifier">:request</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">event</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">:close</span>
21
+ 148: <span class="ruby-identifier">sample</span>(<span class="ruby-identifier">event</span>)
22
+ 149: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:error</span>
23
+ 150: <span class="ruby-identifier">sample</span>(<span class="ruby-identifier">:request</span>)
24
+ 151: <span class="ruby-ivar">@error_count</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
25
+ 152: <span class="ruby-keyword kw">end</span>
26
+ 153: <span class="ruby-keyword kw">end</span></pre>
17
27
  </body>
18
28
  </html>
@@ -5,15 +5,14 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>new (RFuzz::StatsTracker)</title>
8
+ <title>to_s (RFuzz::StatsTracker)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
10
  <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre> <span class="ruby-comment cmt"># File lib/rfuzz/stats.rb, line 123</span>
14
- 123: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>
15
- 124: <span class="ruby-ivar">@stats</span> = {}
16
- 125: <span class="ruby-ivar">@error_count</span> = <span class="ruby-value">0</span>
17
- 126: <span class="ruby-keyword kw">end</span></pre>
13
+ <pre> <span class="ruby-comment cmt"># File lib/rfuzz/stats.rb, line 155</span>
14
+ 155: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span>
15
+ 156: <span class="ruby-node">&quot;#{@stats.values.join(&quot;\n&quot;)}\nErrors: #@error_count&quot;</span>
16
+ 157: <span class="ruby-keyword kw">end</span></pre>
18
17
  </body>
19
18
  </html>
@@ -1 +1 @@
1
- Sun Aug 06 16:49:07 PDT 2006
1
+ Mon Sep 18 02:59:13 PDT 2006
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Sun Aug 06 16:48:59 PDT 2006</td>
59
+ <td>Tue Aug 29 16:28:38 PDT 2006</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Sun Aug 06 16:47:53 PDT 2006</td>
59
+ <td>Mon Sep 18 02:56:25 PDT 2006</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Sun Jul 30 01:17:18 PDT 2006</td>
59
+ <td>Mon Aug 21 05:36:38 PDT 2006</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -20,21 +20,21 @@
20
20
  <div id="index">
21
21
  <h1 class="section-bar">Methods</h1>
22
22
  <div id="index-entries">
23
- <a href="classes/RFuzz/RandomGenerator.html#M000052">base64 (RFuzz::RandomGenerator)</a><br />
24
- <a href="classes/RFuzz/HttpClient.html#M000020">build_request (RFuzz::HttpClient)</a><br />
25
- <a href="classes/RFuzz/RandomGenerator.html#M000053">byte_array (RFuzz::RandomGenerator)</a><br />
26
- <a href="classes/RFuzz/RandomGenerator.html#M000054">bytes (RFuzz::RandomGenerator)</a><br />
27
- <a href="classes/RFuzz/HttpResponse.html#M000031">chunk_size (RFuzz::HttpResponse)</a><br />
28
- <a href="classes/RFuzz/HttpResponse.html#M000033">chunked_encoding? (RFuzz::HttpResponse)</a><br />
29
- <a href="classes/RFuzz/PushBackIO.html#M000017">close (RFuzz::PushBackIO)</a><br />
30
- <a href="classes/RFuzz/Notifier.html#M000063">close (RFuzz::Notifier)</a><br />
31
- <a href="classes/RFuzz/Notifier.html#M000058">connect (RFuzz::Notifier)</a><br />
32
- <a href="classes/RFuzz/Session.html#M000039">count (RFuzz::Session)</a><br />
33
- <a href="classes/RFuzz/Session.html#M000045">count_errors (RFuzz::Session)</a><br />
34
- <a href="classes/RFuzz/Session.html#M000041">counts_to_a (RFuzz::Session)</a><br />
35
- <a href="classes/RFuzz/Session.html#M000036">cur_count (RFuzz::Session)</a><br />
36
- <a href="classes/RFuzz/Session.html#M000035">cur_run (RFuzz::Session)</a><br />
37
- <a href="classes/RFuzz/Sampler.html#M000074">dump (RFuzz::Sampler)</a><br />
23
+ <a href="classes/RFuzz/RandomGenerator.html#M000053">base64 (RFuzz::RandomGenerator)</a><br />
24
+ <a href="classes/RFuzz/HttpClient.html#M000021">build_request (RFuzz::HttpClient)</a><br />
25
+ <a href="classes/RFuzz/RandomGenerator.html#M000054">byte_array (RFuzz::RandomGenerator)</a><br />
26
+ <a href="classes/RFuzz/RandomGenerator.html#M000055">bytes (RFuzz::RandomGenerator)</a><br />
27
+ <a href="classes/RFuzz/HttpResponse.html#M000032">chunk_size (RFuzz::HttpResponse)</a><br />
28
+ <a href="classes/RFuzz/HttpResponse.html#M000034">chunked_encoding? (RFuzz::HttpResponse)</a><br />
29
+ <a href="classes/RFuzz/PushBackIO.html#M000018">close (RFuzz::PushBackIO)</a><br />
30
+ <a href="classes/RFuzz/Notifier.html#M000064">close (RFuzz::Notifier)</a><br />
31
+ <a href="classes/RFuzz/Notifier.html#M000059">connect (RFuzz::Notifier)</a><br />
32
+ <a href="classes/RFuzz/Session.html#M000040">count (RFuzz::Session)</a><br />
33
+ <a href="classes/RFuzz/Session.html#M000046">count_errors (RFuzz::Session)</a><br />
34
+ <a href="classes/RFuzz/Session.html#M000042">counts_to_a (RFuzz::Session)</a><br />
35
+ <a href="classes/RFuzz/Session.html#M000037">cur_count (RFuzz::Session)</a><br />
36
+ <a href="classes/RFuzz/Session.html#M000036">cur_run (RFuzz::Session)</a><br />
37
+ <a href="classes/RFuzz/Sampler.html#M000075">dump (RFuzz::Sampler)</a><br />
38
38
  <a href="classes/RFuzz/HttpEncoding.html#M000001">encode_cookies (RFuzz::HttpEncoding)</a><br />
39
39
  <a href="classes/RFuzz/HttpEncoding.html#M000002">encode_field (RFuzz::HttpEncoding)</a><br />
40
40
  <a href="classes/RFuzz/HttpEncoding.html#M000003">encode_headers (RFuzz::HttpEncoding)</a><br />
@@ -42,69 +42,70 @@
42
42
  <a href="classes/RFuzz/HttpEncoding.html#M000004">encode_param (RFuzz::HttpEncoding)</a><br />
43
43
  <a href="classes/RFuzz/HttpEncoding.html#M000005">encode_query (RFuzz::HttpEncoding)</a><br />
44
44
  <a href="classes/RFuzz/HttpEncoding.html#M000007">escape (RFuzz::HttpEncoding)</a><br />
45
- <a href="classes/RFuzz/RandomGenerator.html#M000057">floats (RFuzz::RandomGenerator)</a><br />
46
- <a href="classes/RFuzz/PushBackIO.html#M000015">flush (RFuzz::PushBackIO)</a><br />
47
- <a href="classes/RFuzz/RandomGenerator.html#M000047">hash_of (RFuzz::RandomGenerator)</a><br />
48
- <a href="classes/RFuzz/RandomGenerator.html#M000049">headers (RFuzz::RandomGenerator)</a><br />
49
- <a href="classes/RFuzz/RandomGenerator.html#M000056">ints (RFuzz::RandomGenerator)</a><br />
50
- <a href="classes/RFuzz/Sampler.html#M000077">keys (RFuzz::Sampler)</a><br />
51
- <a href="classes/RFuzz/HttpResponse.html#M000032">last_chunk? (RFuzz::HttpResponse)</a><br />
52
- <a href="classes/RFuzz/Browser.html#M000085">links (RFuzz::Browser)</a><br />
53
- <a href="classes/RFuzz/StatsTracker.html#M000066">mark (RFuzz::StatsTracker)</a><br />
54
- <a href="classes/RFuzz/Sampler.html#M000081">mark (RFuzz::Sampler)</a><br />
55
- <a href="classes/RFuzz/Sampler.html#M000079">mean (RFuzz::Sampler)</a><br />
56
- <a href="classes/RFuzz/StatsTracker.html#M000069">method_missing (RFuzz::StatsTracker)</a><br />
57
- <a href="classes/RFuzz/HttpClient.html#M000027">method_missing (RFuzz::HttpClient)</a><br />
58
- <a href="classes/RFuzz/Session.html#M000034">new (RFuzz::Session)</a><br />
59
- <a href="classes/RFuzz/Sampler.html#M000071">new (RFuzz::Sampler)</a><br />
60
- <a href="classes/RFuzz/Browser.html#M000083">new (RFuzz::Browser)</a><br />
61
- <a href="classes/RFuzz/HttpClient.html#M000019">new (RFuzz::HttpClient)</a><br />
62
- <a href="classes/RFuzz/StatsTracker.html#M000065">new (RFuzz::StatsTracker)</a><br />
45
+ <a href="classes/RFuzz/RandomGenerator.html#M000058">floats (RFuzz::RandomGenerator)</a><br />
46
+ <a href="classes/RFuzz/PushBackIO.html#M000016">flush (RFuzz::PushBackIO)</a><br />
47
+ <a href="classes/RFuzz/RandomGenerator.html#M000048">hash_of (RFuzz::RandomGenerator)</a><br />
48
+ <a href="classes/RFuzz/RandomGenerator.html#M000050">headers (RFuzz::RandomGenerator)</a><br />
49
+ <a href="classes/RFuzz/RandomGenerator.html#M000057">ints (RFuzz::RandomGenerator)</a><br />
50
+ <a href="classes/RFuzz/Sampler.html#M000078">keys (RFuzz::Sampler)</a><br />
51
+ <a href="classes/RFuzz/HttpResponse.html#M000033">last_chunk? (RFuzz::HttpResponse)</a><br />
52
+ <a href="classes/RFuzz/Browser.html#M000086">links (RFuzz::Browser)</a><br />
53
+ <a href="classes/RFuzz/StatsTracker.html#M000067">mark (RFuzz::StatsTracker)</a><br />
54
+ <a href="classes/RFuzz/Sampler.html#M000082">mark (RFuzz::Sampler)</a><br />
55
+ <a href="classes/RFuzz/Sampler.html#M000080">mean (RFuzz::Sampler)</a><br />
56
+ <a href="classes/RFuzz/HttpClient.html#M000028">method_missing (RFuzz::HttpClient)</a><br />
57
+ <a href="classes/RFuzz/StatsTracker.html#M000070">method_missing (RFuzz::StatsTracker)</a><br />
58
+ <a href="classes/RFuzz/HttpClient.html#M000020">new (RFuzz::HttpClient)</a><br />
59
+ <a href="classes/RFuzz/Session.html#M000035">new (RFuzz::Session)</a><br />
60
+ <a href="classes/RFuzz/Sampler.html#M000072">new (RFuzz::Sampler)</a><br />
61
+ <a href="classes/RFuzz/Browser.html#M000084">new (RFuzz::Browser)</a><br />
62
+ <a href="classes/RFuzz/RandomGenerator.html#M000047">new (RFuzz::RandomGenerator)</a><br />
63
+ <a href="classes/RFuzz/StatsTracker.html#M000066">new (RFuzz::StatsTracker)</a><br />
63
64
  <a href="classes/RFuzz/PushBackIO.html#M000010">new (RFuzz::PushBackIO)</a><br />
64
- <a href="classes/RFuzz/RandomGenerator.html#M000046">new (RFuzz::RandomGenerator)</a><br />
65
- <a href="classes/RFuzz/HttpClient.html#M000030">notify (RFuzz::HttpClient)</a><br />
66
- <a href="classes/RFuzz/RandomGenerator.html#M000055">num (RFuzz::RandomGenerator)</a><br />
67
- <a href="classes/RFuzz/PushBackIO.html#M000012">pop (RFuzz::PushBackIO)</a><br />
68
- <a href="classes/RFuzz/PushBackIO.html#M000018">protect (RFuzz::PushBackIO)</a><br />
69
- <a href="classes/RFuzz/PushBackIO.html#M000011">push (RFuzz::PushBackIO)</a><br />
70
- <a href="classes/RFuzz/RandomGenerator.html#M000048">queries (RFuzz::RandomGenerator)</a><br />
65
+ <a href="classes/RFuzz/HttpClient.html#M000031">notify (RFuzz::HttpClient)</a><br />
66
+ <a href="classes/RFuzz/RandomGenerator.html#M000056">num (RFuzz::RandomGenerator)</a><br />
67
+ <a href="classes/RFuzz/PushBackIO.html#M000013">pop (RFuzz::PushBackIO)</a><br />
68
+ <a href="classes/RFuzz/PushBackIO.html#M000019">protect (RFuzz::PushBackIO)</a><br />
69
+ <a href="classes/RFuzz/PushBackIO.html#M000012">push (RFuzz::PushBackIO)</a><br />
70
+ <a href="classes/RFuzz/RandomGenerator.html#M000049">queries (RFuzz::RandomGenerator)</a><br />
71
71
  <a href="classes/RFuzz/HttpEncoding.html#M000009">query_parse (RFuzz::HttpEncoding)</a><br />
72
- <a href="classes/RFuzz/PushBackIO.html#M000014">read (RFuzz::PushBackIO)</a><br />
73
- <a href="classes/RFuzz/Notifier.html#M000062">read_body (RFuzz::Notifier)</a><br />
74
- <a href="classes/RFuzz/Notifier.html#M000064">read_chunk (RFuzz::Notifier)</a><br />
75
- <a href="classes/RFuzz/HttpClient.html#M000023">read_chunked_body (RFuzz::HttpClient)</a><br />
76
- <a href="classes/RFuzz/HttpClient.html#M000022">read_chunked_header (RFuzz::HttpClient)</a><br />
77
- <a href="classes/RFuzz/Notifier.html#M000061">read_header (RFuzz::Notifier)</a><br />
78
- <a href="classes/RFuzz/HttpClient.html#M000021">read_parsed_header (RFuzz::HttpClient)</a><br />
79
- <a href="classes/RFuzz/HttpClient.html#M000025">read_response (RFuzz::HttpClient)</a><br />
80
- <a href="classes/RFuzz/HttpClient.html#M000028">redirect (RFuzz::HttpClient)</a><br />
81
- <a href="classes/RFuzz/Notifier.html#M000060">redirect (RFuzz::Notifier)</a><br />
82
- <a href="classes/RFuzz/Sampler.html#M000072">reset (RFuzz::Sampler)</a><br />
83
- <a href="classes/RFuzz/HttpClient.html#M000029">reset (RFuzz::HttpClient)</a><br />
84
- <a href="classes/RFuzz/PushBackIO.html#M000013">reset (RFuzz::PushBackIO)</a><br />
85
- <a href="classes/RFuzz/StatsTracker.html#M000068">reset (RFuzz::StatsTracker)</a><br />
86
- <a href="classes/RFuzz/Session.html#M000037">run (RFuzz::Session)</a><br />
87
- <a href="classes/RFuzz/Session.html#M000040">runs_to_a (RFuzz::Session)</a><br />
88
- <a href="classes/RFuzz/StatsTracker.html#M000067">sample (RFuzz::StatsTracker)</a><br />
89
- <a href="classes/RFuzz/Session.html#M000038">sample (RFuzz::Session)</a><br />
90
- <a href="classes/RFuzz/Sampler.html#M000073">sample (RFuzz::Sampler)</a><br />
91
- <a href="classes/RFuzz/Sampler.html#M000080">sd (RFuzz::Sampler)</a><br />
92
- <a href="classes/RFuzz/Notifier.html#M000059">send_request (RFuzz::Notifier)</a><br />
93
- <a href="classes/RFuzz/HttpClient.html#M000026">send_request (RFuzz::HttpClient)</a><br />
94
- <a href="classes/RFuzz/Browser.html#M000084">start (RFuzz::Browser)</a><br />
95
- <a href="classes/RFuzz/HttpClient.html#M000024">store_cookies (RFuzz::HttpClient)</a><br />
96
- <a href="classes/RFuzz/Sampler.html#M000082">tick (RFuzz::Sampler)</a><br />
97
- <a href="classes/RFuzz/Sampler.html#M000078">to_hash (RFuzz::Sampler)</a><br />
98
- <a href="classes/RFuzz/Sampler.html#M000075">to_s (RFuzz::Sampler)</a><br />
99
- <a href="classes/RFuzz/StatsTracker.html#M000070">to_s (RFuzz::StatsTracker)</a><br />
100
- <a href="classes/RFuzz/Session.html#M000042">track (RFuzz::Session)</a><br />
72
+ <a href="classes/RFuzz/PushBackIO.html#M000011">random_death (RFuzz::PushBackIO)</a><br />
73
+ <a href="classes/RFuzz/PushBackIO.html#M000015">read (RFuzz::PushBackIO)</a><br />
74
+ <a href="classes/RFuzz/Notifier.html#M000063">read_body (RFuzz::Notifier)</a><br />
75
+ <a href="classes/RFuzz/Notifier.html#M000065">read_chunk (RFuzz::Notifier)</a><br />
76
+ <a href="classes/RFuzz/HttpClient.html#M000024">read_chunked_body (RFuzz::HttpClient)</a><br />
77
+ <a href="classes/RFuzz/HttpClient.html#M000023">read_chunked_header (RFuzz::HttpClient)</a><br />
78
+ <a href="classes/RFuzz/Notifier.html#M000062">read_header (RFuzz::Notifier)</a><br />
79
+ <a href="classes/RFuzz/HttpClient.html#M000022">read_parsed_header (RFuzz::HttpClient)</a><br />
80
+ <a href="classes/RFuzz/HttpClient.html#M000026">read_response (RFuzz::HttpClient)</a><br />
81
+ <a href="classes/RFuzz/HttpClient.html#M000029">redirect (RFuzz::HttpClient)</a><br />
82
+ <a href="classes/RFuzz/Notifier.html#M000061">redirect (RFuzz::Notifier)</a><br />
83
+ <a href="classes/RFuzz/PushBackIO.html#M000014">reset (RFuzz::PushBackIO)</a><br />
84
+ <a href="classes/RFuzz/HttpClient.html#M000030">reset (RFuzz::HttpClient)</a><br />
85
+ <a href="classes/RFuzz/Sampler.html#M000073">reset (RFuzz::Sampler)</a><br />
86
+ <a href="classes/RFuzz/StatsTracker.html#M000069">reset (RFuzz::StatsTracker)</a><br />
87
+ <a href="classes/RFuzz/Session.html#M000038">run (RFuzz::Session)</a><br />
88
+ <a href="classes/RFuzz/Session.html#M000041">runs_to_a (RFuzz::Session)</a><br />
89
+ <a href="classes/RFuzz/Session.html#M000039">sample (RFuzz::Session)</a><br />
90
+ <a href="classes/RFuzz/Sampler.html#M000074">sample (RFuzz::Sampler)</a><br />
91
+ <a href="classes/RFuzz/StatsTracker.html#M000068">sample (RFuzz::StatsTracker)</a><br />
92
+ <a href="classes/RFuzz/Sampler.html#M000081">sd (RFuzz::Sampler)</a><br />
93
+ <a href="classes/RFuzz/Notifier.html#M000060">send_request (RFuzz::Notifier)</a><br />
94
+ <a href="classes/RFuzz/HttpClient.html#M000027">send_request (RFuzz::HttpClient)</a><br />
95
+ <a href="classes/RFuzz/Browser.html#M000085">start (RFuzz::Browser)</a><br />
96
+ <a href="classes/RFuzz/HttpClient.html#M000025">store_cookies (RFuzz::HttpClient)</a><br />
97
+ <a href="classes/RFuzz/Sampler.html#M000083">tick (RFuzz::Sampler)</a><br />
98
+ <a href="classes/RFuzz/Sampler.html#M000079">to_hash (RFuzz::Sampler)</a><br />
99
+ <a href="classes/RFuzz/StatsTracker.html#M000071">to_s (RFuzz::StatsTracker)</a><br />
100
+ <a href="classes/RFuzz/Sampler.html#M000076">to_s (RFuzz::Sampler)</a><br />
101
+ <a href="classes/RFuzz/Session.html#M000043">track (RFuzz::Session)</a><br />
101
102
  <a href="classes/RFuzz/HttpEncoding.html#M000008">unescape (RFuzz::HttpEncoding)</a><br />
102
- <a href="classes/RFuzz/RandomGenerator.html#M000050">uris (RFuzz::RandomGenerator)</a><br />
103
- <a href="classes/RFuzz/Sampler.html#M000076">values (RFuzz::Sampler)</a><br />
104
- <a href="classes/RFuzz/RandomGenerator.html#M000051">words (RFuzz::RandomGenerator)</a><br />
105
- <a href="classes/RFuzz/PushBackIO.html#M000016">write (RFuzz::PushBackIO)</a><br />
106
- <a href="classes/RFuzz/Session.html#M000044">write_counts (RFuzz::Session)</a><br />
107
- <a href="classes/RFuzz/Session.html#M000043">write_runs (RFuzz::Session)</a><br />
103
+ <a href="classes/RFuzz/RandomGenerator.html#M000051">uris (RFuzz::RandomGenerator)</a><br />
104
+ <a href="classes/RFuzz/Sampler.html#M000077">values (RFuzz::Sampler)</a><br />
105
+ <a href="classes/RFuzz/RandomGenerator.html#M000052">words (RFuzz::RandomGenerator)</a><br />
106
+ <a href="classes/RFuzz/PushBackIO.html#M000017">write (RFuzz::PushBackIO)</a><br />
107
+ <a href="classes/RFuzz/Session.html#M000045">write_counts (RFuzz::Session)</a><br />
108
+ <a href="classes/RFuzz/Session.html#M000044">write_runs (RFuzz::Session)</a><br />
108
109
  </div>
109
110
  </div>
110
111
  </body>
@@ -1,10 +1,10 @@
1
1
  # An example of handing tons of nasty URLs to Rails to see what it does.
2
-
2
+ require 'rubygems'
3
3
  require 'rfuzz/session'
4
4
 
5
5
  include RFuzz
6
6
 
7
- s = Session.new :host => "localhost", :port => 3000
7
+ s = Session.new :host => "127.0.0.1", :port => 3000
8
8
  s.run 10, :save_as => ["runs.csv","counts.csv"] do |c,r|
9
9
  len = r.num(90) + 1
10
10
  s.count :len, len
@@ -13,13 +13,14 @@ s.run 10, :save_as => ["runs.csv","counts.csv"] do |c,r|
13
13
  uris.each do |u|
14
14
  s.count_errors(:legal) do
15
15
  # first sample for legal uris
16
- resp = c.get(u)
16
+
17
+ resp = c.get("/sample", :query => {:test => u})
17
18
  s.count resp.http_status
18
19
  end
19
20
 
20
21
  # next sample for illegal uris
21
22
  s.count_errors(:illegal) do
22
- resp = c.get(u * 512)
23
+ resp = c.get("/sample" + u * 5120)
23
24
  s.count resp.http_status
24
25
  end
25
26
  end
@@ -3,23 +3,30 @@ include RFuzz
3
3
 
4
4
  context "PUT Requests" do
5
5
  setup do
6
- @sess = Session.new :host => "localhost", :port => 3000
6
+ @gets = Session.new :host => "localhost", :port => 3000
7
+ @puts = Session.new :host => "localhost", :port => 3000
7
8
  end
8
9
 
9
10
  specify "Should be fast" do
10
- data = @sess.rand.bytes(600)
11
- body = @sess.client.escape(data)
11
+ data = @gets.rand.bytes(600)
12
+ body = @gets.client.escape(data)
12
13
 
13
- @sess.run(10) do |c,r|
14
- 100.times do
14
+ @gets.run(10, :save_as => ["get_runs.csv", "get_counts.csv"]) do |c,r|
15
+ 10.times do
15
16
  get = c.get("/test?data=#{body}")
16
17
  end
17
18
  end
18
19
 
19
- @sess.run(10, :save_as => ["put_runs.csv", "put_counts.csv"]) do |c,r|
20
- 100.times do
20
+ @puts.run(10, :save_as => ["put_runs.csv", "put_counts.csv"]) do |c,r|
21
+ 10.times do
21
22
  put = c.put("/test", :body => data)
22
23
  end
23
24
  end
24
25
  end
26
+
27
+ specify "Query String should allow 0 length" do
28
+ res = @gets.client.get("/test?")
29
+ res.http_status.should_equal "200"
30
+ res.http_body.should_equal "test"
31
+ end
25
32
  end
@@ -0,0 +1,37 @@
1
+
2
+ # An example of handing tons of nasty URLs to Rails to see what it does.
3
+ require 'rubygems'
4
+ require 'rfuzz/session'
5
+ require 'thread'
6
+
7
+ $io_death_count = 7
8
+ threads = []
9
+
10
+ include RFuzz
11
+
12
+ if ARGV.length != 3
13
+ puts "usage: ruby random_sockets.rb <runs> <threads> <uri>"
14
+ end
15
+
16
+ s = Session.new :host => "127.0.0.1", :port => 3000
17
+ s.run 10, :save_as => ["runs.csv","counts.csv"] do |c,r|
18
+
19
+ ARGV[0].to_i.times do
20
+ ARGV[1].to_i.times do |u|
21
+ t = Thread.new do
22
+ s.count_errors(:legal) do
23
+ resp = c.get(ARGV[2])
24
+ s.count resp.http_status
25
+ end
26
+ end
27
+
28
+ t.abort_on_exception = true
29
+ threads << t
30
+ end
31
+
32
+ threads.each {|t| t.join }
33
+
34
+ threads = []
35
+ end
36
+
37
+ end