rims 0.2.6 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|