310
316
assert_raise(Zlib::GzipFile::Error) { gz.comment = "quux" }
313
f = Zlib::GzipReader.open(t.path)
314
assert_equal("foobarbazqux", f.comment)
319
Zlib::GzipReader.open(t.path) do |f|
320
assert_equal("foobarbazqux", f.comment)
318
t = Tempfile.new("test_zlib_gzip_file")
325
t = Tempfile.new("test_zlib_gzip_file_lineno")
320
327
Zlib::GzipWriter.open(t.path) {|gz| gz.print("foo\nbar\nbaz\nqux\n") }
322
f = Zlib::GzipReader.open(t.path)
323
assert_equal([0, "foo\n"], [f.lineno, f.gets])
324
assert_equal([1, "bar\n"], [f.lineno, f.gets])
326
assert_equal([1000, "baz\n"], [f.lineno, f.gets])
327
assert_equal([1001, "qux\n"], [f.lineno, f.gets])
329
Zlib::GzipReader.open(t.path) do |f|
330
assert_equal([0, "foo\n"], [f.lineno, f.gets])
331
assert_equal([1, "bar\n"], [f.lineno, f.gets])
333
assert_equal([1000, "baz\n"], [f.lineno, f.gets])
334
assert_equal([1001, "qux\n"], [f.lineno, f.gets])
330
338
def test_closed_p
331
t = Tempfile.new("test_zlib_gzip_file")
339
t = Tempfile.new("test_zlib_gzip_file_closed_p")
333
341
Zlib::GzipWriter.open(t.path) {|gz| gz.print("foo") }
335
f = Zlib::GzipReader.open(t.path)
336
assert_equal(false, f.closed?)
338
assert_equal(false, f.closed?)
340
assert_equal(true, f.closed?)
343
Zlib::GzipReader.open(t.path) do |f|
344
assert_equal(false, f.closed?)
346
assert_equal(false, f.closed?)
348
assert_equal(true, f.closed?)
344
t = Tempfile.new("test_zlib_gzip_file")
353
t = Tempfile.new("test_zlib_gzip_file_sync")
346
355
Zlib::GzipWriter.open(t.path) {|gz| gz.print("foo") }
348
f = Zlib::GzipReader.open(t.path)
350
assert_equal(true, f.sync)
353
assert_equal(false, f.sync)
357
Zlib::GzipReader.open(t.path) do |f|
359
assert_equal(true, f.sync)
362
assert_equal(false, f.sync)
358
t = Tempfile.new("test_zlib_gzip_file")
367
t = Tempfile.new("test_zlib_gzip_file_pos")
360
369
Zlib::GzipWriter.open(t.path) do |gz|
499
t = Tempfile.new("test_zlib_gzip_reader")
530
t = Tempfile.new("test_zlib_gzip_reader_read")
501
532
str = "\u3042\u3044\u3046"
502
533
Zlib::GzipWriter.open(t.path) {|gz| gz.print(str) }
504
f = Zlib::GzipReader.open(t.path, encoding: "UTF-8")
505
assert_raise(ArgumentError) { f.read(-1) }
506
assert_equal(str, f.read)
535
Zlib::GzipReader.open(t.path, encoding: "UTF-8") do |f|
536
assert_raise(ArgumentError) { f.read(-1) }
537
assert_equal(str, f.read)
509
541
def test_readpartial
510
t = Tempfile.new("test_zlib_gzip_reader")
542
t = Tempfile.new("test_zlib_gzip_reader_readpartial")
512
544
Zlib::GzipWriter.open(t.path) {|gz| gz.print("foobar") }
514
f = Zlib::GzipReader.open(t.path)
515
assert("foo".start_with?(f.readpartial(3)))
517
f = Zlib::GzipReader.open(t.path)
520
assert("foo".start_with?(s))
522
assert_raise(ArgumentError) { f.readpartial(-1) }
546
Zlib::GzipReader.open(t.path) do |f|
547
assert("foo".start_with?(f.readpartial(3)))
550
Zlib::GzipReader.open(t.path) do |f|
553
assert("foo".start_with?(s))
555
assert_raise(ArgumentError) { f.readpartial(-1) }
526
t = Tempfile.new("test_zlib_gzip_reader")
560
t = Tempfile.new("test_zlib_gzip_reader_getc")
528
562
Zlib::GzipWriter.open(t.path) {|gz| gz.print("foobar") }
530
f = Zlib::GzipReader.open(t.path)
531
"foobar".each_char {|c| assert_equal(c, f.getc) }
564
Zlib::GzipReader.open(t.path) do |f|
565
"foobar".each_char {|c| assert_equal(c, f.getc) }
536
t = Tempfile.new("test_zlib_gzip_reader")
571
t = Tempfile.new("test_zlib_gzip_reader_getbyte")
538
573
Zlib::GzipWriter.open(t.path) {|gz| gz.print("foobar") }
540
f = Zlib::GzipReader.open(t.path)
541
"foobar".each_byte {|c| assert_equal(c, f.getbyte) }
542
assert_nil(f.getbyte)
575
Zlib::GzipReader.open(t.path) do |f|
576
"foobar".each_byte {|c| assert_equal(c, f.getbyte) }
577
assert_nil(f.getbyte)
545
581
def test_readchar
546
t = Tempfile.new("test_zlib_gzip_reader")
582
t = Tempfile.new("test_zlib_gzip_reader_readchar")
548
584
Zlib::GzipWriter.open(t.path) {|gz| gz.print("foobar") }
550
f = Zlib::GzipReader.open(t.path)
551
"foobar".each_byte {|c| assert_equal(c, f.readchar.ord) }
552
assert_raise(EOFError) { f.readchar }
586
Zlib::GzipReader.open(t.path) do |f|
587
"foobar".each_byte {|c| assert_equal(c, f.readchar.ord) }
588
assert_raise(EOFError) { f.readchar }
555
592
def test_each_byte
556
t = Tempfile.new("test_zlib_gzip_reader")
593
t = Tempfile.new("test_zlib_gzip_reader_each_byte")
558
595
Zlib::GzipWriter.open(t.path) {|gz| gz.print("foobar") }
560
f = Zlib::GzipReader.open(t.path)
562
f.each_byte {|c| a << c }
563
assert_equal("foobar".each_byte.to_a, a)
597
Zlib::GzipReader.open(t.path) do |f|
599
f.each_byte {|c| a << c }
600
assert_equal("foobar".each_byte.to_a, a)
605
t = Tempfile.new("test_zlib_gzip_reader_gets")
607
Zlib::GzipWriter.open(t.path) {|gz| gz.print("foo\nbar\nbaz\n") }
609
Zlib::GzipReader.open(t.path) do |f|
610
assert_equal("foo\n", f.gets)
611
assert_equal("bar\n", f.gets)
612
assert_equal("baz\n", f.gets)
616
Zlib::GzipReader.open(t.path) do |f|
617
assert_equal("foo\nbar\nbaz\n", f.gets(nil))
620
Zlib::GzipReader.open(t.path) do |f|
621
assert_equal("foo\n", f.gets(10))
622
assert_equal("ba", f.gets(2))
623
assert_equal("r\nb", f.gets(nil, 3))
624
assert_equal("az\n", f.gets(nil, 10))
567
t = Tempfile.new("test_zlib_gzip_reader")
630
t = Tempfile.new("test_zlib_gzip_reader_gets2")
569
Zlib::GzipWriter.open(t.path) {|gz| gz.print("foo\nbar\nbaz\n") }
571
f = Zlib::GzipReader.open(t.path)
572
assert_equal("foo\n", f.gets)
573
assert_equal("bar\n", f.gets)
574
assert_equal("baz\n", f.gets)
578
f = Zlib::GzipReader.open(t.path)
579
assert_equal("foo\nbar\nbaz\n", f.gets(nil))
632
ustrs = %W"\u{3042 3044 3046}\n \u{304b 304d 304f}\n \u{3055 3057 3059}\n"
633
Zlib::GzipWriter.open(t.path) {|gz| gz.print(*ustrs) }
635
Zlib::GzipReader.open(t.path, encoding: "UTF-8") do |f|
636
assert_equal(ustrs[0], f.gets)
637
assert_equal(ustrs[1], f.gets)
638
assert_equal(ustrs[2], f.gets)
642
Zlib::GzipReader.open(t.path, encoding: "UTF-8") do |f|
643
assert_equal(ustrs.join(''), f.gets(nil))
646
Zlib::GzipReader.open(t.path, encoding: "UTF-8") do |f|
647
assert_equal(ustrs[0], f.gets(20))
648
assert_equal(ustrs[1][0,2], f.gets(5))
649
assert_equal(ustrs[1][2..-1]+ustrs[2][0,1], f.gets(nil, 5))
650
assert_equal(ustrs[2][1..-1], f.gets(nil, 20))
584
t = Tempfile.new("test_zlib_gzip_reader")
656
t = Tempfile.new("test_zlib_gzip_reader_readline")
586
658
Zlib::GzipWriter.open(t.path) {|gz| gz.print("foo\nbar\nbaz\n") }
588
f = Zlib::GzipReader.open(t.path)
589
assert_equal("foo\n", f.readline)
590
assert_equal("bar\n", f.readline)
591
assert_equal("baz\n", f.readline)
592
assert_raise(EOFError) { f.readline }
660
Zlib::GzipReader.open(t.path) do |f|
661
assert_equal("foo\n", f.readline)
662
assert_equal("bar\n", f.readline)
663
assert_equal("baz\n", f.readline)
664
assert_raise(EOFError) { f.readline }
597
t = Tempfile.new("test_zlib_gzip_reader")
669
t = Tempfile.new("test_zlib_gzip_reader_each")
599
671
Zlib::GzipWriter.open(t.path) {|gz| gz.print("foo\nbar\nbaz\n") }
601
f = Zlib::GzipReader.open(t.path)
602
a = ["foo\n", "bar\n", "baz\n"]
603
f.each {|l| assert_equal(a.shift, l) }
673
Zlib::GzipReader.open(t.path) do |f|
674
a = ["foo\n", "bar\n", "baz\n"]
675
f.each {|l| assert_equal(a.shift, l) }
607
679
def test_readlines
608
t = Tempfile.new("test_zlib_gzip_reader")
680
t = Tempfile.new("test_zlib_gzip_reader_readlines")
610
682
Zlib::GzipWriter.open(t.path) {|gz| gz.print("foo\nbar\nbaz\n") }
612
f = Zlib::GzipReader.open(t.path)
613
assert_equal(["foo\n", "bar\n", "baz\n"], f.readlines)
684
Zlib::GzipReader.open(t.path) do |f|
685
assert_equal(["foo\n", "bar\n", "baz\n"], f.readlines)
617
689
def test_reader_wrap
618
t = Tempfile.new("test_zlib_gzip_reader")
690
t = Tempfile.new("test_zlib_gzip_reader_wrap")
620
692
Zlib::GzipWriter.open(t.path) {|gz| gz.print("foo") }
622
694
assert_equal("foo", Zlib::GzipReader.wrap(f) {|gz| gz.read })
623
695
assert_raise(IOError) { f.close }
698
def test_corrupted_header
699
gz = Zlib::GzipWriter.new(StringIO.new(s = ""))
704
# 14: magic(2) + method(1) + flag(1) + mtime(4) + exflag(1) + os(1) + orig_name(2) + comment(2)
706
assert_raise(Zlib::GzipFile::Error, idx) do
707
Zlib::GzipReader.new(StringIO.new(s[0, idx])).read
627
713
class TestZlibGzipWriter < Test::Unit::TestCase