aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKazuki Yamaguchi <k@rhe.jp>2016-05-08 16:24:40 +0900
committerKazuki Yamaguchi <k@rhe.jp>2016-05-08 16:24:40 +0900
commit71d6dd10857a3d3ea3e58d5debff98d2426775ee (patch)
treecc9f007895e25f457c36b0eb3647a0c0c38c8b89
parent023d9d1d1018c03896914f67c9d87846c3ce081b (diff)
parent5337a2165365b1fd9d49cbd791b0b7960c78647b (diff)
downloadplum-71d6dd10857a3d3ea3e58d5debff98d2426775ee.tar.gz
Merge branch 'topic/fix-coding-style'
* topic/fix-coding-style: style: use $! if possible style: prefer '{ |x|' to '{|x|' readme: add newlines gitignore: remove unneeded things
-rw-r--r--.gitignore15
-rw-r--r--Guardfile2
-rw-r--r--README.md45
-rw-r--r--examples/non_tls_server.rb8
-rw-r--r--examples/static_server.rb8
-rw-r--r--lib/plum/binary_string.rb2
-rw-r--r--lib/plum/client/client_session.rb13
-rw-r--r--lib/plum/client/decoders.rb16
-rw-r--r--lib/plum/client/legacy_client_session.rb10
-rw-r--r--lib/plum/connection.rb4
-rw-r--r--lib/plum/frame.rb4
-rw-r--r--lib/plum/rack/listener.rb12
-rw-r--r--lib/plum/rack/server.rb8
-rw-r--r--lib/plum/rack/thread_pool.rb4
-rw-r--r--lib/plum/server/http_connection.rb4
-rw-r--r--lib/plum/stream.rb4
-rw-r--r--test/plum/connection/test_handle_frame.rb14
-rw-r--r--test/plum/server/test_connection.rb2
-rw-r--r--test/plum/server/test_http_connection.rb2
-rw-r--r--test/plum/stream/test_handle_frame.rb54
-rw-r--r--test/plum/test_binary_string.rb2
-rw-r--r--test/plum/test_connection.rb16
-rw-r--r--test/plum/test_connection_utils.rb6
-rw-r--r--test/plum/test_event_emitter.rb6
-rw-r--r--test/plum/test_flow_control.rb30
-rw-r--r--test/plum/test_stream.rb4
-rw-r--r--test/plum/test_stream_utils.rb2
27 files changed, 151 insertions, 146 deletions
diff --git a/.gitignore b/.gitignore
index a456d3f..9e96c04 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,12 +1,7 @@
-/.bundle/
+/.bundle
/.yardoc
-/.ruby-version
/Gemfile.lock
-/_yardoc/
-/coverage/
-/doc/
-/pkg/
-/spec/reports/
-/tmp/
-.*.sw*
-.*.local
+/coverage
+/doc
+/pkg
+/tmp
diff --git a/Guardfile b/Guardfile
index a0b76d7..9e48349 100644
--- a/Guardfile
+++ b/Guardfile
@@ -3,7 +3,7 @@
guard :minitest, env: { "SKIP_COVERAGE" => true } do
# with Minitest::Unit
watch(%r{^test/(.*)\/?test_(.*)\.rb$})
- watch(%r{^lib/(.*/)?([^/]+)\.rb$}) {|m| ["test/#{m[1]}test_#{m[2]}.rb", "test/#{m[1]}#{m[2]}"] }
+ watch(%r{^lib/(.*/)?([^/]+)\.rb$}) { |m| ["test/#{m[1]}test_#{m[2]}.rb", "test/#{m[1]}#{m[2]}"] }
watch(%r{^test/test_helper\.rb$}) { "test" }
watch(%r{^test/utils/.*\.rb}) { "test" }
end
diff --git a/README.md b/README.md
index de36a33..9d26607 100644
--- a/README.md
+++ b/README.md
@@ -5,27 +5,34 @@ WARNING: Plum is currently under heavy development. You *will* encounter bugs wh
[![Circle CI](https://circleci.com/gh/rhenium/plum.svg?style=svg)](https://circleci.com/gh/rhenium/plum) [![Build Status](https://travis-ci.org/rhenium/plum.png?branch=master)](https://travis-ci.org/rhenium/plum) [![Code Climate](https://codeclimate.com/github/rhenium/plum/badges/gpa.svg)](https://codeclimate.com/github/rhenium/plum) [![Test Coverage](https://codeclimate.com/github/rhenium/plum/badges/coverage.svg)](https://codeclimate.com/github/rhenium/plum/coverage)
+
## Requirements
+
* Ruby 2.3
* OpenSSL 1.0.2 or newer (HTTP/2 requires ALPN)
* Optional:
* [http_parser.rb gem](https://rubygems.org/gems/http_parser.rb) (HTTP/1.x parser; if you use "http" URI scheme)
* [rack gem](https://rubygems.org/gems/rack) (if you use Plum as Rack server)
+
## Installation
-```sh
+
+~~~sh
gem install plum
-```
+~~~
+
## Usage
+
* Documentation: http://www.rubydoc.info/gems/plum
* Some examples are in `examples/`
+
### As a Rack-compatible server
Most existing Rack-based applications should work without modification.
-```ruby
+~~~ruby
# config.ru
App = -> env {
[
@@ -36,20 +43,21 @@ App = -> env {
}
run App
-```
+~~~
You can run it:
-```sh
+~~~sh
% plum -e production -p 8080 --https --cert server.crt --key server.key config.ru
-```
+~~~
NOTE: If `--cert` and `--key` are omitted, a temporary dummy certificate will be generated.
+
### As a HTTP/2 (HTTP/1.x) client library
If the server does't support HTTP/2, `Plum::Client` tries to use HTTP/1.x instead.
-```
+~~~
+-----------------+
|:https option | false
|(default: true) |-------> Try Upgrade from HTTP/1.1
@@ -63,10 +71,12 @@ If the server does't support HTTP/2, `Plum::Client` tries to use HTTP/1.x instea
| "h2"
v
HTTP/2
-```
+~~~
+
##### Sequential request
-```ruby
+
+~~~ruby
client = Plum::Client.start("http2.rhe.jp", user_agent: "nyaan")
res1 = client.get("/", headers: { "accept" => "*/*" }).join
puts res1.body # => "..."
@@ -74,10 +84,12 @@ res2 = client.post("/post", "data").join
puts res2.body # => "..."
client.close
-```
+~~~
+
##### Parallel request
-```ruby
+
+~~~ruby
res1 = res2 = nil
Plum::Client.start("rhe.jp", 443, http2_settings: { max_frame_size: 32768 }) { |client|
res1 = client.get("/")
@@ -86,10 +98,12 @@ Plum::Client.start("rhe.jp", 443, http2_settings: { max_frame_size: 32768 }) { |
} # wait for response(s) and close
p res1.status # => "200"
-```
+~~~
+
##### Download a large file
-```ruby
+
+~~~ruby
Plum::Client.start("http2.rhe.jp", 443, hostname: "assets.rhe.jp") { |client|
client.get("/large") do |res| # called when received response headers
p res.status # => "200"
@@ -100,9 +114,11 @@ Plum::Client.start("http2.rhe.jp", 443, hostname: "assets.rhe.jp") { |client|
}
end
}
-```
+~~~
+
## TODO
+
* **Better API**
* Plum::Client
* PING frame handling
@@ -110,5 +126,6 @@ Plum::Client.start("http2.rhe.jp", 443, hostname: "assets.rhe.jp") { |client|
* Stream Priority support
* Better HTTP/1.x support
+
## License
MIT License
diff --git a/examples/non_tls_server.rb b/examples/non_tls_server.rb
index 6078e80..e481b05 100644
--- a/examples/non_tls_server.rb
+++ b/examples/non_tls_server.rb
@@ -8,7 +8,7 @@ require "cgi"
def log(con, stream, s)
prefix = "[%02x;%02x] " % [con, stream]
if s.is_a?(Enumerable)
- puts s.map {|a| prefix + a.to_s }.join("\n")
+ puts s.map { |a| prefix + a.to_s }.join("\n")
else
puts prefix + s.to_s
end
@@ -21,8 +21,8 @@ loop do
sock = tcp_server.accept
id = sock.fileno
puts "#{id}: accept!"
- rescue => e
- STDERR.puts e
+ rescue
+ STDERR.puts $!
next
end
@@ -59,7 +59,7 @@ loop do
end
stream.on(:headers) do |headers_|
- log(id, stream.id, headers_.map {|name, value| "#{name}: #{value}" })
+ log(id, stream.id, headers_.map { |name, value| "#{name}: #{value}" })
headers = headers_.to_h
end
diff --git a/examples/static_server.rb b/examples/static_server.rb
index e468b7e..d26b91c 100644
--- a/examples/static_server.rb
+++ b/examples/static_server.rb
@@ -14,7 +14,7 @@ end
def log(con, stream, s)
prefix = "[%02x;%02x] " % [con, stream]
if s.is_a?(Enumerable)
- puts s.map {|a| prefix + a.to_s }.join("\n")
+ puts s.map { |a| prefix + a.to_s }.join("\n")
else
puts prefix + s.to_s
end
@@ -39,8 +39,8 @@ loop do
sock = ssl_server.accept
id = sock.io.fileno
puts "#{id}: accept! #{sock.cipher.inspect}"
- rescue => e
- STDERR.puts e
+ rescue
+ STDERR.puts $!
next
end
@@ -77,7 +77,7 @@ loop do
end
stream.on(:headers) do |headers_|
- log(id, stream.id, headers_.map {|name, value| "#{name}: #{value}" })
+ log(id, stream.id, headers_.map { |name, value| "#{name}: #{value}" })
headers = headers_.to_h
end
diff --git a/lib/plum/binary_string.rb b/lib/plum/binary_string.rb
index 43051ef..02b417b 100644
--- a/lib/plum/binary_string.rb
+++ b/lib/plum/binary_string.rb
@@ -66,7 +66,7 @@ module Plum
end
else
Enumerator.new do |y|
- each_byteslice(n) {|ss| y << ss }
+ each_byteslice(n) { |ss| y << ss }
end
# I want to write `enum_for(__method__, n)`!
end
diff --git a/lib/plum/client/client_session.rb b/lib/plum/client/client_session.rb
index 81d2341..88cf15b 100644
--- a/lib/plum/client/client_session.rb
+++ b/lib/plum/client/client_session.rb
@@ -21,8 +21,9 @@ module Plum
def succ
@plum << @socket.readpartial(16384)
- rescue => e
- fail(e)
+ rescue
+ close
+ raise
end
def empty?
@@ -73,15 +74,11 @@ module Plum
end
private
- def fail(exception)
- close
- raise exception
- end
-
def setup_plum
plum = ClientConnection.new(@socket.method(:write), @http2_settings)
plum.on(:connection_error) { |ex|
- fail(ex)
+ close
+ raise ex
}
plum.window_update(@http2_settings[:initial_window_size])
plum
diff --git a/lib/plum/client/decoders.rb b/lib/plum/client/decoders.rb
index e6d72e7..d68f27b 100644
--- a/lib/plum/client/decoders.rb
+++ b/lib/plum/client/decoders.rb
@@ -17,14 +17,14 @@ module Plum
def decode(chunk)
@inflate.inflate(chunk)
- rescue Zlib::Error => e
- raise DecoderError.new("failed to decode chunk", e)
+ rescue Zlib::Error
+ raise DecoderError.new("failed to decode chunk", $!)
end
def finish
@inflate.finish
- rescue Zlib::Error => e
- raise DecoderError.new("failed to finalize", e)
+ rescue Zlib::Error
+ raise DecoderError.new("failed to finalize", $!)
end
end
@@ -35,14 +35,14 @@ module Plum
def decode(chunk)
@stream.inflate(chunk)
- rescue Zlib::Error => e
- raise DecoderError.new("failed to decode chunk", e)
+ rescue Zlib::Error
+ raise DecoderError.new("failed to decode chunk", $!)
end
def finish
@stream.finish
- rescue Zlib::Error => e
- raise DecoderError.new("failed to finalize", e)
+ rescue Zlib::Error
+ raise DecoderError.new("failed to finalize", $!)
end
end
diff --git a/lib/plum/client/legacy_client_session.rb b/lib/plum/client/legacy_client_session.rb
index a12f582..9dea6cd 100644
--- a/lib/plum/client/legacy_client_session.rb
+++ b/lib/plum/client/legacy_client_session.rb
@@ -16,8 +16,9 @@ module Plum
def succ
@parser << @socket.readpartial(16384)
- rescue => e # including HTTP::Parser::Error
- fail(e)
+ rescue # including HTTP::Parser::Error
+ close
+ raise
end
def empty?
@@ -47,11 +48,6 @@ module Plum
end
private
- def fail(exception)
- close
- raise exception
- end
-
def consume_queue
return if @response || @requests.empty?
diff --git a/lib/plum/connection.rb b/lib/plum/connection.rb
index 0268487..0ba5989 100644
--- a/lib/plum/connection.rb
+++ b/lib/plum/connection.rb
@@ -26,8 +26,8 @@ module Plum
def initialize(writer, local_settings = {})
@state = :open
@writer = writer
- @local_settings = Hash.new {|hash, key| DEFAULT_SETTINGS[key] }.merge!(local_settings)
- @remote_settings = Hash.new {|hash, key| DEFAULT_SETTINGS[key] }
+ @local_settings = Hash.new { |hash, key| DEFAULT_SETTINGS[key] }.merge!(local_settings)
+ @remote_settings = Hash.new { |hash, key| DEFAULT_SETTINGS[key] }
@buffer = String.new
@streams = {}
@hpack_decoder = HPACK::Decoder.new(@local_settings[:header_table_size])
diff --git a/lib/plum/frame.rb b/lib/plum/frame.rb
index 93f0a4c..bf61629 100644
--- a/lib/plum/frame.rb
+++ b/lib/plum/frame.rb
@@ -116,8 +116,8 @@ module Plum
def flags
fs = FRAME_FLAGS[type]
[0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80]
- .select {|v| @flags_value & v > 0 }
- .map {|val| fs && fs.key(val) || ("unknown_%02x" % val).to_sym }
+ .select { |v| @flags_value & v > 0 }
+ .map { |val| fs && fs.key(val) || ("unknown_%02x" % val).to_sym }
end
# Sets the frame flags.
diff --git a/lib/plum/rack/listener.rb b/lib/plum/rack/listener.rb
index ac60310..901642e 100644
--- a/lib/plum/rack/listener.rb
+++ b/lib/plum/rack/listener.rb
@@ -41,8 +41,8 @@ module Plum
sess = LegacySession.new(svc, e, sock)
sess.run
rescue Errno::ECONNRESET, Errno::ECONNABORTED, EOFError # closed
- rescue => e
- svc.log_exception(e)
+ rescue
+ svc.log_exception $!
ensure
sock.close
end
@@ -103,8 +103,8 @@ module Plum
sess = LegacySession.new(svc, e, sock)
sess.run
rescue Errno::ECONNRESET, Errno::ECONNABORTED, EOFError # closed
- rescue => e
- svc.log_exception(e)
+ rescue
+ svc.log_exception $!
ensure
sock.close if sock
end
@@ -172,8 +172,8 @@ module Plum
sess = Session.new(svc, sock, plum)
sess.run
rescue Errno::ECONNRESET, Errno::ECONNABORTED, EOFError # closed
- rescue => e
- svc.log_exception(e)
+ rescue
+ svc.log_exception $!
ensure
sock.close if sock
end
diff --git a/lib/plum/rack/server.rb b/lib/plum/rack/server.rb
index 3091246..5ab2e71 100644
--- a/lib/plum/rack/server.rb
+++ b/lib/plum/rack/server.rb
@@ -33,14 +33,14 @@ module Plum
begin
svr.accept(self)
rescue Errno::ECONNRESET, Errno::ECONNABORTED # closed
- rescue => e
- log_exception(e)
+ rescue
+ log_exception $!
end
}
end
rescue Errno::EBADF # closed
- rescue => e
- log_exception(e)
+ rescue
+ log_exception $!
end
end
#}
diff --git a/lib/plum/rack/thread_pool.rb b/lib/plum/rack/thread_pool.rb
index 45ee3ae..68ce2b6 100644
--- a/lib/plum/rack/thread_pool.rb
+++ b/lib/plum/rack/thread_pool.rb
@@ -24,8 +24,8 @@ module Plum
job, err = @jobs.pop
begin
job.call
- rescue => e
- err << e if err
+ rescue
+ err << $! if err
end
end
}
diff --git a/lib/plum/server/http_connection.rb b/lib/plum/server/http_connection.rb
index 0834379..b257137 100644
--- a/lib/plum/server/http_connection.rb
+++ b/lib/plum/server/http_connection.rb
@@ -26,7 +26,7 @@ module Plum
parser = HTTP::Parser.new
parser.on_headers_complete = proc { |_headers|
- headers = _headers.map {|n, v| [n.downcase, v] }.to_h
+ headers = _headers.map { |n, v| [n.downcase, v] }.to_h
}
parser.on_body = proc { |chunk| body << chunk }
parser.on_message_complete = proc { |env|
@@ -69,7 +69,7 @@ module Plum
nheaders = headers.merge({ ":method" => parser.http_method,
":path" => parser.request_url,
":authority" => headers["host"] })
- .reject {|n, v| ["connection", "http2-settings", "upgrade", "host"].include?(n) }
+ .reject { |n, v| ["connection", "http2-settings", "upgrade", "host"].include?(n) }
stream.receive_frame Frame.headers(1, encoder.encode(nheaders), end_headers: true)
stream.receive_frame Frame.data(1, body, end_stream: true)
diff --git a/lib/plum/stream.rb b/lib/plum/stream.rb
index 3cf3ba1..823a41a 100644
--- a/lib/plum/stream.rb
+++ b/lib/plum/stream.rb
@@ -156,8 +156,8 @@ module Plum
begin
decoded_headers = @connection.hpack_decoder.decode(payload)
- rescue => e
- raise RemoteConnectionError.new(:compression_error, e)
+ rescue
+ raise RemoteConnectionError.new(:compression_error, $!)
end
callback(:headers, decoded_headers)
diff --git a/test/plum/connection/test_handle_frame.rb b/test/plum/connection/test_handle_frame.rb
index d1cc54e..704c128 100644
--- a/test/plum/connection/test_handle_frame.rb
+++ b/test/plum/connection/test_handle_frame.rb
@@ -5,7 +5,7 @@ using Plum::BinaryString
class ServerConnectionHandleFrameTest < Minitest::Test
## SETTINGS
def test_server_handle_settings
- open_server_connection {|con|
+ open_server_connection { |con|
assert_equal(4096, con.remote_settings[:header_table_size])
con << Frame.new(type: :settings, stream_id: 0, payload: "\x00\x01\x00\x00\x10\x10").assemble
assert_equal(0x1010, con.remote_settings[:header_table_size])
@@ -13,7 +13,7 @@ class ServerConnectionHandleFrameTest < Minitest::Test
end
def test_server_handle_settings
- open_server_connection {|con|
+ open_server_connection { |con|
assert_no_error {
con << Frame.new(type: :settings, stream_id: 0, flags: [:ack], payload: "").assemble
}
@@ -24,7 +24,7 @@ class ServerConnectionHandleFrameTest < Minitest::Test
end
def test_server_handle_settings_invalid
- open_server_connection {|con|
+ open_server_connection { |con|
assert_no_error {
con << Frame.new(type: :settings, stream_id: 0, payload: "\xff\x01\x00\x00\x10\x10").assemble
}
@@ -33,7 +33,7 @@ class ServerConnectionHandleFrameTest < Minitest::Test
## PING
def test_server_handle_ping
- open_server_connection {|con|
+ open_server_connection { |con|
con << Frame.new(type: :ping, flags: [], stream_id: 0, payload: "AAAAAAAA").assemble
last = sent_frames.last
assert_equal(:ping, last.type)
@@ -43,7 +43,7 @@ class ServerConnectionHandleFrameTest < Minitest::Test
end
def test_server_handle_ping_error
- open_server_connection {|con|
+ open_server_connection { |con|
assert_connection_error(:frame_size_error) {
con << Frame.new(type: :ping, stream_id: 0, payload: "A" * 7).assemble
}
@@ -51,7 +51,7 @@ class ServerConnectionHandleFrameTest < Minitest::Test
end
def test_server_handle_ping_ack
- open_server_connection {|con|
+ open_server_connection { |con|
con << Frame.new(type: :ping, flags: [:ack], stream_id: 0, payload: "A" * 8).assemble
last = sent_frames.last
refute_equal(:ping, last.type) if last
@@ -60,7 +60,7 @@ class ServerConnectionHandleFrameTest < Minitest::Test
## GOAWAY
def test_server_handle_goaway_reply
- open_server_connection {|con|
+ open_server_connection { |con|
assert_no_error {
begin
con << Frame.goaway(1, :stream_closed).assemble
diff --git a/test/plum/server/test_connection.rb b/test/plum/server/test_connection.rb
index 4a45eaa..87e1893 100644
--- a/test/plum/server/test_connection.rb
+++ b/test/plum/server/test_connection.rb
@@ -68,7 +68,7 @@ class HTTPSConnectionNegotiationTest < Minitest::Test
client_thread = Thread.new {
sock = TCPSocket.new("127.0.0.1", LISTEN_PORT)
begin
- ctx = OpenSSL::SSL::SSLContext.new.tap {|ctx|
+ ctx = OpenSSL::SSL::SSLContext.new.tap { |ctx|
ctx.alpn_protocols = ["h2"]
ctx.ciphers = "AES256-GCM-SHA384"
}
diff --git a/test/plum/server/test_http_connection.rb b/test/plum/server/test_http_connection.rb
index 3093d5b..1326deb 100644
--- a/test/plum/server/test_http_connection.rb
+++ b/test/plum/server/test_http_connection.rb
@@ -29,7 +29,7 @@ class HTTPConnectionNegotiationTest < Minitest::Test
io = StringIO.new
con = HTTPServerConnection.new(io.method(:write))
heads = nil
- con.on(:headers) {|_, _h| heads = _h.to_h }
+ con.on(:headers) { |_, _h| heads = _h.to_h }
req = "GET / HTTP/1.1\r\n" <<
"Host: rhe.jp\r\n" <<
"User-Agent: nya\r\n" <<
diff --git a/test/plum/stream/test_handle_frame.rb b/test/plum/stream/test_handle_frame.rb
index b4b4a4c..2c14c26 100644
--- a/test/plum/stream/test_handle_frame.rb
+++ b/test/plum/stream/test_handle_frame.rb
@@ -6,9 +6,9 @@ class StreamHandleFrameTest < Minitest::Test
## DATA
def test_stream_handle_data
payload = "ABC" * 5
- open_new_stream(state: :open) {|stream|
+ open_new_stream(state: :open) { |stream|
data = nil
- stream.connection.on(:data) {|_, _data| data = _data }
+ stream.connection.on(:data) { |_, _data| data = _data }
stream.receive_frame(Frame.new(type: :data, stream_id: stream.id,
flags: [], payload: payload))
assert_equal(payload, data)
@@ -17,9 +17,9 @@ class StreamHandleFrameTest < Minitest::Test
def test_stream_handle_data_padded
payload = "ABC" * 5
- open_new_stream(state: :open) {|stream|
+ open_new_stream(state: :open) { |stream|
data = nil
- stream.connection.on(:data) {|_, _data| data = _data }
+ stream.connection.on(:data) { |_, _data| data = _data }
stream.receive_frame(Frame.new(type: :data, stream_id: stream.id,
flags: [:padded], payload: "".push_uint8(6).push(payload).push("\x00"*6)))
assert_equal(payload, data)
@@ -28,7 +28,7 @@ class StreamHandleFrameTest < Minitest::Test
def test_stream_handle_data_too_long_padding
payload = "ABC" * 5
- open_new_stream(state: :open) {|stream|
+ open_new_stream(state: :open) { |stream|
assert_connection_error(:protocol_error) {
stream.receive_frame(Frame.new(type: :data, stream_id: stream.id,
flags: [:padded], payload: "".push_uint8(100).push(payload).push("\x00"*6)))
@@ -38,7 +38,7 @@ class StreamHandleFrameTest < Minitest::Test
def test_stream_handle_data_end_stream
payload = "ABC" * 5
- open_new_stream(state: :open) {|stream|
+ open_new_stream(state: :open) { |stream|
stream.receive_frame(Frame.new(type: :data, stream_id: stream.id,
flags: [:end_stream], payload: payload))
assert_equal(:half_closed_remote, stream.state)
@@ -47,7 +47,7 @@ class StreamHandleFrameTest < Minitest::Test
def test_stream_handle_data_invalid_state
payload = "ABC" * 5
- open_new_stream(state: :half_closed_remote) {|stream|
+ open_new_stream(state: :half_closed_remote) { |stream|
assert_stream_error(:stream_closed) {
stream.receive_frame(Frame.new(type: :data, stream_id: stream.id,
flags: [:end_stream], payload: payload))
@@ -57,9 +57,9 @@ class StreamHandleFrameTest < Minitest::Test
## HEADERS
def test_stream_handle_headers_single
- open_new_stream {|stream|
+ open_new_stream { |stream|
headers = nil
- stream.connection.on(:headers) {|_, _headers|
+ stream.connection.on(:headers) { |_, _headers|
headers = _headers
}
stream.receive_frame(Frame.new(type: :headers,
@@ -72,10 +72,10 @@ class StreamHandleFrameTest < Minitest::Test
end
def test_stream_handle_headers_continuation
- open_new_stream {|stream|
+ open_new_stream { |stream|
payload = HPACK::Encoder.new(0).encode([[":path", "/"]])
headers = nil
- stream.connection.on(:headers) {|_, _headers|
+ stream.connection.on(:headers) { |_, _headers|
headers = _headers
}
stream.receive_frame(Frame.new(type: :headers,
@@ -93,10 +93,10 @@ class StreamHandleFrameTest < Minitest::Test
end
def test_stream_handle_headers_padded
- open_new_stream {|stream|
+ open_new_stream { |stream|
payload = HPACK::Encoder.new(0).encode([[":path", "/"]])
headers = nil
- stream.connection.on(:headers) {|_, _headers|
+ stream.connection.on(:headers) { |_, _headers|
headers = _headers
}
stream.receive_frame(Frame.new(type: :headers,
@@ -108,7 +108,7 @@ class StreamHandleFrameTest < Minitest::Test
end
def test_stream_handle_headers_too_long_padding
- open_new_stream {|stream|
+ open_new_stream { |stream|
payload = HPACK::Encoder.new(0).encode([[":path", "/"]])
assert_connection_error(:protocol_error) {
stream.receive_frame(Frame.new(type: :headers,
@@ -120,7 +120,7 @@ class StreamHandleFrameTest < Minitest::Test
end
def test_stream_handle_headers_broken
- open_new_stream {|stream|
+ open_new_stream { |stream|
payload = "\x00\x01\x02"
assert_connection_error(:compression_error) {
stream.receive_frame(Frame.new(type: :headers,
@@ -133,17 +133,17 @@ class StreamHandleFrameTest < Minitest::Test
def test_stream_handle_headers_state
_payload = HPACK::Encoder.new(0).encode([[":path", "/"]])
- open_new_stream(state: :reserved_local) {|stream|
+ open_new_stream(state: :reserved_local) { |stream|
assert_connection_error(:protocol_error) {
stream.receive_frame(Frame.new(type: :headers, stream_id: stream.id, flags: [:end_headers, :end_stream], payload: _payload))
}
}
- open_new_stream(state: :closed) {|stream|
+ open_new_stream(state: :closed) { |stream|
assert_connection_error(:stream_closed) {
stream.receive_frame(Frame.new(type: :headers, stream_id: stream.id, flags: [:end_headers, :end_stream], payload: _payload))
}
}
- open_new_stream(state: :half_closed_remote) {|stream|
+ open_new_stream(state: :half_closed_remote) { |stream|
assert_stream_error(:stream_closed) {
stream.receive_frame(Frame.new(type: :headers, stream_id: stream.id, flags: [:end_headers, :end_stream], payload: _payload))
}
@@ -151,12 +151,12 @@ class StreamHandleFrameTest < Minitest::Test
end
def test_stream_handle_headers_priority
- open_server_connection {|con|
+ open_server_connection { |con|
parent = open_new_stream(con)
stream = open_new_stream(con)
headers = nil
- stream.connection.on(:headers) {|_, _headers| headers = _headers }
+ stream.connection.on(:headers) { |_, _headers| headers = _headers }
header_block = HPACK::Encoder.new(0).encode([[":path", "/"]])
payload = "".push_uint32((1 << 31) | parent.id)
.push_uint8(50)
@@ -174,7 +174,7 @@ class StreamHandleFrameTest < Minitest::Test
## PRIORITY
def test_stream_handle_priority
- open_server_connection {|con|
+ open_server_connection { |con|
parent = open_new_stream(con)
stream = open_new_stream(con)
@@ -190,7 +190,7 @@ class StreamHandleFrameTest < Minitest::Test
end
def test_stream_handle_priority_self_depend
- open_server_connection {|con|
+ open_server_connection { |con|
stream = open_new_stream(con)
payload = "".push_uint32((0 << 31) | stream.id).push_uint8(6)
stream.receive_frame(Frame.new(type: :priority,
@@ -203,7 +203,7 @@ class StreamHandleFrameTest < Minitest::Test
end
def test_stream_handle_priority_exclusive
- open_server_connection {|con|
+ open_server_connection { |con|
parent = open_new_stream(con)
stream0 = open_new_stream(con, parent: parent)
stream1 = open_new_stream(con, parent: parent)
@@ -220,7 +220,7 @@ class StreamHandleFrameTest < Minitest::Test
end
def test_stream_handle_frame_size_error
- open_new_stream {|stream|
+ open_new_stream { |stream|
assert_stream_error(:frame_size_error) {
stream.receive_frame(Frame.new(type: :priority,
stream_id: stream.id,
@@ -231,7 +231,7 @@ class StreamHandleFrameTest < Minitest::Test
## RST_STREAM
def test_stream_handle_rst_stream
- open_new_stream(state: :reserved_local) {|stream|
+ open_new_stream(state: :reserved_local) { |stream|
stream.receive_frame(Frame.new(type: :rst_stream,
stream_id: stream.id,
payload: "\x00\x00\x00\x00"))
@@ -240,7 +240,7 @@ class StreamHandleFrameTest < Minitest::Test
end
def test_stream_handle_rst_stream_idle
- open_new_stream(state: :idle) {|stream|
+ open_new_stream(state: :idle) { |stream|
assert_connection_error(:protocol_error) {
stream.receive_frame(Frame.new(type: :rst_stream,
stream_id: stream.id,
@@ -250,7 +250,7 @@ class StreamHandleFrameTest < Minitest::Test
end
def test_stream_handle_rst_stream_frame_size
- open_new_stream(state: :reserved_local) {|stream|
+ open_new_stream(state: :reserved_local) { |stream|
assert_connection_error(:frame_size_error) {
stream.receive_frame(Frame.new(type: :rst_stream,
stream_id: stream.id,
diff --git a/test/plum/test_binary_string.rb b/test/plum/test_binary_string.rb
index 266b548..e14123d 100644
--- a/test/plum/test_binary_string.rb
+++ b/test/plum/test_binary_string.rb
@@ -52,7 +52,7 @@ class BinaryStringTest < Minitest::Test
def test_each_byteslice_block
ret = []
string = "12345678"
- string.each_byteslice(3) {|part| ret << part }
+ string.each_byteslice(3) { |part| ret << part }
assert_equal(["123", "456", "78"], ret)
end
diff --git a/test/plum/test_connection.rb b/test/plum/test_connection.rb
index 799c3d0..fad70b4 100644
--- a/test/plum/test_connection.rb
+++ b/test/plum/test_connection.rb
@@ -13,22 +13,22 @@ class ConnectionTest < Minitest::Test
blk.call c
}
- new_con.call {|con|
+ new_con.call { |con|
assert_no_error {
con << Frame.new(type: :settings, stream_id: 0, payload: _settings * (limit / 6)).assemble
}
}
- new_con.call {|con|
+ new_con.call { |con|
assert_connection_error(:frame_size_error) {
con << Frame.new(type: :settings, stream_id: 0, payload: _settings * (limit / 6 + 1)).assemble
}
}
- new_con.call {|con|
+ new_con.call { |con|
assert_connection_error(:frame_size_error) {
con << Frame.new(type: :headers, stream_id: 3, payload: "\x00" * (limit + 1)).assemble
}
}
- new_con.call {|con|
+ new_con.call { |con|
assert_stream_error(:frame_size_error) {
con << Frame.new(type: :headers, stream_id: 3, flags: [:end_headers], payload: "").assemble
con << Frame.new(type: :data, stream_id: 3, payload: "\x00" * (limit + 1)).assemble
@@ -46,7 +46,7 @@ class ConnectionTest < Minitest::Test
end
def test_server_ignore_unknown_frame_type
- open_server_connection {|con|
+ open_server_connection { |con|
assert_no_error {
con << "\x00\x00\x00\x0f\x00\x00\x00\x00\x00" # type: 0x0f, no flags, no payload, stream 0
}
@@ -76,17 +76,17 @@ class ConnectionTest < Minitest::Test
blk.call(con)
}
- prepare.call {|con|
+ prepare.call { |con|
assert_connection_error(:protocol_error) {
con << Frame.new(type: :data, stream_id: 1, payload: "hello").assemble
}
}
- prepare.call {|con|
+ prepare.call { |con|
assert_connection_error(:protocol_error) {
con << Frame.new(type: :data, stream_id: 3, payload: "hello").assemble
}
}
- prepare.call {|con|
+ prepare.call { |con|
assert_equal(:waiting_continuation, con.state)
con << Frame.new(type: :continuation, flags: [:end_headers], stream_id: 3, payload: "").assemble
assert_equal(:open, con.state)
diff --git a/test/plum/test_connection_utils.rb b/test/plum/test_connection_utils.rb
index 35ab7b8..1147dd3 100644
--- a/test/plum/test_connection_utils.rb
+++ b/test/plum/test_connection_utils.rb
@@ -4,7 +4,7 @@ using BinaryString
class ServerConnectionUtilsTest < Minitest::Test
def test_server_ping
- open_server_connection {|con|
+ open_server_connection { |con|
con.ping("ABCABCAB")
last = sent_frames.last
@@ -15,7 +15,7 @@ class ServerConnectionUtilsTest < Minitest::Test
end
def test_server_goaway
- open_server_connection {|con|
+ open_server_connection { |con|
con << Frame.headers(3, "", end_stream: true, end_headers: true).assemble
con.goaway(:stream_closed)
@@ -28,7 +28,7 @@ class ServerConnectionUtilsTest < Minitest::Test
end
def test_push_enabled
- open_server_connection {|con|
+ open_server_connection { |con|
con << Frame.settings(enable_push: 0).assemble
assert_equal(false, con.push_enabled?)
con << Frame.settings(enable_push: 1).assemble
diff --git a/test/plum/test_event_emitter.rb b/test/plum/test_event_emitter.rb
index 01d6001..7efae16 100644
--- a/test/plum/test_event_emitter.rb
+++ b/test/plum/test_event_emitter.rb
@@ -5,7 +5,7 @@ class EventEmitterTest < Minitest::Test
def test_simple
ret = nil
emitter = new_emitter
- emitter.on(:event) {|arg| ret = arg }
+ emitter.on(:event) { |arg| ret = arg }
emitter.callback(:event, 123)
assert_equal(123, ret)
end
@@ -13,8 +13,8 @@ class EventEmitterTest < Minitest::Test
def test_multiple
ret1 = nil; ret2 = nil
emitter = new_emitter
- emitter.on(:event) {|arg| ret1 = arg }
- emitter.on(:event) {|arg| ret2 = arg }
+ emitter.on(:event) { |arg| ret1 = arg }
+ emitter.on(:event) { |arg| ret2 = arg }
emitter.callback(:event, 123)
assert_equal(123, ret1)
assert_equal(123, ret2)
diff --git a/test/plum/test_flow_control.rb b/test/plum/test_flow_control.rb
index 8133e0e..316361c 100644
--- a/test/plum/test_flow_control.rb
+++ b/test/plum/test_flow_control.rb
@@ -4,7 +4,7 @@ using BinaryString
class FlowControlTest < Minitest::Test
def test_flow_control_window_update_server
- open_server_connection {|con|
+ open_server_connection { |con|
before_ws = con.recv_remaining_window
con.window_update(500)
@@ -17,7 +17,7 @@ class FlowControlTest < Minitest::Test
end
def test_flow_control_window_update_stream
- open_new_stream {|stream|
+ open_new_stream { |stream|
before_ws = stream.recv_remaining_window
stream.window_update(500)
@@ -30,7 +30,7 @@ class FlowControlTest < Minitest::Test
end
def test_flow_control_window_update_zero
- open_new_stream {|stream|
+ open_new_stream { |stream|
assert_stream_error(:protocol_error) {
stream.receive_frame Frame.new(type: :window_update,
stream_id: stream.id,
@@ -40,7 +40,7 @@ class FlowControlTest < Minitest::Test
end
def test_flow_control_window_update_frame_size
- open_new_stream {|stream|
+ open_new_stream { |stream|
assert_connection_error(:frame_size_error) {
stream.receive_frame Frame.new(type: :window_update,
stream_id: stream.id,
@@ -50,7 +50,7 @@ class FlowControlTest < Minitest::Test
end
def test_flow_control_dont_send_data_exceeding_send_window
- open_new_stream {|stream|
+ open_new_stream { |stream|
con = stream.connection
con << Frame.new(type: :settings,
stream_id: 0,
@@ -60,7 +60,7 @@ class FlowControlTest < Minitest::Test
con << Frame.new(type: :window_update,
stream_id: stream.id,
payload: "".push_uint32(100)).assemble
- 10.times {|i|
+ 10.times { |i|
stream.send Frame.new(type: :data,
stream_id: stream.id,
payload: "".push_uint32(i))
@@ -72,13 +72,13 @@ class FlowControlTest < Minitest::Test
end
def test_flow_control_dont_send_data_upto_updated_send_window
- open_new_stream {|stream|
+ open_new_stream { |stream|
con = stream.connection
con << Frame.new(type: :settings,
stream_id: 0,
payload: "".push_uint16(Frame::SETTINGS_TYPE[:initial_window_size])
.push_uint32(4*2+1)).assemble
- 10.times {|i|
+ 10.times { |i|
stream.send Frame.new(type: :data,
stream_id: stream.id,
payload: "".push_uint32(i))
@@ -98,13 +98,13 @@ class FlowControlTest < Minitest::Test
end
def test_flow_control_update_send_initial_window_size
- open_new_stream {|stream|
+ open_new_stream { |stream|
con = stream.connection
con << Frame.new(type: :settings,
stream_id: 0,
payload: "".push_uint16(Frame::SETTINGS_TYPE[:initial_window_size])
.push_uint32(4*2+1)).assemble
- 10.times {|i|
+ 10.times { |i|
stream.send Frame.new(type: :data,
stream_id: stream.id,
payload: "".push_uint32(i))
@@ -119,21 +119,21 @@ class FlowControlTest < Minitest::Test
payload: "".push_uint16(Frame::SETTINGS_TYPE[:initial_window_size])
.push_uint32(4*4+1)).assemble
- last = sent_frames.reverse.find {|f| f.type == :data }
+ last = sent_frames.reverse.find { |f| f.type == :data }
assert_equal(3, last.payload.uint32)
}
end
def test_flow_control_recv_window_exceeded
prepare = ->(&blk) {
- open_new_stream {|stream|
+ open_new_stream { |stream|
con = stream.connection
con.settings(initial_window_size: 24)
blk.call(con, stream)
}
}
- prepare.call {|con, stream|
+ prepare.call { |con, stream|
con.window_update(500) # extend only connection
con << Frame.headers(stream.id, "", end_headers: true).assemble
assert_stream_error(:flow_control_error) {
@@ -141,7 +141,7 @@ class FlowControlTest < Minitest::Test
}
}
- prepare.call {|con, stream|
+ prepare.call { |con, stream|
stream.window_update(500) # extend only stream
con << Frame.headers(stream.id, "", end_headers: true).assemble
assert_connection_error(:flow_control_error) {
@@ -151,7 +151,7 @@ class FlowControlTest < Minitest::Test
end
def test_flow_control_update_recv_initial_window_size
- open_new_stream {|stream|
+ open_new_stream { |stream|
con = stream.connection
con.settings(initial_window_size: 24)
stream.window_update(1)
diff --git a/test/plum/test_stream.rb b/test/plum/test_stream.rb
index 2ed3ac9..fc1e94b 100644
--- a/test/plum/test_stream.rb
+++ b/test/plum/test_stream.rb
@@ -4,7 +4,7 @@ using Plum::BinaryString
class StreamTest < Minitest::Test
def test_stream_illegal_frame_type
- open_new_stream {|stream|
+ open_new_stream { |stream|
assert_connection_error(:protocol_error) {
stream.receive_frame(Frame.new(type: :goaway, stream_id: stream.id, payload: "\x00\x00\x00\x00"))
}
@@ -12,7 +12,7 @@ class StreamTest < Minitest::Test
end
def test_stream_unknown_frame_type
- open_new_stream {|stream|
+ open_new_stream { |stream|
assert_no_error {
stream.receive_frame(Frame.new(type_value: 0x0f, stream_id: stream.id, payload: "\x00\x00\x00\x00"))
}
diff --git a/test/plum/test_stream_utils.rb b/test/plum/test_stream_utils.rb
index 363fcf8..933c510 100644
--- a/test/plum/test_stream_utils.rb
+++ b/test/plum/test_stream_utils.rb
@@ -3,7 +3,7 @@ require "test_helper"
using BinaryString
class StreamUtilsTest < Minitest::Test
def test_stream_promise
- open_new_stream {|stream|
+ open_new_stream { |stream|
push_stream = stream.promise([])
assert(push_stream.id % 2 == 0)