From 5b593e388931490c1e2246d0347c892440167b2c Mon Sep 17 00:00:00 2001 From: eregon Date: Thu, 29 Jun 2017 14:35:37 +0000 Subject: Update to ruby/spec@abf1700 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59205 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- spec/rubyspec/library/zlib/deflate/params_spec.rb | 17 +- spec/rubyspec/library/zlib/gzipreader/gets_spec.rb | 21 ++ .../library/zlib/gzipreader/readpartial_spec.rb | 17 ++ .../library/zlib/gzipreader/ungetbyte_spec.rb | 122 +++++++++ .../library/zlib/gzipreader/ungetc_spec.rb | 291 +++++++++++++++++++++ .../rubyspec/library/zlib/gzipwriter/mtime_spec.rb | 13 +- 6 files changed, 465 insertions(+), 16 deletions(-) create mode 100644 spec/rubyspec/library/zlib/gzipreader/readpartial_spec.rb create mode 100644 spec/rubyspec/library/zlib/gzipreader/ungetbyte_spec.rb (limited to 'spec/rubyspec/library/zlib') diff --git a/spec/rubyspec/library/zlib/deflate/params_spec.rb b/spec/rubyspec/library/zlib/deflate/params_spec.rb index bb2fd3ee7c..59b1353c07 100644 --- a/spec/rubyspec/library/zlib/deflate/params_spec.rb +++ b/spec/rubyspec/library/zlib/deflate/params_spec.rb @@ -2,17 +2,16 @@ require File.expand_path('../../../../spec_helper', __FILE__) require 'zlib' describe "Zlib::Deflate#params" do -it "changes the deflate parameters" do - data = 'abcdefghijklm' + it "changes the deflate parameters" do + data = 'abcdefghijklm' - d = Zlib::Deflate.new Zlib::NO_COMPRESSION, Zlib::MAX_WBITS, - Zlib::DEF_MEM_LEVEL, Zlib::DEFAULT_STRATEGY + d = Zlib::Deflate.new Zlib::NO_COMPRESSION, Zlib::MAX_WBITS, + Zlib::DEF_MEM_LEVEL, Zlib::DEFAULT_STRATEGY - d << data.slice!(0..10) - d.params Zlib::BEST_COMPRESSION, Zlib::DEFAULT_STRATEGY - d << data + d << data.slice!(0..10) + d.params Zlib::BEST_COMPRESSION, Zlib::DEFAULT_STRATEGY + d << data - Zlib::Inflate.inflate(d.finish).should == 'abcdefghijklm' + Zlib::Inflate.inflate(d.finish).should == 'abcdefghijklm' end end - diff --git a/spec/rubyspec/library/zlib/gzipreader/gets_spec.rb b/spec/rubyspec/library/zlib/gzipreader/gets_spec.rb index 6a4c1dadb4..d49adc2850 100644 --- a/spec/rubyspec/library/zlib/gzipreader/gets_spec.rb +++ b/spec/rubyspec/library/zlib/gzipreader/gets_spec.rb @@ -1 +1,22 @@ require File.expand_path('../../../../spec_helper', __FILE__) +require 'zlib' +require 'stringio' + +describe 'GzipReader#gets' do + describe 'with "" separator' do + it 'reads paragraphs skipping newlines' do + # gz contains "\n\n\n\n\n123\n45\n\n\n\n\nabc\nde\n\n\n\n\n" + gz = Zlib::GzipReader.new( + StringIO.new( + [31, 139, 8, 0, 223, 152, 48, 89, 0, 3, 227, 226, 2, 2, 67, 35, + 99, 46, 19, 83, 16, 139, 43, 49, 41, 153, 43, 37, 21, 204, 4, 0, + 32, 119, 45, 184, 27, 0, 0, 0].pack('C*') + ) + ) + + gz.gets('').should == "123\n45\n\n" + gz.gets('').should == "abc\nde\n\n" + gz.eof?.should be_true + end + end +end diff --git a/spec/rubyspec/library/zlib/gzipreader/readpartial_spec.rb b/spec/rubyspec/library/zlib/gzipreader/readpartial_spec.rb new file mode 100644 index 0000000000..2cdef54fd1 --- /dev/null +++ b/spec/rubyspec/library/zlib/gzipreader/readpartial_spec.rb @@ -0,0 +1,17 @@ +require File.expand_path('../../../../spec_helper', __FILE__) +require 'stringio' +require 'zlib' + +describe 'GzipReader#readpartial' do + before :each do + @data = '12345abcde' + @zip = [31, 139, 8, 0, 44, 220, 209, 71, 0, 3, 51, 52, 50, 54, 49, 77, + 76, 74, 78, 73, 5, 0, 157, 5, 0, 36, 10, 0, 0, 0].pack('C*') + @io = StringIO.new(@zip) + end + + it 'accepts nil buffer' do + gz = Zlib::GzipReader.new(@io) + gz.readpartial(5, nil).should == '12345' + end +end diff --git a/spec/rubyspec/library/zlib/gzipreader/ungetbyte_spec.rb b/spec/rubyspec/library/zlib/gzipreader/ungetbyte_spec.rb new file mode 100644 index 0000000000..16f1c12272 --- /dev/null +++ b/spec/rubyspec/library/zlib/gzipreader/ungetbyte_spec.rb @@ -0,0 +1,122 @@ +require File.expand_path('../../../../spec_helper', __FILE__) +require 'stringio' +require 'zlib' + +describe 'GzipReader#ungetbyte' do + before :each do + @data = '12345abcde' + @zip = [31, 139, 8, 0, 44, 220, 209, 71, 0, 3, 51, 52, 50, 54, 49, 77, + 76, 74, 78, 73, 5, 0, 157, 5, 0, 36, 10, 0, 0, 0].pack('C*') + @io = StringIO.new @zip + end + + describe 'at the start of the stream' do + before :each do + @gz = Zlib::GzipReader.new(@io) + end + + describe 'with an integer' do + it 'prepends the byte to the stream' do + @gz.ungetbyte 0x21 + @gz.read.should == '!12345abcde' + end + + ruby_bug "#13616", ""..."2.6" do + it 'decrements pos' do + @gz.ungetbyte 0x21 + @gz.pos.should == -1 + end + end + end + + quarantine! do # https://bugs.ruby-lang.org/issues/13675 + describe 'with nil' do + it 'does not prepend anything to the stream' do + @gz.ungetbyte nil + @gz.read.should == '12345abcde' + end + + it 'does not decrement pos' do + @gz.ungetbyte nil + @gz.pos.should == 0 + end + end + end + end + + describe 'in the middle of the stream' do + before :each do + @gz = Zlib::GzipReader.new(@io) + @gz.read 5 + end + + describe 'with an integer' do + it 'inserts the corresponding character into the stream' do + @gz.ungetbyte 0x21 + @gz.read.should == '!abcde' + end + + it 'decrements pos' do + @gz.ungetbyte 0x21 + @gz.pos.should == 4 + end + end + + quarantine! do # https://bugs.ruby-lang.org/issues/13675 + describe 'with nil' do + it 'does not insert anything into the stream' do + @gz.ungetbyte nil + @gz.read.should == 'abcde' + end + + it 'does not decrement pos' do + @gz.ungetbyte nil + @gz.pos.should == 5 + end + end + end + end + + describe 'at the end of the stream' do + before :each do + @gz = Zlib::GzipReader.new(@io) + @gz.read + end + + describe 'with an integer' do + it 'appends the corresponding character to the stream' do + @gz.ungetbyte 0x21 + @gz.read.should == '!' + end + + it 'decrements pos' do + @gz.ungetbyte 0x21 + @gz.pos.should == 9 + end + + it 'makes eof? false' do + @gz.ungetbyte 0x21 + @gz.eof?.should be_false + end + end + + quarantine! do # https://bugs.ruby-lang.org/issues/13675 + describe 'with nil' do + it 'does not append anything to the stream' do + @gz.ungetbyte nil + @gz.read.should == '' + end + + it 'does not decrement pos' do + @gz.ungetbyte nil + @gz.pos.should == 10 + end + + it 'does not make eof? false' do + @gz.ungetbyte nil + @gz.eof?.should be_true + end + end + end + end +end diff --git a/spec/rubyspec/library/zlib/gzipreader/ungetc_spec.rb b/spec/rubyspec/library/zlib/gzipreader/ungetc_spec.rb index 6a4c1dadb4..2d218e8d19 100644 --- a/spec/rubyspec/library/zlib/gzipreader/ungetc_spec.rb +++ b/spec/rubyspec/library/zlib/gzipreader/ungetc_spec.rb @@ -1 +1,292 @@ require File.expand_path('../../../../spec_helper', __FILE__) +require 'stringio' +require 'zlib' + +describe 'GzipReader#ungetc' do + before :each do + @data = '12345abcde' + @zip = [31, 139, 8, 0, 44, 220, 209, 71, 0, 3, 51, 52, 50, 54, 49, 77, + 76, 74, 78, 73, 5, 0, 157, 5, 0, 36, 10, 0, 0, 0].pack('C*') + @io = StringIO.new @zip + end + + describe 'at the start of the stream' do + before :each do + @gz = Zlib::GzipReader.new(@io, external_encoding: Encoding::UTF_8) + end + + describe 'with a single-byte character' do + it 'prepends the character to the stream' do + @gz.ungetc 'x' + @gz.read.should == 'x12345abcde' + end + + ruby_bug "#13616", ""..."2.6" do + it 'decrements pos' do + @gz.ungetc 'x' + @gz.pos.should == -1 + end + end + end + + describe 'with a multi-byte character' do + it 'prepends the character to the stream' do + @gz.ungetc 'ŷ' + @gz.read.should == 'ŷ12345abcde' + end + + ruby_bug "#13616", ""..."2.6" do + it 'decrements pos' do + @gz.ungetc 'ŷ' + @gz.pos.should == -2 + end + end + end + + describe 'with a multi-character string' do + it 'prepends the characters to the stream' do + @gz.ungetc 'xŷž' + @gz.read.should == 'xŷž12345abcde' + end + + ruby_bug "#13616", ""..."2.6" do + it 'decrements pos' do + @gz.ungetc 'xŷž' + @gz.pos.should == -5 + end + end + end + + describe 'with an integer' do + it 'prepends the corresponding character to the stream' do + @gz.ungetc 0x21 + @gz.read.should == '!12345abcde' + end + + ruby_bug "#13616", ""..."2.6" do + it 'decrements pos' do + @gz.ungetc 0x21 + @gz.pos.should == -1 + end + end + end + + describe 'with an empty string' do + it 'does not prepend anything to the stream' do + @gz.ungetc '' + @gz.read.should == '12345abcde' + end + + it 'does not decrement pos' do + @gz.ungetc '' + @gz.pos.should == 0 + end + end + + quarantine! do # https://bugs.ruby-lang.org/issues/13675 + describe 'with nil' do + it 'does not prepend anything to the stream' do + @gz.ungetc nil + @gz.read.should == '12345abcde' + end + + it 'does not decrement pos' do + @gz.ungetc nil + @gz.pos.should == 0 + end + end + end + end + + describe 'in the middle of the stream' do + before :each do + @gz = Zlib::GzipReader.new(@io, external_encoding: Encoding::UTF_8) + @gz.read 5 + end + + describe 'with a single-byte character' do + it 'inserts the character into the stream' do + @gz.ungetc 'x' + @gz.read.should == 'xabcde' + end + + it 'decrements pos' do + @gz.ungetc 'x' + @gz.pos.should == 4 + end + end + + describe 'with a multi-byte character' do + it 'inserts the character into the stream' do + @gz.ungetc 'ŷ' + @gz.read.should == 'ŷabcde' + end + + it 'decrements pos' do + @gz.ungetc 'ŷ' + @gz.pos.should == 3 + end + end + + describe 'with a multi-character string' do + it 'inserts the characters into the stream' do + @gz.ungetc 'xŷž' + @gz.read.should == 'xŷžabcde' + end + + it 'decrements pos' do + @gz.ungetc 'xŷž' + @gz.pos.should == 0 + end + end + + describe 'with an integer' do + it 'inserts the corresponding character into the stream' do + @gz.ungetc 0x21 + @gz.read.should == '!abcde' + end + + it 'decrements pos' do + @gz.ungetc 0x21 + @gz.pos.should == 4 + end + end + + describe 'with an empty string' do + it 'does not insert anything into the stream' do + @gz.ungetc '' + @gz.read.should == 'abcde' + end + + it 'does not decrement pos' do + @gz.ungetc '' + @gz.pos.should == 5 + end + end + + quarantine! do # https://bugs.ruby-lang.org/issues/13675 + describe 'with nil' do + it 'does not insert anything into the stream' do + @gz.ungetc nil + @gz.read.should == 'abcde' + end + + it 'does not decrement pos' do + @gz.ungetc nil + @gz.pos.should == 5 + end + end + end + end + + describe 'at the end of the stream' do + before :each do + @gz = Zlib::GzipReader.new(@io, external_encoding: Encoding::UTF_8) + @gz.read + end + + describe 'with a single-byte character' do + it 'appends the character to the stream' do + @gz.ungetc 'x' + @gz.read.should == 'x' + end + + it 'decrements pos' do + @gz.ungetc 'x' + @gz.pos.should == 9 + end + + it 'makes eof? false' do + @gz.ungetc 'x' + @gz.eof?.should be_false + end + end + + describe 'with a multi-byte character' do + it 'appends the character to the stream' do + @gz.ungetc 'ŷ' + @gz.read.should == 'ŷ' + end + + it 'decrements pos' do + @gz.ungetc 'ŷ' + @gz.pos.should == 8 + end + + it 'makes eof? false' do + @gz.ungetc 'ŷ' + @gz.eof?.should be_false + end + end + + describe 'with a multi-character string' do + it 'appends the characters to the stream' do + @gz.ungetc 'xŷž' + @gz.read.should == 'xŷž' + end + + it 'decrements pos' do + @gz.ungetc 'xŷž' + @gz.pos.should == 5 + end + + it 'makes eof? false' do + @gz.ungetc 'xŷž' + @gz.eof?.should be_false + end + end + + describe 'with an integer' do + it 'appends the corresponding character to the stream' do + @gz.ungetc 0x21 + @gz.read.should == '!' + end + + it 'decrements pos' do + @gz.ungetc 0x21 + @gz.pos.should == 9 + end + + it 'makes eof? false' do + @gz.ungetc 0x21 + @gz.eof?.should be_false + end + end + + describe 'with an empty string' do + it 'does not append anything to the stream' do + @gz.ungetc '' + @gz.read.should == '' + end + + it 'does not decrement pos' do + @gz.ungetc '' + @gz.pos.should == 10 + end + + it 'does not make eof? false' do + @gz.ungetc '' + @gz.eof?.should be_true + end + end + + quarantine! do # https://bugs.ruby-lang.org/issues/13675 + describe 'with nil' do + it 'does not append anything to the stream' do + @gz.ungetc nil + @gz.read.should == '' + end + + it 'does not decrement pos' do + @gz.ungetc nil + @gz.pos.should == 10 + end + + it 'does not make eof? false' do + @gz.ungetc nil + @gz.eof?.should be_true + end + end + end + end +end diff --git a/spec/rubyspec/library/zlib/gzipwriter/mtime_spec.rb b/spec/rubyspec/library/zlib/gzipwriter/mtime_spec.rb index f73d6e3226..af7a4ac735 100644 --- a/spec/rubyspec/library/zlib/gzipwriter/mtime_spec.rb +++ b/spec/rubyspec/library/zlib/gzipwriter/mtime_spec.rb @@ -17,14 +17,14 @@ describe "Zlib::GzipWriter#mtime=" do @io.string[4, 4].should == [1,0,0,0].pack('C*') end -it "sets mtime using Time" do - Zlib::GzipWriter.wrap @io do |gzio| - gzio.mtime = Time.at 1 + it "sets mtime using Time" do + Zlib::GzipWriter.wrap @io do |gzio| + gzio.mtime = Time.at 1 - gzio.mtime.should == Time.at(1) - end + gzio.mtime.should == Time.at(1) + end - @io.string[4, 4].should == [1,0,0,0].pack('C*') + @io.string[4, 4].should == [1,0,0,0].pack('C*') end it "raises if the header was written" do @@ -36,4 +36,3 @@ it "sets mtime using Time" do end end end - -- cgit v1.2.3