bz2 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,32 @@
1
+ begin
2
+ require 'test/unit'
3
+ rescue LoadError
4
+ require 'runit/testcase'
5
+ require 'runit/cui/testrunner'
6
+
7
+ module RUNIT
8
+ module Assert
9
+ def assert_raises(error, message = nil)
10
+ begin
11
+ yield
12
+ rescue error
13
+ assert(true, message)
14
+ rescue
15
+ assert_fail("must fail with #{error} : #{string}")
16
+ else
17
+ assert_fail("*must* fail : #{string}")
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
23
+
24
+
25
+ if RUBY_VERSION > "1.7"
26
+ class Array
27
+ alias indices select
28
+ end
29
+ class Hash
30
+ alias indexes select
31
+ end
32
+ end
@@ -0,0 +1,151 @@
1
+ #!/usr/bin/ruby
2
+
3
+ # This is the test from rubicon
4
+
5
+ $LOAD_PATH.unshift(*%w{.. tests})
6
+ require 'bz2'
7
+ require 'runit_'
8
+
9
+ Inh = defined?(RUNIT) ? RUNIT : Test::Unit
10
+
11
+ $file = "_10lines_"
12
+
13
+ class Dummy
14
+ def to_s
15
+ "dummy"
16
+ end
17
+ end
18
+
19
+ class TestWriter < Inh::TestCase
20
+
21
+ def test_f_LSHIFT # '<<'
22
+ BZ2::Writer.open($file, "w") do |file|
23
+ file << 1 << "\n" << Dummy.new << "\n" << "cat\n"
24
+ end
25
+ expected = [ "1\n", "dummy\n", "cat\n"]
26
+ BZ2::Reader.foreach($file) do |line|
27
+ assert_equal(expected.shift, line)
28
+ end
29
+ assert_equal([], expected)
30
+ end
31
+
32
+ def test_f_error
33
+ io = File.new($file, "w")
34
+ bz2 = BZ2::Writer.new(io)
35
+ bz2 << 1 << "\n" << Dummy.new << "\n" << "cat\n"
36
+ bz = BZ2::Reader.new($file)
37
+ assert_raises(BZ2::Error) { bz.gets }
38
+ bz = BZ2::Reader.open($file)
39
+ assert_raises(BZ2::EOZError) { bz.gets }
40
+ io.close
41
+ assert_raises(IOError) { BZ2::Reader.new(io) }
42
+ end
43
+
44
+ def test_f_gets_para
45
+ BZ2::Writer.open($file) do |file|
46
+ file.print "foo\n"*4096, "\n"*4096, "bar"*4096, "\n"*4096, "zot\n"*1024
47
+ end
48
+ BZ2::Reader.open($file) do |file|
49
+ assert_equal("foo\n"*4096+"\n", file.gets(""))
50
+ assert_equal("bar"*4096+"\n\n", file.gets(""))
51
+ assert_equal("zot\n"*1024, file.gets(""))
52
+ end
53
+ end
54
+
55
+ def test_f_print
56
+ BZ2::Writer.open($file) do |file|
57
+ file.print "hello"
58
+ file.print 1,2
59
+ $_ = "wombat\n"
60
+ file.print
61
+ $\ = ":"
62
+ $, = ","
63
+ file.print 3, 4
64
+ file.print 5, 6
65
+ $\ = nil
66
+ file.print "\n"
67
+ $, = nil
68
+ end
69
+
70
+ BZ2::Reader.open($file) do |file|
71
+ content = file.gets(nil)
72
+ assert_equal("hello12wombat\n3,4:5,6:\n", content)
73
+ end
74
+ end
75
+
76
+ def test_f_putc
77
+ BZ2::Writer.open($file, "wb") do |file|
78
+ file.putc "A"
79
+ 0.upto(255) { |ch| file.putc ch }
80
+ end
81
+
82
+ BZ2::Reader.open($file, "rb") do |file|
83
+ assert_equal(?A, file.getc)
84
+ 0.upto(255) { |ch| assert_equal(ch, file.getc) }
85
+ end
86
+ end
87
+
88
+ def test_f_puts
89
+ BZ2::Writer.open($file, "w") do |file|
90
+ file.puts "line 1", "line 2"
91
+ file.puts [ Dummy.new, 4 ]
92
+ end
93
+
94
+ BZ2::Reader.open($file) do |file|
95
+ assert_equal("line 1\n", file.gets)
96
+ assert_equal("line 2\n", file.gets)
97
+ assert_equal("dummy\n", file.gets)
98
+ assert_equal("4\n", file.gets)
99
+ end
100
+ end
101
+
102
+ def test_f_write
103
+ BZ2::Writer.open($file, "w") do |file|
104
+ assert_equal(10, file.write('*' * 10))
105
+ assert_equal(5, file.write('!' * 5))
106
+ assert_equal(0, file.write(''))
107
+ assert_equal(1, file.write(1))
108
+ assert_equal(3, file.write(2.30000))
109
+ assert_equal(1, file.write("\n"))
110
+ end
111
+
112
+ BZ2::Reader.open($file) do |file|
113
+ assert_equal("**********!!!!!12.3\n", file.gets)
114
+ end
115
+ end
116
+
117
+ def test_s_string
118
+ file = BZ2::Writer.new
119
+ assert_equal(10, file.write('*' * 10))
120
+ assert_equal(5, file.write('!' * 5))
121
+ assert_equal(0, file.write(''))
122
+ assert_equal(1, file.write(1))
123
+ assert_equal(3, file.write(2.30000))
124
+ assert_equal(1, file.write("\n"))
125
+ line = BZ2::bunzip2(file.flush)
126
+ assert_equal("**********!!!!!12.3\n", line)
127
+
128
+ line = BZ2::bunzip2(BZ2::bzip2("**********!!!!!12.3\n"))
129
+ assert_equal("**********!!!!!12.3\n", line)
130
+
131
+ test = "foo\n"*4096 + "\n"*4096 + "bar"*4096 + "\n"*4096 + "zot\n"*1024
132
+ line = BZ2::bunzip2(BZ2::bzip2(test))
133
+ assert_equal(test, line)
134
+
135
+ assert(BZ2::bzip2("aaaaaaaaa".taint).tainted?)
136
+ assert(BZ2::bunzip2(BZ2::bzip2("aaaaaaaaa".taint)).tainted?)
137
+ assert(!BZ2::bzip2("aaaaaaaaa").tainted?)
138
+ assert(!BZ2::bunzip2(BZ2::bzip2("aaaaaaaaa")).tainted?)
139
+
140
+ end
141
+
142
+ def test_zzz
143
+ File.unlink($file)
144
+ end
145
+ end
146
+
147
+ if defined?(RUNIT)
148
+ RUNIT::CUI::TestRunner.run(TestWriter.suite)
149
+ end
150
+
151
+
metadata ADDED
@@ -0,0 +1,87 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: bz2
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.2
5
+ platform: ruby
6
+ authors:
7
+ - Tony Doan
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2008-12-23 00:00:00 -08:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: newgem
17
+ type: :development
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 1.2.1
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: hoe
27
+ type: :development
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 1.8.0
34
+ version:
35
+ description: ""
36
+ email:
37
+ - tdoan@tdoan.com
38
+ executables: []
39
+
40
+ extensions:
41
+ - ext/bz2/extconf.rb
42
+ extra_rdoc_files:
43
+ - History.txt
44
+ - Manifest.txt
45
+ - README.rdoc
46
+ files:
47
+ - History.txt
48
+ - Manifest.txt
49
+ - README.rdoc
50
+ - Rakefile
51
+ - ext/bz2/bz2.c
52
+ - ext/bz2/extconf.rb
53
+ - tasks/extconf/bz2.rake
54
+ - tasks/extconf.rake
55
+ - test/reader.rb
56
+ - test/runit_.rb
57
+ - test/writer.rb
58
+ has_rdoc: true
59
+ homepage: Installation
60
+ post_install_message:
61
+ rdoc_options:
62
+ - --main
63
+ - README.rdoc
64
+ require_paths:
65
+ - lib
66
+ - ext/bz2
67
+ required_ruby_version: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - ">="
70
+ - !ruby/object:Gem::Version
71
+ version: "0"
72
+ version:
73
+ required_rubygems_version: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - ">="
76
+ - !ruby/object:Gem::Version
77
+ version: "0"
78
+ version:
79
+ requirements: []
80
+
81
+ rubyforge_project: portupgrade
82
+ rubygems_version: 1.3.1
83
+ signing_key:
84
+ specification_version: 2
85
+ summary: ""
86
+ test_files: []
87
+