extlzma 0.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,3 @@
1
+ module LZMA
2
+ VERSION = "0.4"
3
+ end
@@ -0,0 +1,15 @@
1
+ SMALLSIZE = 400
2
+ BIGSIZE = 12000000
3
+
4
+ SAMPLES = {
5
+ "empty" => "",
6
+ "\\0 (small size)" => "\0".b * SMALLSIZE,
7
+ "\\0 (big size)" => "\0".b * BIGSIZE,
8
+ "\\xaa (small size)" => "\xaa".b * SMALLSIZE,
9
+ "\\xaa (big size)" => "\xaa".b * BIGSIZE,
10
+ "random (small size)" => OpenSSL::Random.random_bytes(SMALLSIZE),
11
+ "random (big size)" => OpenSSL::Random.random_bytes(BIGSIZE),
12
+ }
13
+
14
+ SAMPLES["freebsd ports index"] = File.read("/usr/ports/INDEX-10", mode: "rb") rescue nil # if on FreeBSD
15
+ SAMPLES["freebsd kernel"] = File.read("/boot/kernel/kernel", mode: "rb") rescue nil # if on FreeBSD
@@ -0,0 +1,58 @@
1
+ #!ruby
2
+
3
+ =begin
4
+ # 必要と思われる試験項目
5
+
6
+ * LZMA.encode
7
+ * LZMA.decode で伸長できるか
8
+ * lz4-cli で伸長できるか
9
+ * 汚染状態の伝搬
10
+ * security level
11
+ * LZMA.encode_file
12
+ * LZMA.decode_file で伸長できるか
13
+ * lz4-cli で伸長できるか
14
+ * LZMA.decode
15
+ * LZMA.decode_file
16
+ * LZMA.test_file
17
+
18
+ * 試験で用いる試料
19
+ * /usr/ports/INDEX-10
20
+ * /boot/kernel/kernel
21
+ * 長さ 0 の空データ
22
+ * 0 で埋められた小さなデータ
23
+ * 0 で埋められたでかいデータ
24
+ * 0xaa で埋められた小さなデータ
25
+ * 0xaa で埋められたでかいデータ
26
+ * /dev/random (4000 bytes)
27
+ * /dev/random (12000000 bytes)
28
+ * 可能であれば数十 GB レベルのファイル
29
+ =end
30
+
31
+ require "test-unit"
32
+ require "openssl" # for OpenSSL::Random.random_bytes
33
+ require "extlzma"
34
+
35
+ require_relative "sampledata"
36
+
37
+ class TestStreamAPI < Test::Unit::TestCase
38
+ SAMPLES.each_pair do |name, data|
39
+ define_method("test_encode_decode_sample:#{name}", -> {
40
+ assert(data, LZMA.decode(LZMA.encode(data)))
41
+ })
42
+ end
43
+
44
+ def test_encode_args
45
+ assert_kind_of(LZMA::Encoder, LZMA.encode)
46
+ assert_kind_of(LZMA::Encoder, LZMA.encode(StringIO.new("")))
47
+ assert_kind_of(String, LZMA.encode { |e| e.outport })
48
+ io = StringIO.new("")
49
+ assert_same(io, LZMA.encode(io) { |e| io })
50
+ assert_kind_of(LZMA::Encoder, LZMA.encode(io, 9))
51
+ end
52
+
53
+ def test_decode_args
54
+ assert_raise(ArgumentError) { LZMA.decode }
55
+ assert_raise(NoMethodError) { LZMA.decode(nil).read } # undefined method `read' for nil:NilClass
56
+ assert_raise(LZMA::BufError) { LZMA.decode("") } # read error (or already EOF)
57
+ end
58
+ end
metadata ADDED
@@ -0,0 +1,98 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: extlzma
3
+ version: !ruby/object:Gem::Version
4
+ version: '0.4'
5
+ platform: ruby
6
+ authors:
7
+ - dearblue
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-05-08 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rake
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '11.0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '11.0'
27
+ description: 'ruby bindings for liblzma in the xz utilities <http://tukaani.org/xz/>
28
+
29
+ '
30
+ email: dearblue@users.osdn.me
31
+ executables: []
32
+ extensions:
33
+ - ext/extconf.rb
34
+ extra_rdoc_files:
35
+ - HISTORY.ja.md
36
+ - LICENSE
37
+ - README.md
38
+ - ext/consts.c
39
+ - ext/error.c
40
+ - ext/extlzma.c
41
+ - ext/extlzma.h
42
+ - ext/filter.c
43
+ - ext/index.c
44
+ - ext/stream.c
45
+ - ext/utils.c
46
+ - lib/extlzma.rb
47
+ - lib/extlzma/version.rb
48
+ files:
49
+ - HISTORY.ja.md
50
+ - LICENSE
51
+ - README.md
52
+ - Rakefile
53
+ - examples/01-easy_using.rb
54
+ - examples/02-streaming.rb
55
+ - ext/consts.c
56
+ - ext/error.c
57
+ - ext/extconf.rb
58
+ - ext/extlzma.c
59
+ - ext/extlzma.h
60
+ - ext/filter.c
61
+ - ext/index.c
62
+ - ext/stream.c
63
+ - ext/utils.c
64
+ - gemstub.rb
65
+ - lib/extlzma.rb
66
+ - lib/extlzma/version.rb
67
+ - test/sampledata.rb
68
+ - test/test_extlzma.rb
69
+ homepage: https://osdn.jp/projects/rutsubo/
70
+ licenses:
71
+ - BSD-2-Clause
72
+ metadata: {}
73
+ post_install_message:
74
+ rdoc_options:
75
+ - "--charset"
76
+ - UTF-8
77
+ - "-m"
78
+ - README.md
79
+ require_paths:
80
+ - lib
81
+ required_ruby_version: !ruby/object:Gem::Requirement
82
+ requirements:
83
+ - - ">="
84
+ - !ruby/object:Gem::Version
85
+ version: '2.0'
86
+ required_rubygems_version: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - ">="
89
+ - !ruby/object:Gem::Version
90
+ version: '0'
91
+ requirements: []
92
+ rubyforge_project:
93
+ rubygems_version: 2.6.2
94
+ signing_key:
95
+ specification_version: 4
96
+ summary: ruby bindings for liblzma in the xz utilities
97
+ test_files: []
98
+ has_rdoc: