rims 0.2.6 → 0.3.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +3 -0
- data/CHANGELOG.md +97 -0
- data/ChangeLog +49 -0
- data/Rakefile +8 -4
- data/lib/rims.rb +31 -29
- data/lib/rims/channel.rb +35 -10
- data/lib/rims/cmd.rb +109 -3
- data/lib/rims/error.rb +15 -0
- data/lib/rims/protocol.rb +28 -7
- data/lib/rims/protocol/decoder.rb +727 -457
- data/lib/rims/protocol/parser.rb +190 -82
- data/lib/rims/service.rb +172 -39
- data/lib/rims/test.rb +31 -20
- data/lib/rims/version.rb +1 -1
- data/load_test/Rakefile +3 -1
- data/rims.gemspec +14 -13
- data/test/cmd/test_command.rb +21 -1
- data/test/test_channel.rb +2 -1
- data/test/test_error.rb +33 -1
- data/test/test_lock.rb +4 -4
- data/test/test_passwd.rb +1 -1
- data/test/test_protocol_decoder.rb +555 -41
- data/test/test_protocol_fetch.rb +14 -10
- data/test/test_protocol_request.rb +305 -280
- data/test/test_protocol_search.rb +771 -893
- data/test/test_service.rb +165 -0
- metadata +22 -7
data/test/test_service.rb
CHANGED
@@ -446,6 +446,14 @@ module RIMS::Test
|
|
446
446
|
assert_equal(expected_value, @c.daemon_debug?)
|
447
447
|
end
|
448
448
|
|
449
|
+
data('default' => [ 0037, {} ],
|
450
|
+
'umask' => [ 0022, { daemon: { umask: 0022 } } ])
|
451
|
+
def test_daemon_umask(data)
|
452
|
+
expected_value, config = data
|
453
|
+
@c.load(config)
|
454
|
+
assert_equal(expected_value, @c.daemon_umask)
|
455
|
+
end
|
456
|
+
|
449
457
|
data('default' => [ File.join(BASE_DIR, 'rims.pid'), {} ],
|
450
458
|
'rel_path' => [ File.join(BASE_DIR, 'status'), { daemon: { status_file: 'status' } } ],
|
451
459
|
'abs_path' => [ '/var/run/rims.pid', { daemon: { status_file: '/var/run/rims.pid' } } ])
|
@@ -709,6 +717,133 @@ module RIMS::Test
|
|
709
717
|
assert_equal(expected_values, limits.to_h)
|
710
718
|
end
|
711
719
|
|
720
|
+
data('default' => [ 1024 * 8, {} ],
|
721
|
+
'config' => [ 1024 * 16, { protocol: { line_length_limit: 1024 * 16 } } ])
|
722
|
+
def test_protocol_line_length_limit(data)
|
723
|
+
expected_value, config = data
|
724
|
+
@c.load(config)
|
725
|
+
assert_equal(expected_value, @c.protocol_line_length_limit)
|
726
|
+
end
|
727
|
+
|
728
|
+
data('default' => [ 1024**2 * 10, {} ],
|
729
|
+
'config' => [ 1024**2 * 16, { protocol: { literal_size_limit: 1024**2 * 16 } } ])
|
730
|
+
def test_protocol_literal_size_limit(data)
|
731
|
+
expected_value, config = data
|
732
|
+
@c.load(config)
|
733
|
+
assert_equal(expected_value, @c.protocol_literal_size_limit)
|
734
|
+
end
|
735
|
+
|
736
|
+
data('default' => [ 1024**2 * 10, {} ],
|
737
|
+
'config' => [ 1024**2 * 16, { protocol: { command_size_limit: 1024**2 * 16 } } ])
|
738
|
+
def test_protocol_command_size_limit(data)
|
739
|
+
expected_value, config = data
|
740
|
+
@c.load(config)
|
741
|
+
assert_equal(expected_value, @c.protocol_command_size_limit)
|
742
|
+
end
|
743
|
+
|
744
|
+
data('default' => [ [ [ 'EUC-JP', Encoding::EUCJP_MS ],
|
745
|
+
[ 'ISO-2022-JP', Encoding::CP50221 ],
|
746
|
+
[ 'SHIFT_JIS', Encoding::WINDOWS_31J ]
|
747
|
+
],
|
748
|
+
{}
|
749
|
+
],
|
750
|
+
'use_default_aliases:yes' => [ [ [ 'EUC-JP', Encoding::EUCJP_MS ],
|
751
|
+
[ 'ISO-2022-JP', Encoding::CP50221 ],
|
752
|
+
[ 'SHIFT_JIS', Encoding::WINDOWS_31J ]
|
753
|
+
],
|
754
|
+
{ charset: {
|
755
|
+
use_default_aliases: true
|
756
|
+
}
|
757
|
+
}
|
758
|
+
],
|
759
|
+
'use_default_aliases:no' => [ [],
|
760
|
+
{ charset: {
|
761
|
+
use_default_aliases: false
|
762
|
+
}
|
763
|
+
}
|
764
|
+
],
|
765
|
+
'aliases' => [ [ [ 'EUC-JP', Encoding::EUCJP_MS ],
|
766
|
+
[ 'SHIFT_JIS', Encoding::WINDOWS_31J ]
|
767
|
+
],
|
768
|
+
{ charset: {
|
769
|
+
use_default_aliases: false,
|
770
|
+
aliases: [
|
771
|
+
{ name: 'euc-jp', encoding: 'eucJP-ms' },
|
772
|
+
{ name: 'Shift_JIS', encoding: 'Windows-31J' }
|
773
|
+
]
|
774
|
+
}
|
775
|
+
}
|
776
|
+
])
|
777
|
+
def test_charset_aliases(data)
|
778
|
+
expected_aliases, config = data
|
779
|
+
@c.load(config)
|
780
|
+
assert_equal(expected_aliases, @c.charset_aliases.to_a)
|
781
|
+
end
|
782
|
+
|
783
|
+
data('default' => [ { undef: :replace }, {} ],
|
784
|
+
'replace_invalid_byte_sequence: true' => [ { invalid: :replace,
|
785
|
+
undef: :replace
|
786
|
+
},
|
787
|
+
{ charset: {
|
788
|
+
convert_options: {
|
789
|
+
replace_invalid_byte_sequence: true
|
790
|
+
}
|
791
|
+
}
|
792
|
+
}
|
793
|
+
],
|
794
|
+
'replace_invalid_byte_sequence: false' => [ { undef: :replace },
|
795
|
+
{ charset: {
|
796
|
+
convert_options: {
|
797
|
+
replace_invalid_byte_sequence: false
|
798
|
+
}
|
799
|
+
}
|
800
|
+
}
|
801
|
+
],
|
802
|
+
'replace_undefined_character: true' => [ { undef: :replace },
|
803
|
+
{ charset: {
|
804
|
+
convert_options: {
|
805
|
+
replace_undefined_character: true
|
806
|
+
}
|
807
|
+
}
|
808
|
+
}
|
809
|
+
],
|
810
|
+
'replace_undefined_character: false' => [ {},
|
811
|
+
{ charset: {
|
812
|
+
convert_options: {
|
813
|
+
replace_undefined_character: false
|
814
|
+
}
|
815
|
+
}
|
816
|
+
}
|
817
|
+
],
|
818
|
+
'replaced_mark' => [ { undef: :replace,
|
819
|
+
replace: "\uFFFD"
|
820
|
+
},
|
821
|
+
{ charset: {
|
822
|
+
convert_options: {
|
823
|
+
replaced_mark: "\uFFFD"
|
824
|
+
}
|
825
|
+
}
|
826
|
+
}
|
827
|
+
],
|
828
|
+
'all' => [ { invalid: :replace,
|
829
|
+
undef: :replace,
|
830
|
+
replace: "\uFFFD"
|
831
|
+
},
|
832
|
+
{ charset: {
|
833
|
+
convert_options: {
|
834
|
+
replace_invalid_byte_sequence: true,
|
835
|
+
replace_undefined_character: true,
|
836
|
+
replaced_mark: "\uFFFD"
|
837
|
+
}
|
838
|
+
}
|
839
|
+
}
|
840
|
+
])
|
841
|
+
def test_charset_convert_options(data)
|
842
|
+
expected_options, config = data
|
843
|
+
@c.load(config)
|
844
|
+
assert_equal(expected_options, @c.charset_convert_options)
|
845
|
+
end
|
846
|
+
|
712
847
|
data('default' => [ 0, {} ],
|
713
848
|
'config' => [ 4,
|
714
849
|
{ drb_services: {
|
@@ -722,6 +857,21 @@ module RIMS::Test
|
|
722
857
|
assert_equal(expected_value, @c.drb_process_num)
|
723
858
|
end
|
724
859
|
|
860
|
+
data('default' => [ {}, {}, {} ],
|
861
|
+
'load_limit' => [ { load_limit: 134217728 },
|
862
|
+
{ load_limit: 134217728 },
|
863
|
+
{ drb_services: {
|
864
|
+
load_limit: 134217728
|
865
|
+
}
|
866
|
+
}
|
867
|
+
])
|
868
|
+
def test_drb_server_client_config(data)
|
869
|
+
expected_server_config, expected_client_config, config = data
|
870
|
+
@c.load(config)
|
871
|
+
assert_equal(expected_server_config, @c.drb_server_config)
|
872
|
+
assert_equal(expected_client_config, @c.drb_client_config)
|
873
|
+
end
|
874
|
+
|
725
875
|
data('default' => [ 100, {} ],
|
726
876
|
'config' => [ 1024,
|
727
877
|
{ drb_services: {
|
@@ -737,6 +887,21 @@ module RIMS::Test
|
|
737
887
|
assert_equal(expected_value, @c.bulk_response_count)
|
738
888
|
end
|
739
889
|
|
890
|
+
data('default' => [ 1024**2 * 10, {} ],
|
891
|
+
'config' => [ 33554432,
|
892
|
+
{ drb_services: {
|
893
|
+
engine: {
|
894
|
+
bulk_response_size: 33554432
|
895
|
+
}
|
896
|
+
}
|
897
|
+
}
|
898
|
+
])
|
899
|
+
def test_bulk_response_size(data)
|
900
|
+
expected_value, config = data
|
901
|
+
@c.load(config)
|
902
|
+
assert_equal(expected_value, @c.bulk_response_size)
|
903
|
+
end
|
904
|
+
|
740
905
|
data('default' => [ 30, {} ],
|
741
906
|
'config' => [ 15,
|
742
907
|
{ drb_services: {
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rims
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- TOKI Yoshinori
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-08-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rims-rfc822
|
@@ -16,28 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.2.
|
19
|
+
version: 0.2.2
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.2.
|
26
|
+
version: 0.2.2
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: riser
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.
|
33
|
+
version: 0.2.0
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 0.
|
40
|
+
version: 0.2.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: logger-joint
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -108,6 +108,20 @@ dependencies:
|
|
108
108
|
- - ">="
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: irb
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
111
125
|
description: |2
|
112
126
|
RIMS is Ruby IMap Server.
|
113
127
|
This gem provides a complete IMAP server by itself. The IMAP
|
@@ -121,6 +135,7 @@ extensions: []
|
|
121
135
|
extra_rdoc_files: []
|
122
136
|
files:
|
123
137
|
- ".gitignore"
|
138
|
+
- CHANGELOG.md
|
124
139
|
- ChangeLog
|
125
140
|
- Gemfile
|
126
141
|
- LICENSE.txt
|
@@ -189,7 +204,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
189
204
|
- !ruby/object:Gem::Version
|
190
205
|
version: '0'
|
191
206
|
requirements: []
|
192
|
-
rubygems_version: 3.
|
207
|
+
rubygems_version: 3.1.2
|
193
208
|
signing_key:
|
194
209
|
specification_version: 4
|
195
210
|
summary: RIMS is Ruby IMap Server
|