mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Update to ruby/spec@a6b8805
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60525 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
6530b14cee
commit
8c5b60eb22
218 changed files with 4069 additions and 328 deletions
52
spec/ruby/core/array/pack/buffer_spec.rb
Normal file
52
spec/ruby/core/array/pack/buffer_spec.rb
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
# encoding: ascii-8bit
|
||||
|
||||
require File.expand_path('../../../../spec_helper', __FILE__)
|
||||
|
||||
ruby_version_is '2.4' do
|
||||
describe "Aray#pack with `buffer` option" do
|
||||
it "returns specified buffer" do
|
||||
n = [ 65, 66, 67 ]
|
||||
buffer = " "*3
|
||||
result = n.pack("ccc", buffer: buffer) #=> "ABC"
|
||||
result.should equal(buffer)
|
||||
end
|
||||
|
||||
it "adds result at the end of buffer content" do
|
||||
n = [ 65, 66, 67 ] # result without buffer is "ABC"
|
||||
|
||||
buffer = ""
|
||||
n.pack("ccc", buffer: buffer).should == "ABC"
|
||||
|
||||
buffer = "123"
|
||||
n.pack("ccc", buffer: buffer).should == "123ABC"
|
||||
|
||||
buffer = "12345"
|
||||
n.pack("ccc", buffer: buffer).should == "12345ABC"
|
||||
end
|
||||
|
||||
it "raises TypeError exception if buffer is not String" do
|
||||
lambda { [65].pack("ccc", buffer: []) }.should raise_error(
|
||||
TypeError, "buffer must be String, not Array")
|
||||
end
|
||||
|
||||
context "offset (@) is specified" do
|
||||
it 'keeps buffer content if it is longer than offset' do
|
||||
n = [ 65, 66, 67 ]
|
||||
buffer = "123456"
|
||||
n.pack("@3ccc", buffer: buffer).should == "123ABC"
|
||||
end
|
||||
|
||||
it "fills the gap with \0 if buffer content is shorter than offset" do
|
||||
n = [ 65, 66, 67 ]
|
||||
buffer = "123"
|
||||
n.pack("@6ccc", buffer: buffer).should == "123\0\0\0ABC"
|
||||
end
|
||||
|
||||
it 'does not keep buffer content if it is longer than offset + result' do
|
||||
n = [ 65, 66, 67 ]
|
||||
buffer = "1234567890"
|
||||
n.pack("@3ccc", buffer: buffer).should == "123ABC"
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
Loading…
Add table
Add a link
Reference in a new issue