fluentd 1.17.0-x86-mingw32 → 1.17.1-x86-mingw32

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.
Files changed (259) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +46 -0
  3. data/README.md +1 -0
  4. data/SECURITY.md +2 -2
  5. data/fluent.conf +14 -14
  6. data/lib/fluent/command/cap_ctl.rb +4 -4
  7. data/lib/fluent/compat/call_super_mixin.rb +3 -3
  8. data/lib/fluent/compat/propagate_default.rb +4 -4
  9. data/lib/fluent/config/yaml_parser/parser.rb +4 -0
  10. data/lib/fluent/log/console_adapter.rb +4 -2
  11. data/lib/fluent/plugin/in_exec.rb +14 -2
  12. data/lib/fluent/plugin/in_http.rb +1 -1
  13. data/lib/fluent/plugin/in_sample.rb +13 -7
  14. data/lib/fluent/plugin/in_tail.rb +65 -23
  15. data/lib/fluent/plugin/out_copy.rb +1 -1
  16. data/lib/fluent/plugin/out_file.rb +8 -0
  17. data/lib/fluent/plugin/out_http.rb +12 -0
  18. data/lib/fluent/plugin/parser_json.rb +4 -12
  19. data/lib/fluent/plugin_helper/http_server/server.rb +1 -1
  20. data/lib/fluent/version.rb +1 -1
  21. data/templates/new_gem/fluent-plugin.gemspec.erb +6 -5
  22. metadata +25 -472
  23. data/.github/DISCUSSION_TEMPLATE/q-a-japanese.yml +0 -50
  24. data/.github/DISCUSSION_TEMPLATE/q-a.yml +0 -47
  25. data/.github/ISSUE_TEMPLATE/bug_report.yml +0 -71
  26. data/.github/ISSUE_TEMPLATE/config.yml +0 -5
  27. data/.github/ISSUE_TEMPLATE/feature_request.yml +0 -39
  28. data/.github/ISSUE_TEMPLATE.md +0 -17
  29. data/.github/PULL_REQUEST_TEMPLATE.md +0 -14
  30. data/.github/workflows/stale-actions.yml +0 -24
  31. data/.github/workflows/test-ruby-head.yml +0 -31
  32. data/.github/workflows/test.yml +0 -32
  33. data/.gitignore +0 -30
  34. data/Gemfile +0 -9
  35. data/fluentd.gemspec +0 -62
  36. data/test/command/test_binlog_reader.rb +0 -362
  37. data/test/command/test_ca_generate.rb +0 -70
  38. data/test/command/test_cap_ctl.rb +0 -100
  39. data/test/command/test_cat.rb +0 -128
  40. data/test/command/test_ctl.rb +0 -56
  41. data/test/command/test_fluentd.rb +0 -1291
  42. data/test/command/test_plugin_config_formatter.rb +0 -397
  43. data/test/command/test_plugin_generator.rb +0 -109
  44. data/test/compat/test_calls_super.rb +0 -166
  45. data/test/compat/test_parser.rb +0 -92
  46. data/test/config/assertions.rb +0 -42
  47. data/test/config/test_config_parser.rb +0 -551
  48. data/test/config/test_configurable.rb +0 -1784
  49. data/test/config/test_configure_proxy.rb +0 -604
  50. data/test/config/test_dsl.rb +0 -415
  51. data/test/config/test_element.rb +0 -518
  52. data/test/config/test_literal_parser.rb +0 -309
  53. data/test/config/test_plugin_configuration.rb +0 -56
  54. data/test/config/test_section.rb +0 -191
  55. data/test/config/test_system_config.rb +0 -195
  56. data/test/config/test_types.rb +0 -408
  57. data/test/counter/test_client.rb +0 -563
  58. data/test/counter/test_error.rb +0 -44
  59. data/test/counter/test_mutex_hash.rb +0 -179
  60. data/test/counter/test_server.rb +0 -589
  61. data/test/counter/test_store.rb +0 -258
  62. data/test/counter/test_validator.rb +0 -137
  63. data/test/helper.rb +0 -155
  64. data/test/helpers/fuzzy_assert.rb +0 -89
  65. data/test/helpers/process_extenstion.rb +0 -33
  66. data/test/log/test_console_adapter.rb +0 -117
  67. data/test/plugin/data/2010/01/20100102-030405.log +0 -0
  68. data/test/plugin/data/2010/01/20100102-030406.log +0 -0
  69. data/test/plugin/data/2010/01/20100102.log +0 -0
  70. data/test/plugin/data/log/bar +0 -0
  71. data/test/plugin/data/log/foo/bar.log +0 -0
  72. data/test/plugin/data/log/foo/bar2 +0 -0
  73. data/test/plugin/data/log/test.log +0 -0
  74. data/test/plugin/data/log_numeric/01.log +0 -0
  75. data/test/plugin/data/log_numeric/02.log +0 -0
  76. data/test/plugin/data/log_numeric/12.log +0 -0
  77. data/test/plugin/data/log_numeric/14.log +0 -0
  78. data/test/plugin/data/sd_file/config +0 -11
  79. data/test/plugin/data/sd_file/config.json +0 -17
  80. data/test/plugin/data/sd_file/config.yaml +0 -11
  81. data/test/plugin/data/sd_file/config.yml +0 -11
  82. data/test/plugin/data/sd_file/invalid_config.yml +0 -7
  83. data/test/plugin/in_tail/test_fifo.rb +0 -121
  84. data/test/plugin/in_tail/test_io_handler.rb +0 -150
  85. data/test/plugin/in_tail/test_position_file.rb +0 -346
  86. data/test/plugin/out_forward/test_ack_handler.rb +0 -140
  87. data/test/plugin/out_forward/test_connection_manager.rb +0 -145
  88. data/test/plugin/out_forward/test_handshake_protocol.rb +0 -112
  89. data/test/plugin/out_forward/test_load_balancer.rb +0 -106
  90. data/test/plugin/out_forward/test_socket_cache.rb +0 -174
  91. data/test/plugin/test_bare_output.rb +0 -131
  92. data/test/plugin/test_base.rb +0 -247
  93. data/test/plugin/test_buf_file.rb +0 -1314
  94. data/test/plugin/test_buf_file_single.rb +0 -898
  95. data/test/plugin/test_buf_memory.rb +0 -42
  96. data/test/plugin/test_buffer.rb +0 -1493
  97. data/test/plugin/test_buffer_chunk.rb +0 -209
  98. data/test/plugin/test_buffer_file_chunk.rb +0 -871
  99. data/test/plugin/test_buffer_file_single_chunk.rb +0 -611
  100. data/test/plugin/test_buffer_memory_chunk.rb +0 -339
  101. data/test/plugin/test_compressable.rb +0 -87
  102. data/test/plugin/test_file_util.rb +0 -96
  103. data/test/plugin/test_filter.rb +0 -368
  104. data/test/plugin/test_filter_grep.rb +0 -697
  105. data/test/plugin/test_filter_parser.rb +0 -731
  106. data/test/plugin/test_filter_record_transformer.rb +0 -577
  107. data/test/plugin/test_filter_stdout.rb +0 -207
  108. data/test/plugin/test_formatter_csv.rb +0 -136
  109. data/test/plugin/test_formatter_hash.rb +0 -38
  110. data/test/plugin/test_formatter_json.rb +0 -61
  111. data/test/plugin/test_formatter_ltsv.rb +0 -70
  112. data/test/plugin/test_formatter_msgpack.rb +0 -28
  113. data/test/plugin/test_formatter_out_file.rb +0 -116
  114. data/test/plugin/test_formatter_single_value.rb +0 -44
  115. data/test/plugin/test_formatter_tsv.rb +0 -76
  116. data/test/plugin/test_in_debug_agent.rb +0 -49
  117. data/test/plugin/test_in_exec.rb +0 -261
  118. data/test/plugin/test_in_forward.rb +0 -1178
  119. data/test/plugin/test_in_gc_stat.rb +0 -62
  120. data/test/plugin/test_in_http.rb +0 -1124
  121. data/test/plugin/test_in_monitor_agent.rb +0 -922
  122. data/test/plugin/test_in_object_space.rb +0 -66
  123. data/test/plugin/test_in_sample.rb +0 -190
  124. data/test/plugin/test_in_syslog.rb +0 -505
  125. data/test/plugin/test_in_tail.rb +0 -3429
  126. data/test/plugin/test_in_tcp.rb +0 -328
  127. data/test/plugin/test_in_udp.rb +0 -296
  128. data/test/plugin/test_in_unix.rb +0 -181
  129. data/test/plugin/test_input.rb +0 -137
  130. data/test/plugin/test_metadata.rb +0 -89
  131. data/test/plugin/test_metrics.rb +0 -294
  132. data/test/plugin/test_metrics_local.rb +0 -96
  133. data/test/plugin/test_multi_output.rb +0 -204
  134. data/test/plugin/test_out_copy.rb +0 -308
  135. data/test/plugin/test_out_exec.rb +0 -312
  136. data/test/plugin/test_out_exec_filter.rb +0 -606
  137. data/test/plugin/test_out_file.rb +0 -1038
  138. data/test/plugin/test_out_forward.rb +0 -1349
  139. data/test/plugin/test_out_http.rb +0 -557
  140. data/test/plugin/test_out_null.rb +0 -105
  141. data/test/plugin/test_out_relabel.rb +0 -28
  142. data/test/plugin/test_out_roundrobin.rb +0 -146
  143. data/test/plugin/test_out_secondary_file.rb +0 -458
  144. data/test/plugin/test_out_stdout.rb +0 -205
  145. data/test/plugin/test_out_stream.rb +0 -103
  146. data/test/plugin/test_output.rb +0 -1334
  147. data/test/plugin/test_output_as_buffered.rb +0 -2024
  148. data/test/plugin/test_output_as_buffered_backup.rb +0 -363
  149. data/test/plugin/test_output_as_buffered_compress.rb +0 -179
  150. data/test/plugin/test_output_as_buffered_overflow.rb +0 -250
  151. data/test/plugin/test_output_as_buffered_retries.rb +0 -966
  152. data/test/plugin/test_output_as_buffered_secondary.rb +0 -882
  153. data/test/plugin/test_output_as_standard.rb +0 -374
  154. data/test/plugin/test_owned_by.rb +0 -34
  155. data/test/plugin/test_parser.rb +0 -399
  156. data/test/plugin/test_parser_apache.rb +0 -42
  157. data/test/plugin/test_parser_apache2.rb +0 -47
  158. data/test/plugin/test_parser_apache_error.rb +0 -45
  159. data/test/plugin/test_parser_csv.rb +0 -200
  160. data/test/plugin/test_parser_json.rb +0 -244
  161. data/test/plugin/test_parser_labeled_tsv.rb +0 -160
  162. data/test/plugin/test_parser_msgpack.rb +0 -127
  163. data/test/plugin/test_parser_multiline.rb +0 -111
  164. data/test/plugin/test_parser_nginx.rb +0 -88
  165. data/test/plugin/test_parser_none.rb +0 -52
  166. data/test/plugin/test_parser_regexp.rb +0 -284
  167. data/test/plugin/test_parser_syslog.rb +0 -650
  168. data/test/plugin/test_parser_tsv.rb +0 -122
  169. data/test/plugin/test_sd_file.rb +0 -228
  170. data/test/plugin/test_sd_srv.rb +0 -230
  171. data/test/plugin/test_storage.rb +0 -166
  172. data/test/plugin/test_storage_local.rb +0 -335
  173. data/test/plugin/test_string_util.rb +0 -26
  174. data/test/plugin_helper/data/cert/cert-key.pem +0 -27
  175. data/test/plugin_helper/data/cert/cert-with-CRLF.pem +0 -19
  176. data/test/plugin_helper/data/cert/cert-with-no-newline.pem +0 -19
  177. data/test/plugin_helper/data/cert/cert.pem +0 -19
  178. data/test/plugin_helper/data/cert/cert_chains/ca-cert-key.pem +0 -27
  179. data/test/plugin_helper/data/cert/cert_chains/ca-cert.pem +0 -20
  180. data/test/plugin_helper/data/cert/cert_chains/cert-key.pem +0 -27
  181. data/test/plugin_helper/data/cert/cert_chains/cert.pem +0 -40
  182. data/test/plugin_helper/data/cert/empty.pem +0 -0
  183. data/test/plugin_helper/data/cert/generate_cert.rb +0 -125
  184. data/test/plugin_helper/data/cert/with_ca/ca-cert-key-pass.pem +0 -30
  185. data/test/plugin_helper/data/cert/with_ca/ca-cert-key.pem +0 -27
  186. data/test/plugin_helper/data/cert/with_ca/ca-cert-pass.pem +0 -20
  187. data/test/plugin_helper/data/cert/with_ca/ca-cert.pem +0 -20
  188. data/test/plugin_helper/data/cert/with_ca/cert-key-pass.pem +0 -30
  189. data/test/plugin_helper/data/cert/with_ca/cert-key.pem +0 -27
  190. data/test/plugin_helper/data/cert/with_ca/cert-pass.pem +0 -21
  191. data/test/plugin_helper/data/cert/with_ca/cert.pem +0 -21
  192. data/test/plugin_helper/data/cert/without_ca/cert-key-pass.pem +0 -30
  193. data/test/plugin_helper/data/cert/without_ca/cert-key.pem +0 -27
  194. data/test/plugin_helper/data/cert/without_ca/cert-pass.pem +0 -20
  195. data/test/plugin_helper/data/cert/without_ca/cert.pem +0 -20
  196. data/test/plugin_helper/http_server/test_app.rb +0 -65
  197. data/test/plugin_helper/http_server/test_route.rb +0 -32
  198. data/test/plugin_helper/service_discovery/test_manager.rb +0 -93
  199. data/test/plugin_helper/service_discovery/test_round_robin_balancer.rb +0 -21
  200. data/test/plugin_helper/test_cert_option.rb +0 -25
  201. data/test/plugin_helper/test_child_process.rb +0 -862
  202. data/test/plugin_helper/test_compat_parameters.rb +0 -358
  203. data/test/plugin_helper/test_event_emitter.rb +0 -80
  204. data/test/plugin_helper/test_event_loop.rb +0 -52
  205. data/test/plugin_helper/test_extract.rb +0 -194
  206. data/test/plugin_helper/test_formatter.rb +0 -255
  207. data/test/plugin_helper/test_http_server_helper.rb +0 -372
  208. data/test/plugin_helper/test_inject.rb +0 -561
  209. data/test/plugin_helper/test_metrics.rb +0 -137
  210. data/test/plugin_helper/test_parser.rb +0 -264
  211. data/test/plugin_helper/test_record_accessor.rb +0 -238
  212. data/test/plugin_helper/test_retry_state.rb +0 -1006
  213. data/test/plugin_helper/test_server.rb +0 -1895
  214. data/test/plugin_helper/test_service_discovery.rb +0 -165
  215. data/test/plugin_helper/test_socket.rb +0 -146
  216. data/test/plugin_helper/test_storage.rb +0 -542
  217. data/test/plugin_helper/test_thread.rb +0 -164
  218. data/test/plugin_helper/test_timer.rb +0 -130
  219. data/test/scripts/exec_script.rb +0 -32
  220. data/test/scripts/fluent/plugin/formatter1/formatter_test1.rb +0 -7
  221. data/test/scripts/fluent/plugin/formatter2/formatter_test2.rb +0 -7
  222. data/test/scripts/fluent/plugin/formatter_known.rb +0 -8
  223. data/test/scripts/fluent/plugin/out_test.rb +0 -81
  224. data/test/scripts/fluent/plugin/out_test2.rb +0 -80
  225. data/test/scripts/fluent/plugin/parser_known.rb +0 -4
  226. data/test/test_capability.rb +0 -74
  227. data/test/test_clock.rb +0 -164
  228. data/test/test_config.rb +0 -369
  229. data/test/test_configdsl.rb +0 -148
  230. data/test/test_daemonizer.rb +0 -91
  231. data/test/test_engine.rb +0 -203
  232. data/test/test_event.rb +0 -531
  233. data/test/test_event_router.rb +0 -348
  234. data/test/test_event_time.rb +0 -199
  235. data/test/test_file_wrapper.rb +0 -53
  236. data/test/test_filter.rb +0 -121
  237. data/test/test_fluent_log_event_router.rb +0 -99
  238. data/test/test_formatter.rb +0 -369
  239. data/test/test_input.rb +0 -31
  240. data/test/test_log.rb +0 -1076
  241. data/test/test_match.rb +0 -148
  242. data/test/test_mixin.rb +0 -351
  243. data/test/test_msgpack_factory.rb +0 -50
  244. data/test/test_oj_options.rb +0 -55
  245. data/test/test_output.rb +0 -278
  246. data/test/test_plugin.rb +0 -251
  247. data/test/test_plugin_classes.rb +0 -370
  248. data/test/test_plugin_helper.rb +0 -81
  249. data/test/test_plugin_id.rb +0 -119
  250. data/test/test_process.rb +0 -14
  251. data/test/test_root_agent.rb +0 -951
  252. data/test/test_static_config_analysis.rb +0 -177
  253. data/test/test_supervisor.rb +0 -821
  254. data/test/test_test_drivers.rb +0 -136
  255. data/test/test_time_formatter.rb +0 -301
  256. data/test/test_time_parser.rb +0 -362
  257. data/test/test_tls.rb +0 -65
  258. data/test/test_unique_id.rb +0 -47
  259. data/test/test_variable_store.rb +0 -65
@@ -1,604 +0,0 @@
1
- require_relative '../helper'
2
- require 'fluent/config/configure_proxy'
3
-
4
- module Fluent::Config
5
- class TestConfigureProxy < ::Test::Unit::TestCase
6
- setup do
7
- @type_lookup = ->(type) { Fluent::Configurable.lookup_type(type) }
8
- end
9
-
10
- sub_test_case 'to generate a instance' do
11
- sub_test_case '#initialize' do
12
- test 'has default values' do
13
- proxy = Fluent::Config::ConfigureProxy.new('section', type_lookup: @type_lookup)
14
- assert_equal(:section, proxy.name)
15
-
16
- proxy = Fluent::Config::ConfigureProxy.new(:section, type_lookup: @type_lookup)
17
- assert_equal(:section, proxy.name)
18
- assert_nil(proxy.param_name)
19
- assert_equal(:section, proxy.variable_name)
20
- assert_false(proxy.root?)
21
- assert_nil(proxy.init)
22
- assert_nil(proxy.required)
23
- assert_false(proxy.required?)
24
- assert_nil(proxy.multi)
25
- assert_true(proxy.multi?)
26
- end
27
-
28
- test 'can specify param_name/required/multi with optional arguments' do
29
- proxy = Fluent::Config::ConfigureProxy.new(:section, param_name: 'sections', init: true, required: false, multi: true, type_lookup: @type_lookup)
30
- assert_equal(:section, proxy.name)
31
- assert_equal(:sections, proxy.param_name)
32
- assert_equal(:sections, proxy.variable_name)
33
- assert_false(proxy.required)
34
- assert_false(proxy.required?)
35
- assert_true(proxy.multi)
36
- assert_true(proxy.multi?)
37
-
38
- proxy = Fluent::Config::ConfigureProxy.new(:section, param_name: :sections, init: false, required: true, multi: false, type_lookup: @type_lookup)
39
- assert_equal(:section, proxy.name)
40
- assert_equal(:sections, proxy.param_name)
41
- assert_equal(:sections, proxy.variable_name)
42
- assert_true(proxy.required)
43
- assert_true(proxy.required?)
44
- assert_false(proxy.multi)
45
- assert_false(proxy.multi?)
46
- end
47
- test 'raise error if both of init and required are true' do
48
- assert_raise RuntimeError.new("init and required are exclusive") do
49
- Fluent::Config::ConfigureProxy.new(:section, init: true, required: true, type_lookup: @type_lookup)
50
- end
51
- end
52
- end
53
-
54
- sub_test_case '#merge' do
55
- test 'generate a new instance which values are overwritten by the argument object' do
56
- proxy = p1 = Fluent::Config::ConfigureProxy.new(:section, type_lookup: @type_lookup)
57
- assert_equal(:section, proxy.name)
58
- assert_nil(proxy.param_name)
59
- assert_equal(:section, proxy.variable_name)
60
- assert_nil(proxy.init)
61
- assert_nil(proxy.required)
62
- assert_false(proxy.required?)
63
- assert_nil(proxy.multi)
64
- assert_true(proxy.multi?)
65
- assert_nil(proxy.configured_in_section)
66
-
67
- p2 = Fluent::Config::ConfigureProxy.new(:section, init: false, required: true, multi: false, type_lookup: @type_lookup)
68
- proxy = p1.merge(p2)
69
- assert_equal(:section, proxy.name)
70
- assert_nil(proxy.param_name)
71
- assert_equal(:section, proxy.variable_name)
72
- assert_false(proxy.init)
73
- assert_false(proxy.init?)
74
- assert_true(proxy.required)
75
- assert_true(proxy.required?)
76
- assert_false(proxy.multi)
77
- assert_false(proxy.multi?)
78
- assert_nil(proxy.configured_in_section)
79
- end
80
-
81
- test 'does not overwrite with argument object without any specifications of required/multi' do
82
- p1 = Fluent::Config::ConfigureProxy.new(:section1, param_name: :sections, type_lookup: @type_lookup)
83
- p1.configured_in_section = :subsection
84
- p2 = Fluent::Config::ConfigureProxy.new(:section2, init: false, required: true, multi: false, type_lookup: @type_lookup)
85
- p3 = Fluent::Config::ConfigureProxy.new(:section3, type_lookup: @type_lookup)
86
- proxy = p1.merge(p2).merge(p3)
87
- assert_equal(:section1, proxy.name)
88
- assert_equal(:sections, proxy.param_name)
89
- assert_equal(:sections, proxy.variable_name)
90
- assert_false(proxy.init)
91
- assert_false(proxy.init?)
92
- assert_true(proxy.required)
93
- assert_true(proxy.required?)
94
- assert_false(proxy.multi)
95
- assert_false(proxy.multi?)
96
- assert_equal :subsection, proxy.configured_in_section
97
- end
98
-
99
- test "does overwrite name of proxy for root sections which are used for plugins" do
100
- # latest plugin class shows actual plugin implementation
101
- p1 = Fluent::Config::ConfigureProxy.new('Fluent::Plugin::MyP1'.to_sym, root: true, required: true, multi: false, type_lookup: @type_lookup)
102
- p1.config_param :key1, :integer
103
-
104
- p2 = Fluent::Config::ConfigureProxy.new('Fluent::Plugin::MyP2'.to_sym, root: true, required: true, multi: false, type_lookup: @type_lookup)
105
- p2.config_param :key2, :string, default: "value2"
106
-
107
- merged = p1.merge(p2)
108
-
109
- assert_equal 'Fluent::Plugin::MyP2'.to_sym, merged.name
110
- assert_true merged.root?
111
- end
112
- end
113
-
114
- sub_test_case '#overwrite_defaults' do
115
- test 'overwrites only defaults with others defaults' do
116
- type_lookup = ->(type) { Fluent::Configurable.lookup_type(type) }
117
- p1 = Fluent::Config::ConfigureProxy.new(:mychild, type_lookup: type_lookup)
118
- p1.configured_in_section = :child
119
- p1.config_param(:k1a, :string)
120
- p1.config_param(:k1b, :string)
121
- p1.config_param(:k2a, :integer, default: 0)
122
- p1.config_param(:k2b, :integer, default: 0)
123
- p1.config_section(:sub1) do
124
- config_param :k3, :time, default: 30
125
- end
126
-
127
- p0 = Fluent::Config::ConfigureProxy.new(:myparent, type_lookup: type_lookup)
128
- p0.config_section(:child) do
129
- config_set_default :k1a, "v1a"
130
- config_param :k1b, :string, default: "v1b"
131
- config_set_default :k2a, 21
132
- config_param :k2b, :integer, default: 22
133
- config_section :sub1 do
134
- config_set_default :k3, 60
135
- end
136
- end
137
-
138
- p1.overwrite_defaults(p0.sections[:child])
139
-
140
- assert_equal "v1a", p1.defaults[:k1a]
141
- assert_equal "v1b", p1.defaults[:k1b]
142
- assert_equal 21, p1.defaults[:k2a]
143
- assert_equal 22, p1.defaults[:k2b]
144
- assert_equal 60, p1.sections[:sub1].defaults[:k3]
145
- end
146
- end
147
-
148
- sub_test_case '#configured_in' do
149
- test 'sets a section name which have configuration parameters of target plugin in owners configuration' do
150
- proxy = Fluent::Config::ConfigureProxy.new(:section, type_lookup: @type_lookup)
151
- proxy.configured_in(:mysection)
152
- assert_equal :mysection, proxy.configured_in_section
153
- end
154
-
155
- test 'do not permit to be called twice' do
156
- proxy = Fluent::Config::ConfigureProxy.new(:section, type_lookup: @type_lookup)
157
- proxy.configured_in(:mysection)
158
- assert_raise(ArgumentError) { proxy.configured_in(:myothersection) }
159
- end
160
- end
161
-
162
- sub_test_case '#config_param / #config_set_default / #config_argument' do
163
- setup do
164
- @proxy = Fluent::Config::ConfigureProxy.new(:section, type_lookup: @type_lookup)
165
- end
166
-
167
- test 'handles configuration parameters without type as string' do
168
- @proxy.config_argument(:label)
169
- @proxy.config_param(:name)
170
- assert_equal :label, @proxy.argument[0]
171
- assert_equal :string, @proxy.argument[2][:type]
172
- assert_equal :string, @proxy.params[:name][1][:type]
173
- end
174
-
175
- data(
176
- default: [:default, nil],
177
- alias: [:alias, :alias_name_in_config],
178
- secret: [:secret, true],
179
- skip_accessor: [:skip_accessor, true],
180
- deprecated: [:deprecated, 'it is deprecated'],
181
- obsoleted: [:obsoleted, 'it is obsoleted'],
182
- desc: [:desc, "description"],
183
- )
184
- test 'always allow options for all types' do |(option, value)|
185
- opt = {option => value}
186
- assert_nothing_raised{ @proxy.config_argument(:param0, **opt) }
187
- assert_nothing_raised{ @proxy.config_param(:p1, :string, **opt) }
188
- assert_nothing_raised{ @proxy.config_param(:p2, :enum, list: [:a, :b, :c], **opt) }
189
- assert_nothing_raised{ @proxy.config_param(:p3, :integer, **opt) }
190
- assert_nothing_raised{ @proxy.config_param(:p4, :float, **opt) }
191
- assert_nothing_raised{ @proxy.config_param(:p5, :size, **opt) }
192
- assert_nothing_raised{ @proxy.config_param(:p6, :bool, **opt) }
193
- assert_nothing_raised{ @proxy.config_param(:p7, :time, **opt) }
194
- assert_nothing_raised{ @proxy.config_param(:p8, :hash, **opt) }
195
- assert_nothing_raised{ @proxy.config_param(:p9, :array, **opt) }
196
- assert_nothing_raised{ @proxy.config_param(:pa, :regexp, **opt) }
197
- end
198
-
199
- data(string: :string, integer: :integer, float: :float, size: :size, bool: :bool, time: :time, hash: :hash, array: :array, regexp: :regexp)
200
- test 'deny list for non-enum types' do |type|
201
- assert_raise ArgumentError.new(":list is valid only for :enum type, but #{type}: arg") do
202
- @proxy.config_argument(:arg, type, list: [:a, :b])
203
- end
204
- assert_raise ArgumentError.new(":list is valid only for :enum type, but #{type}: p1") do
205
- @proxy.config_param(:p1, type, list: [:a, :b])
206
- end
207
- end
208
-
209
- data(string: :string, integer: :integer, float: :float, size: :size, bool: :bool, time: :time, regexp: :regexp)
210
- test 'deny value_type for non-hash/array types' do |type|
211
- assert_raise ArgumentError.new(":value_type is valid only for :hash and :array, but #{type}: arg") do
212
- @proxy.config_argument(:arg, type, value_type: :string)
213
- end
214
- assert_raise ArgumentError.new(":value_type is valid only for :hash and :array, but #{type}: p1") do
215
- @proxy.config_param(:p1, type, value_type: :integer)
216
- end
217
- end
218
-
219
- data(string: :string, integer: :integer, float: :float, size: :size, bool: :bool, time: :time, array: :array, regexp: :regexp)
220
- test 'deny symbolize_keys for non-hash types' do |type|
221
- assert_raise ArgumentError.new(":symbolize_keys is valid only for :hash, but #{type}: arg") do
222
- @proxy.config_argument(:arg, type, symbolize_keys: true)
223
- end
224
- assert_raise ArgumentError.new(":symbolize_keys is valid only for :hash, but #{type}: p1") do
225
- @proxy.config_param(:p1, type, symbolize_keys: true)
226
- end
227
- end
228
-
229
- data(string: :string, integer: :integer, float: :float, size: :size, bool: :bool, time: :time, hash: :hash, array: :array)
230
- test 'deny unknown options' do |type|
231
- assert_raise ArgumentError.new("unknown option 'required' for configuration parameter: arg") do
232
- @proxy.config_argument(:arg, type, required: true)
233
- end
234
- assert_raise ArgumentError.new("unknown option 'param_name' for configuration parameter: p1") do
235
- @proxy.config_argument(:p1, type, param_name: :yay)
236
- end
237
- end
238
-
239
- test 'desc gets string' do
240
- assert_nothing_raised do
241
- @proxy.config_param(:name, :string, desc: "it is description")
242
- end
243
- assert_raise ArgumentError.new("name1: desc must be a String, but Symbol") do
244
- @proxy.config_param(:name1, :string, desc: :yaaaaaaaay)
245
- end
246
- end
247
-
248
- test 'alias gets symbol' do
249
- assert_nothing_raised do
250
- @proxy.config_param(:name, :string, alias: :label)
251
- end
252
- assert_raise ArgumentError.new("name1: alias must be a Symbol, but String") do
253
- @proxy.config_param(:name1, :string, alias: 'label1')
254
- end
255
- end
256
-
257
- test 'secret gets true/false' do
258
- assert_nothing_raised do
259
- @proxy.config_param(:name1, :string, secret: false)
260
- end
261
- assert_nothing_raised do
262
- @proxy.config_param(:name2, :string, secret: true)
263
- end
264
- assert_raise ArgumentError.new("name3: secret must be true or false, but String") do
265
- @proxy.config_param(:name3, :string, secret: 'yes')
266
- end
267
- assert_raise ArgumentError.new("name4: secret must be true or false, but NilClass") do
268
- @proxy.config_param(:name4, :string, secret: nil)
269
- end
270
- end
271
-
272
- test 'symbolize_keys gets true/false' do
273
- assert_nothing_raised do
274
- @proxy.config_param(:data1, :hash, symbolize_keys: false)
275
- end
276
- assert_nothing_raised do
277
- @proxy.config_param(:data2, :hash, symbolize_keys: true)
278
- end
279
- assert_raise ArgumentError.new("data3: symbolize_keys must be true or false, but NilClass") do
280
- @proxy.config_param(:data3, :hash, symbolize_keys: nil)
281
- end
282
- end
283
-
284
- test 'value_type gets symbol' do
285
- assert_nothing_raised do
286
- @proxy.config_param(:data1, :array, value_type: :integer)
287
- end
288
- assert_raise ArgumentError.new("data2: value_type must be a Symbol, but Class") do
289
- @proxy.config_param(:data2, :array, value_type: Integer)
290
- end
291
- end
292
-
293
- test 'list gets an array of symbols' do
294
- assert_nothing_raised do
295
- @proxy.config_param(:proto1, :enum, list: [:a, :b])
296
- end
297
- assert_raise ArgumentError.new("proto2: enum parameter requires :list of Symbols") do
298
- @proxy.config_param(:proto2, :enum, list: nil)
299
- end
300
- assert_raise ArgumentError.new("proto3: enum parameter requires :list of Symbols") do
301
- @proxy.config_param(:proto3, :enum, list: ['a', 'b'])
302
- end
303
- assert_raise ArgumentError.new("proto4: enum parameter requires :list of Symbols") do
304
- @proxy.config_param(:proto4, :enum, list: [])
305
- end
306
- end
307
-
308
- test 'deprecated gets string' do
309
- assert_nothing_raised do
310
- @proxy.config_param(:name1, :string, deprecated: "use name2 instead")
311
- end
312
- assert_raise ArgumentError.new("name2: deprecated must be a String, but TrueClass") do
313
- @proxy.config_param(:name2, :string, deprecated: true)
314
- end
315
- end
316
-
317
- test 'obsoleted gets string' do
318
- assert_nothing_raised do
319
- @proxy.config_param(:name1, :string, obsoleted: "use name2 instead")
320
- end
321
- assert_raise ArgumentError.new("name2: obsoleted must be a String, but TrueClass") do
322
- @proxy.config_param(:name2, :string, obsoleted: true)
323
- end
324
- end
325
-
326
- test 'skip_accessor gets true/false' do
327
- assert_nothing_raised do
328
- @proxy.config_param(:format1, :string, skip_accessor: false)
329
- end
330
- assert_nothing_raised do
331
- @proxy.config_param(:format2, :string, skip_accessor: true)
332
- end
333
- assert_raise ArgumentError.new("format2: skip_accessor must be true or false, but String") do
334
- @proxy.config_param(:format2, :string, skip_accessor: 'yes')
335
- end
336
- end
337
-
338
- test 'list is required for :enum' do
339
- assert_nothing_raised do
340
- @proxy.config_param(:proto1, :enum, list: [:a, :b])
341
- end
342
- assert_raise ArgumentError.new("proto1: enum parameter requires :list of Symbols") do
343
- @proxy.config_param(:proto1, :enum, default: :a)
344
- end
345
- end
346
-
347
- test 'does not permit config_set_default for param w/ :default option' do
348
- @proxy.config_param(:name, :string, default: "name1")
349
- assert_raise(ArgumentError) { @proxy.config_set_default(:name, "name2") }
350
- end
351
-
352
- test 'does not permit default value specification twice' do
353
- @proxy.config_param(:name, :string)
354
- @proxy.config_set_default(:name, "name1")
355
- assert_raise(ArgumentError) { @proxy.config_set_default(:name, "name2") }
356
- end
357
-
358
- test 'does not permit default value specification twice, even on config_argument' do
359
- @proxy.config_param(:name, :string)
360
- @proxy.config_set_default(:name, "name1")
361
-
362
- @proxy.config_argument(:name)
363
- assert_raise(ArgumentError) { @proxy.config_argument(:name, default: "name2") }
364
- end
365
- end
366
-
367
- sub_test_case '#config_set_desc' do
368
- setup do
369
- @proxy = Fluent::Config::ConfigureProxy.new(:section, type_lookup: @type_lookup)
370
- end
371
-
372
- test 'does not permit description specification twice w/ :desc option' do
373
- @proxy.config_param(:name, :string, desc: "description")
374
- assert_raise(ArgumentError) { @proxy.config_set_desc(:name, "description2") }
375
- end
376
-
377
- test 'does not permit description specification twice' do
378
- @proxy.config_param(:name, :string)
379
- @proxy.config_set_desc(:name, "description")
380
- assert_raise(ArgumentError) { @proxy.config_set_desc(:name, "description2") }
381
- end
382
- end
383
-
384
- sub_test_case '#desc' do
385
- setup do
386
- @proxy = Fluent::Config::ConfigureProxy.new(:section, type_lookup: @type_lookup)
387
- end
388
-
389
- test 'permit to specify description twice' do
390
- @proxy.desc("description1")
391
- @proxy.desc("description2")
392
- @proxy.config_param(:name, :string)
393
- assert_equal("description2", @proxy.descriptions[:name])
394
- end
395
-
396
- test 'does not permit description specification twice' do
397
- @proxy.desc("description1")
398
- assert_raise(ArgumentError) do
399
- @proxy.config_param(:name, :string, desc: "description2")
400
- end
401
- end
402
- end
403
-
404
- sub_test_case '#dump_config_definition' do
405
- setup do
406
- @proxy = Fluent::Config::ConfigureProxy.new(:section, type_lookup: @type_lookup)
407
- end
408
-
409
- test 'empty proxy' do
410
- assert_equal({}, @proxy.dump_config_definition)
411
- end
412
-
413
- test 'plain proxy w/o default value' do
414
- @proxy.config_param(:name, :string)
415
- expected = {
416
- name: { type: :string, required: true }
417
- }
418
- assert_equal(expected, @proxy.dump_config_definition)
419
- end
420
-
421
- test 'plain proxy w/ default value' do
422
- @proxy.config_param(:name, :string, default: "name1")
423
- expected = {
424
- name: { type: :string, default: "name1", required: false }
425
- }
426
- assert_equal(expected, @proxy.dump_config_definition)
427
- end
428
-
429
- test 'plain proxy w/ default value using config_set_default' do
430
- @proxy.config_param(:name, :string)
431
- @proxy.config_set_default(:name, "name1")
432
- expected = {
433
- name: { type: :string, default: "name1", required: false }
434
- }
435
- assert_equal(expected, @proxy.dump_config_definition)
436
- end
437
-
438
- test 'plain proxy w/ argument' do
439
- @proxy.instance_eval do
440
- config_argument(:argname, :string)
441
- config_param(:name, :string, default: "name1")
442
- end
443
- expected = {
444
- argname: { type: :string, required: true, argument: true },
445
- name: { type: :string, default: "name1", required: false }
446
- }
447
- assert_equal(expected, @proxy.dump_config_definition)
448
- end
449
-
450
- test 'plain proxy w/ argument default value' do
451
- @proxy.instance_eval do
452
- config_argument(:argname, :string, default: "value")
453
- config_param(:name, :string, default: "name1")
454
- end
455
- expected = {
456
- argname: { type: :string, default: "value", required: false, argument: true },
457
- name: { type: :string, default: "name1", required: false }
458
- }
459
- assert_equal(expected, @proxy.dump_config_definition)
460
- end
461
-
462
- test 'plain proxy w/ argument overwriting default value' do
463
- @proxy.instance_eval do
464
- config_argument(:argname, :string)
465
- config_param(:name, :string, default: "name1")
466
- config_set_default(:argname, "value1")
467
- end
468
- expected = {
469
- argname: { type: :string, default: "value1", required: false, argument: true },
470
- name: { type: :string, default: "name1", required: false }
471
- }
472
- assert_equal(expected, @proxy.dump_config_definition)
473
- end
474
-
475
- test 'single sub proxy' do
476
- @proxy.config_section(:sub) do
477
- config_param(:name, :string, default: "name1")
478
- end
479
- expected = {
480
- sub: {
481
- alias: nil,
482
- multi: true,
483
- required: false,
484
- section: true,
485
- name: { type: :string, default: "name1", required: false }
486
- }
487
- }
488
- assert_equal(expected, @proxy.dump_config_definition)
489
- end
490
-
491
- test 'nested sub proxy' do
492
- @proxy.config_section(:sub) do
493
- config_param(:name1, :string, default: "name1")
494
- config_param(:name2, :string, default: "name2")
495
- config_section(:sub2) do
496
- config_param(:name3, :string, default: "name3")
497
- config_param(:name4, :string, default: "name4")
498
- end
499
- end
500
- expected = {
501
- sub: {
502
- alias: nil,
503
- multi: true,
504
- required: false,
505
- section: true,
506
- name1: { type: :string, default: "name1", required: false },
507
- name2: { type: :string, default: "name2", required: false },
508
- sub2: {
509
- alias: nil,
510
- multi: true,
511
- required: false,
512
- section: true,
513
- name3: { type: :string, default: "name3", required: false },
514
- name4: { type: :string, default: "name4", required: false },
515
- }
516
- }
517
- }
518
- assert_equal(expected, @proxy.dump_config_definition)
519
- end
520
-
521
- sub_test_case 'w/ description' do
522
- test 'single proxy' do
523
- @proxy.config_param(:name, :string, desc: "description for name")
524
- expected = {
525
- name: { type: :string, desc: "description for name", required: true }
526
- }
527
- assert_equal(expected, @proxy.dump_config_definition)
528
- end
529
-
530
- test 'single proxy using config_set_desc' do
531
- @proxy.config_param(:name, :string)
532
- @proxy.config_set_desc(:name, "description for name")
533
- expected = {
534
- name: { type: :string, desc: "description for name", required: true }
535
- }
536
- assert_equal(expected, @proxy.dump_config_definition)
537
- end
538
-
539
- test 'sub proxy' do
540
- @proxy.config_section(:sub) do
541
- config_param(:name1, :string, default: "name1", desc: "desc1")
542
- config_param(:name2, :string, default: "name2", desc: "desc2")
543
- config_section(:sub2) do
544
- config_param(:name3, :string, default: "name3")
545
- config_param(:name4, :string, default: "name4", desc: "desc4")
546
- end
547
- end
548
- expected = {
549
- sub: {
550
- alias: nil,
551
- multi: true,
552
- required: false,
553
- section: true,
554
- name1: { type: :string, default: "name1", desc: "desc1", required: false },
555
- name2: { type: :string, default: "name2", desc: "desc2", required: false },
556
- sub2: {
557
- alias: nil,
558
- multi: true,
559
- required: false,
560
- section: true,
561
- name3: { type: :string, default: "name3", required: false },
562
- name4: { type: :string, default: "name4", desc: "desc4", required: false },
563
- }
564
- }
565
- }
566
- assert_equal(expected, @proxy.dump_config_definition)
567
- end
568
-
569
- test 'sub proxy w/ desc method' do
570
- @proxy.config_section(:sub) do
571
- desc("desc1")
572
- config_param(:name1, :string, default: "name1")
573
- config_param(:name2, :string, default: "name2", desc: "desc2")
574
- config_section(:sub2) do
575
- config_param(:name3, :string, default: "name3")
576
- desc("desc4")
577
- config_param(:name4, :string, default: "name4")
578
- end
579
- end
580
- expected = {
581
- sub: {
582
- alias: nil,
583
- multi: true,
584
- required: false,
585
- section: true,
586
- name1: { type: :string, default: "name1", desc: "desc1", required: false },
587
- name2: { type: :string, default: "name2", desc: "desc2", required: false },
588
- sub2: {
589
- alias: nil,
590
- multi: true,
591
- required: false,
592
- section: true,
593
- name3: { type: :string, default: "name3", required: false },
594
- name4: { type: :string, default: "name4", desc: "desc4", required: false },
595
- }
596
- }
597
- }
598
- assert_equal(expected, @proxy.dump_config_definition)
599
- end
600
- end
601
- end
602
- end
603
- end
604
- end