fluentd 1.16.5-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 (268) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +88 -0
  3. data/README.md +2 -1
  4. data/Rakefile +1 -1
  5. data/SECURITY.md +2 -2
  6. data/fluent.conf +14 -14
  7. data/lib/fluent/command/binlog_reader.rb +1 -1
  8. data/lib/fluent/command/cap_ctl.rb +4 -4
  9. data/lib/fluent/compat/call_super_mixin.rb +3 -3
  10. data/lib/fluent/compat/propagate_default.rb +4 -4
  11. data/lib/fluent/config/configure_proxy.rb +2 -2
  12. data/lib/fluent/config/types.rb +1 -1
  13. data/lib/fluent/config/yaml_parser/parser.rb +4 -0
  14. data/lib/fluent/configurable.rb +2 -2
  15. data/lib/fluent/counter/mutex_hash.rb +1 -1
  16. data/lib/fluent/fluent_log_event_router.rb +0 -2
  17. data/lib/fluent/log/console_adapter.rb +4 -2
  18. data/lib/fluent/plugin/buf_file.rb +1 -1
  19. data/lib/fluent/plugin/buffer/file_chunk.rb +1 -1
  20. data/lib/fluent/plugin/buffer/file_single_chunk.rb +2 -3
  21. data/lib/fluent/plugin/filter_parser.rb +26 -8
  22. data/lib/fluent/plugin/in_exec.rb +14 -2
  23. data/lib/fluent/plugin/in_http.rb +19 -54
  24. data/lib/fluent/plugin/in_sample.rb +13 -7
  25. data/lib/fluent/plugin/in_tail.rb +99 -25
  26. data/lib/fluent/plugin/out_copy.rb +1 -1
  27. data/lib/fluent/plugin/out_file.rb +8 -0
  28. data/lib/fluent/plugin/out_http.rb +137 -13
  29. data/lib/fluent/plugin/owned_by_mixin.rb +0 -1
  30. data/lib/fluent/plugin/parser_json.rb +26 -17
  31. data/lib/fluent/plugin/parser_msgpack.rb +24 -3
  32. data/lib/fluent/plugin_helper/http_server/server.rb +1 -1
  33. data/lib/fluent/plugin_helper/metrics.rb +2 -2
  34. data/lib/fluent/registry.rb +6 -6
  35. data/lib/fluent/test/output_test.rb +1 -1
  36. data/lib/fluent/unique_id.rb +1 -1
  37. data/lib/fluent/version.rb +1 -1
  38. data/templates/new_gem/fluent-plugin.gemspec.erb +6 -5
  39. metadata +109 -459
  40. data/.github/ISSUE_TEMPLATE/bug_report.yml +0 -71
  41. data/.github/ISSUE_TEMPLATE/config.yml +0 -5
  42. data/.github/ISSUE_TEMPLATE/feature_request.yml +0 -39
  43. data/.github/ISSUE_TEMPLATE.md +0 -17
  44. data/.github/PULL_REQUEST_TEMPLATE.md +0 -14
  45. data/.github/workflows/stale-actions.yml +0 -24
  46. data/.github/workflows/test.yml +0 -32
  47. data/.gitignore +0 -30
  48. data/Gemfile +0 -9
  49. data/fluentd.gemspec +0 -54
  50. data/test/command/test_binlog_reader.rb +0 -362
  51. data/test/command/test_ca_generate.rb +0 -70
  52. data/test/command/test_cap_ctl.rb +0 -100
  53. data/test/command/test_cat.rb +0 -128
  54. data/test/command/test_ctl.rb +0 -56
  55. data/test/command/test_fluentd.rb +0 -1291
  56. data/test/command/test_plugin_config_formatter.rb +0 -397
  57. data/test/command/test_plugin_generator.rb +0 -109
  58. data/test/compat/test_calls_super.rb +0 -166
  59. data/test/compat/test_parser.rb +0 -92
  60. data/test/config/assertions.rb +0 -42
  61. data/test/config/test_config_parser.rb +0 -551
  62. data/test/config/test_configurable.rb +0 -1784
  63. data/test/config/test_configure_proxy.rb +0 -604
  64. data/test/config/test_dsl.rb +0 -415
  65. data/test/config/test_element.rb +0 -518
  66. data/test/config/test_literal_parser.rb +0 -309
  67. data/test/config/test_plugin_configuration.rb +0 -56
  68. data/test/config/test_section.rb +0 -191
  69. data/test/config/test_system_config.rb +0 -195
  70. data/test/config/test_types.rb +0 -408
  71. data/test/counter/test_client.rb +0 -563
  72. data/test/counter/test_error.rb +0 -44
  73. data/test/counter/test_mutex_hash.rb +0 -179
  74. data/test/counter/test_server.rb +0 -589
  75. data/test/counter/test_store.rb +0 -258
  76. data/test/counter/test_validator.rb +0 -137
  77. data/test/helper.rb +0 -155
  78. data/test/helpers/fuzzy_assert.rb +0 -89
  79. data/test/helpers/process_extenstion.rb +0 -33
  80. data/test/log/test_console_adapter.rb +0 -110
  81. data/test/plugin/data/2010/01/20100102-030405.log +0 -0
  82. data/test/plugin/data/2010/01/20100102-030406.log +0 -0
  83. data/test/plugin/data/2010/01/20100102.log +0 -0
  84. data/test/plugin/data/log/bar +0 -0
  85. data/test/plugin/data/log/foo/bar.log +0 -0
  86. data/test/plugin/data/log/foo/bar2 +0 -0
  87. data/test/plugin/data/log/test.log +0 -0
  88. data/test/plugin/data/sd_file/config +0 -11
  89. data/test/plugin/data/sd_file/config.json +0 -17
  90. data/test/plugin/data/sd_file/config.yaml +0 -11
  91. data/test/plugin/data/sd_file/config.yml +0 -11
  92. data/test/plugin/data/sd_file/invalid_config.yml +0 -7
  93. data/test/plugin/in_tail/test_fifo.rb +0 -121
  94. data/test/plugin/in_tail/test_io_handler.rb +0 -150
  95. data/test/plugin/in_tail/test_position_file.rb +0 -346
  96. data/test/plugin/out_forward/test_ack_handler.rb +0 -140
  97. data/test/plugin/out_forward/test_connection_manager.rb +0 -145
  98. data/test/plugin/out_forward/test_handshake_protocol.rb +0 -112
  99. data/test/plugin/out_forward/test_load_balancer.rb +0 -106
  100. data/test/plugin/out_forward/test_socket_cache.rb +0 -174
  101. data/test/plugin/test_bare_output.rb +0 -131
  102. data/test/plugin/test_base.rb +0 -247
  103. data/test/plugin/test_buf_file.rb +0 -1314
  104. data/test/plugin/test_buf_file_single.rb +0 -898
  105. data/test/plugin/test_buf_memory.rb +0 -42
  106. data/test/plugin/test_buffer.rb +0 -1493
  107. data/test/plugin/test_buffer_chunk.rb +0 -209
  108. data/test/plugin/test_buffer_file_chunk.rb +0 -871
  109. data/test/plugin/test_buffer_file_single_chunk.rb +0 -611
  110. data/test/plugin/test_buffer_memory_chunk.rb +0 -339
  111. data/test/plugin/test_compressable.rb +0 -87
  112. data/test/plugin/test_file_util.rb +0 -96
  113. data/test/plugin/test_filter.rb +0 -368
  114. data/test/plugin/test_filter_grep.rb +0 -697
  115. data/test/plugin/test_filter_parser.rb +0 -731
  116. data/test/plugin/test_filter_record_transformer.rb +0 -577
  117. data/test/plugin/test_filter_stdout.rb +0 -207
  118. data/test/plugin/test_formatter_csv.rb +0 -136
  119. data/test/plugin/test_formatter_hash.rb +0 -38
  120. data/test/plugin/test_formatter_json.rb +0 -61
  121. data/test/plugin/test_formatter_ltsv.rb +0 -70
  122. data/test/plugin/test_formatter_msgpack.rb +0 -28
  123. data/test/plugin/test_formatter_out_file.rb +0 -116
  124. data/test/plugin/test_formatter_single_value.rb +0 -44
  125. data/test/plugin/test_formatter_tsv.rb +0 -76
  126. data/test/plugin/test_in_debug_agent.rb +0 -49
  127. data/test/plugin/test_in_exec.rb +0 -261
  128. data/test/plugin/test_in_forward.rb +0 -1178
  129. data/test/plugin/test_in_gc_stat.rb +0 -62
  130. data/test/plugin/test_in_http.rb +0 -1102
  131. data/test/plugin/test_in_monitor_agent.rb +0 -922
  132. data/test/plugin/test_in_object_space.rb +0 -66
  133. data/test/plugin/test_in_sample.rb +0 -190
  134. data/test/plugin/test_in_syslog.rb +0 -505
  135. data/test/plugin/test_in_tail.rb +0 -3288
  136. data/test/plugin/test_in_tcp.rb +0 -328
  137. data/test/plugin/test_in_udp.rb +0 -296
  138. data/test/plugin/test_in_unix.rb +0 -181
  139. data/test/plugin/test_input.rb +0 -137
  140. data/test/plugin/test_metadata.rb +0 -89
  141. data/test/plugin/test_metrics.rb +0 -294
  142. data/test/plugin/test_metrics_local.rb +0 -96
  143. data/test/plugin/test_multi_output.rb +0 -204
  144. data/test/plugin/test_out_copy.rb +0 -308
  145. data/test/plugin/test_out_exec.rb +0 -312
  146. data/test/plugin/test_out_exec_filter.rb +0 -606
  147. data/test/plugin/test_out_file.rb +0 -1038
  148. data/test/plugin/test_out_forward.rb +0 -1349
  149. data/test/plugin/test_out_http.rb +0 -429
  150. data/test/plugin/test_out_null.rb +0 -105
  151. data/test/plugin/test_out_relabel.rb +0 -28
  152. data/test/plugin/test_out_roundrobin.rb +0 -146
  153. data/test/plugin/test_out_secondary_file.rb +0 -458
  154. data/test/plugin/test_out_stdout.rb +0 -205
  155. data/test/plugin/test_out_stream.rb +0 -103
  156. data/test/plugin/test_output.rb +0 -1334
  157. data/test/plugin/test_output_as_buffered.rb +0 -2024
  158. data/test/plugin/test_output_as_buffered_backup.rb +0 -363
  159. data/test/plugin/test_output_as_buffered_compress.rb +0 -179
  160. data/test/plugin/test_output_as_buffered_overflow.rb +0 -250
  161. data/test/plugin/test_output_as_buffered_retries.rb +0 -966
  162. data/test/plugin/test_output_as_buffered_secondary.rb +0 -882
  163. data/test/plugin/test_output_as_standard.rb +0 -374
  164. data/test/plugin/test_owned_by.rb +0 -35
  165. data/test/plugin/test_parser.rb +0 -399
  166. data/test/plugin/test_parser_apache.rb +0 -42
  167. data/test/plugin/test_parser_apache2.rb +0 -47
  168. data/test/plugin/test_parser_apache_error.rb +0 -45
  169. data/test/plugin/test_parser_csv.rb +0 -200
  170. data/test/plugin/test_parser_json.rb +0 -138
  171. data/test/plugin/test_parser_labeled_tsv.rb +0 -160
  172. data/test/plugin/test_parser_multiline.rb +0 -111
  173. data/test/plugin/test_parser_nginx.rb +0 -88
  174. data/test/plugin/test_parser_none.rb +0 -52
  175. data/test/plugin/test_parser_regexp.rb +0 -284
  176. data/test/plugin/test_parser_syslog.rb +0 -650
  177. data/test/plugin/test_parser_tsv.rb +0 -122
  178. data/test/plugin/test_sd_file.rb +0 -228
  179. data/test/plugin/test_sd_srv.rb +0 -230
  180. data/test/plugin/test_storage.rb +0 -167
  181. data/test/plugin/test_storage_local.rb +0 -335
  182. data/test/plugin/test_string_util.rb +0 -26
  183. data/test/plugin_helper/data/cert/cert-key.pem +0 -27
  184. data/test/plugin_helper/data/cert/cert-with-CRLF.pem +0 -19
  185. data/test/plugin_helper/data/cert/cert-with-no-newline.pem +0 -19
  186. data/test/plugin_helper/data/cert/cert.pem +0 -19
  187. data/test/plugin_helper/data/cert/cert_chains/ca-cert-key.pem +0 -27
  188. data/test/plugin_helper/data/cert/cert_chains/ca-cert.pem +0 -20
  189. data/test/plugin_helper/data/cert/cert_chains/cert-key.pem +0 -27
  190. data/test/plugin_helper/data/cert/cert_chains/cert.pem +0 -40
  191. data/test/plugin_helper/data/cert/empty.pem +0 -0
  192. data/test/plugin_helper/data/cert/generate_cert.rb +0 -125
  193. data/test/plugin_helper/data/cert/with_ca/ca-cert-key-pass.pem +0 -30
  194. data/test/plugin_helper/data/cert/with_ca/ca-cert-key.pem +0 -27
  195. data/test/plugin_helper/data/cert/with_ca/ca-cert-pass.pem +0 -20
  196. data/test/plugin_helper/data/cert/with_ca/ca-cert.pem +0 -20
  197. data/test/plugin_helper/data/cert/with_ca/cert-key-pass.pem +0 -30
  198. data/test/plugin_helper/data/cert/with_ca/cert-key.pem +0 -27
  199. data/test/plugin_helper/data/cert/with_ca/cert-pass.pem +0 -21
  200. data/test/plugin_helper/data/cert/with_ca/cert.pem +0 -21
  201. data/test/plugin_helper/data/cert/without_ca/cert-key-pass.pem +0 -30
  202. data/test/plugin_helper/data/cert/without_ca/cert-key.pem +0 -27
  203. data/test/plugin_helper/data/cert/without_ca/cert-pass.pem +0 -20
  204. data/test/plugin_helper/data/cert/without_ca/cert.pem +0 -20
  205. data/test/plugin_helper/http_server/test_app.rb +0 -65
  206. data/test/plugin_helper/http_server/test_route.rb +0 -32
  207. data/test/plugin_helper/service_discovery/test_manager.rb +0 -93
  208. data/test/plugin_helper/service_discovery/test_round_robin_balancer.rb +0 -21
  209. data/test/plugin_helper/test_cert_option.rb +0 -25
  210. data/test/plugin_helper/test_child_process.rb +0 -862
  211. data/test/plugin_helper/test_compat_parameters.rb +0 -358
  212. data/test/plugin_helper/test_event_emitter.rb +0 -80
  213. data/test/plugin_helper/test_event_loop.rb +0 -52
  214. data/test/plugin_helper/test_extract.rb +0 -194
  215. data/test/plugin_helper/test_formatter.rb +0 -255
  216. data/test/plugin_helper/test_http_server_helper.rb +0 -372
  217. data/test/plugin_helper/test_inject.rb +0 -561
  218. data/test/plugin_helper/test_metrics.rb +0 -137
  219. data/test/plugin_helper/test_parser.rb +0 -264
  220. data/test/plugin_helper/test_record_accessor.rb +0 -238
  221. data/test/plugin_helper/test_retry_state.rb +0 -1006
  222. data/test/plugin_helper/test_server.rb +0 -1895
  223. data/test/plugin_helper/test_service_discovery.rb +0 -165
  224. data/test/plugin_helper/test_socket.rb +0 -146
  225. data/test/plugin_helper/test_storage.rb +0 -542
  226. data/test/plugin_helper/test_thread.rb +0 -164
  227. data/test/plugin_helper/test_timer.rb +0 -130
  228. data/test/scripts/exec_script.rb +0 -32
  229. data/test/scripts/fluent/plugin/formatter1/formatter_test1.rb +0 -7
  230. data/test/scripts/fluent/plugin/formatter2/formatter_test2.rb +0 -7
  231. data/test/scripts/fluent/plugin/formatter_known.rb +0 -8
  232. data/test/scripts/fluent/plugin/out_test.rb +0 -81
  233. data/test/scripts/fluent/plugin/out_test2.rb +0 -80
  234. data/test/scripts/fluent/plugin/parser_known.rb +0 -4
  235. data/test/test_capability.rb +0 -74
  236. data/test/test_clock.rb +0 -164
  237. data/test/test_config.rb +0 -369
  238. data/test/test_configdsl.rb +0 -148
  239. data/test/test_daemonizer.rb +0 -91
  240. data/test/test_engine.rb +0 -203
  241. data/test/test_event.rb +0 -531
  242. data/test/test_event_router.rb +0 -348
  243. data/test/test_event_time.rb +0 -199
  244. data/test/test_file_wrapper.rb +0 -53
  245. data/test/test_filter.rb +0 -121
  246. data/test/test_fluent_log_event_router.rb +0 -99
  247. data/test/test_formatter.rb +0 -369
  248. data/test/test_input.rb +0 -31
  249. data/test/test_log.rb +0 -1076
  250. data/test/test_match.rb +0 -148
  251. data/test/test_mixin.rb +0 -351
  252. data/test/test_msgpack_factory.rb +0 -50
  253. data/test/test_oj_options.rb +0 -55
  254. data/test/test_output.rb +0 -278
  255. data/test/test_plugin.rb +0 -251
  256. data/test/test_plugin_classes.rb +0 -370
  257. data/test/test_plugin_helper.rb +0 -81
  258. data/test/test_plugin_id.rb +0 -119
  259. data/test/test_process.rb +0 -14
  260. data/test/test_root_agent.rb +0 -951
  261. data/test/test_static_config_analysis.rb +0 -177
  262. data/test/test_supervisor.rb +0 -821
  263. data/test/test_test_drivers.rb +0 -136
  264. data/test/test_time_formatter.rb +0 -301
  265. data/test/test_time_parser.rb +0 -362
  266. data/test/test_tls.rb +0 -65
  267. data/test/test_unique_id.rb +0 -47
  268. data/test/test_variable_store.rb +0 -65
@@ -1,415 +0,0 @@
1
- require_relative '../helper'
2
- require 'fluent/config/element'
3
- require "fluent/config/dsl"
4
-
5
- TMP_DIR = File.dirname(__FILE__) + "/tmp/config_dsl#{ENV['TEST_ENV_NUMBER']}"
6
- def write_config(path, data)
7
- FileUtils.mkdir_p(File.dirname(path))
8
- File.open(path, "w") {|f| f.write data }
9
- end
10
-
11
- def prepare_config1
12
- write_config "#{TMP_DIR}/config_test_1.conf", %[
13
- k1 root_config
14
- include dir/config_test_2.conf #
15
- @include #{TMP_DIR}/config_test_4.conf
16
- include file://#{TMP_DIR}/config_test_5.conf
17
- @include config.d/*.conf
18
- ]
19
- write_config "#{TMP_DIR}/dir/config_test_2.conf", %[
20
- k2 relative_path_include
21
- @include ../config_test_3.conf
22
- ]
23
- write_config "#{TMP_DIR}/config_test_3.conf", %[
24
- k3 relative_include_in_included_file
25
- ]
26
- write_config "#{TMP_DIR}/config_test_4.conf", %[
27
- k4 absolute_path_include
28
- ]
29
- write_config "#{TMP_DIR}/config_test_5.conf", %[
30
- k5 uri_include
31
- ]
32
- write_config "#{TMP_DIR}/config.d/config_test_6.conf", %[
33
- k6 wildcard_include_1
34
- <elem1 name>
35
- include normal_parameter
36
- </elem1>
37
- ]
38
- write_config "#{TMP_DIR}/config.d/config_test_7.conf", %[
39
- k7 wildcard_include_2
40
- ]
41
- write_config "#{TMP_DIR}/config.d/config_test_8.conf", %[
42
- <elem2 name>
43
- @include ../dir/config_test_9.conf
44
- </elem2>
45
- ]
46
- write_config "#{TMP_DIR}/dir/config_test_9.conf", %[
47
- k9 embedded
48
- <elem3 name>
49
- nested nested_value
50
- include hoge
51
- </elem3>
52
- ]
53
- write_config "#{TMP_DIR}/config.d/00_config_test_8.conf", %[
54
- k8 wildcard_include_3
55
- <elem4 name>
56
- include normal_parameter
57
- </elem4>
58
- ]
59
- end
60
-
61
- def prepare_config2
62
- write_config "#{TMP_DIR}/config_test_1.rb", DSL_CONFIG_EXAMPLE
63
- end
64
-
65
- DSL_CONFIG_EXAMPLE = %q[
66
- worker {
67
- hostname = "myhostname"
68
-
69
- (0..9).each { |i|
70
- source {
71
- type :tail
72
- path "/var/log/httpd/access.part#{i}.log"
73
-
74
- filter ('bar.**') {
75
- type :hoge
76
- val1 "moge"
77
- val2 ["foo", "bar", "baz"]
78
- val3 10
79
- id :hoge
80
-
81
- subsection {
82
- foo "bar"
83
- }
84
- subsection {
85
- foo "baz"
86
- }
87
- }
88
-
89
- filter ('foo.**') {
90
- type "pass"
91
- }
92
-
93
- match ('{foo,bar}.**') {
94
- type "file"
95
- path "/var/log/httpd/access.#{hostname}.#{i}.log"
96
- }
97
- }
98
- }
99
- }
100
- ]
101
-
102
- DSL_CONFIG_EXAMPLE_WITHOUT_WORKER = %q[
103
- hostname = "myhostname"
104
-
105
- source {
106
- type :tail
107
- path "/var/log/httpd/access.part.log"
108
-
109
- element {
110
- name "foo"
111
- }
112
-
113
- match ('{foo,bar}.**') {
114
- type "file"
115
- path "/var/log/httpd/access.full.log"
116
- }
117
- }
118
- ]
119
-
120
- DSL_CONFIG_EXAMPLE_FOR_INCLUDE_CONF = %q[
121
- include "#{TMP_DIR}/config_test_1.conf"
122
- ]
123
-
124
- DSL_CONFIG_EXAMPLE_FOR_INCLUDE_RB = %q[
125
- include "#{TMP_DIR}/config_test_1.rb"
126
- ]
127
-
128
- DSL_CONFIG_RETURNS_NON_ELEMENT = %q[
129
- worker {
130
- }
131
- []
132
- ]
133
-
134
- DSL_CONFIG_WRONG_SYNTAX1 = %q[
135
- match
136
- ]
137
- DSL_CONFIG_WRONG_SYNTAX2 = %q[
138
- match('aa','bb'){
139
- type :null
140
- }
141
- ]
142
- DSL_CONFIG_WRONG_SYNTAX3 = %q[
143
- match('aa','bb')
144
- ]
145
- DSL_CONFIG_WRONG_SYNTAX4 = %q[
146
- include
147
- ]
148
-
149
- module Fluent::Config
150
- class TestDSLParser < ::Test::Unit::TestCase
151
- sub_test_case 'with worker tag on top level' do
152
- def setup
153
- @root = Fluent::Config::DSL::Parser.parse(DSL_CONFIG_EXAMPLE, 'dsl_config.rb')
154
- end
155
-
156
- sub_test_case '.parse' do
157
- test 'makes root element' do
158
- assert_equal('ROOT', @root.name)
159
- assert_predicate(@root.arg, :empty?)
160
- assert_equal(0, @root.keys.size)
161
- end
162
-
163
- test 'makes worker element for worker tag' do
164
- assert_equal(1, @root.elements.size)
165
-
166
- worker = @root.elements.first
167
- assert_equal('worker', worker.name)
168
- assert_predicate(worker.arg, :empty?)
169
- assert_equal(0, worker.keys.size)
170
- assert_equal(10, worker.elements.size)
171
- end
172
-
173
- test 'makes subsections for blocks, with variable substitution' do
174
- ele4 = @root.elements.first.elements[4]
175
-
176
- assert_equal('source', ele4.name)
177
- assert_predicate(ele4.arg, :empty?)
178
- assert_equal(2, ele4.keys.size)
179
- assert_equal('tail', ele4['@type'])
180
- assert_equal("/var/log/httpd/access.part4.log", ele4['path'])
181
- end
182
-
183
- test 'makes user-defined sections with blocks' do
184
- filter0 = @root.elements.first.elements[4].elements.first
185
-
186
- assert_equal('filter', filter0.name)
187
- assert_equal('bar.**', filter0.arg)
188
- assert_equal('hoge', filter0['@type'])
189
- assert_equal('moge', filter0['val1'])
190
- assert_equal(JSON.dump(['foo', 'bar', 'baz']), filter0['val2'])
191
- assert_equal('10', filter0['val3'])
192
- assert_equal('hoge', filter0['@id'])
193
-
194
- assert_equal(2, filter0.elements.size)
195
- assert_equal('subsection', filter0.elements[0].name)
196
- assert_equal('bar', filter0.elements[0]['foo'])
197
- assert_equal('subsection', filter0.elements[1].name)
198
- assert_equal('baz', filter0.elements[1]['foo'])
199
- end
200
-
201
- test 'makes values with user-assigned variable substitutions' do
202
- match0 = @root.elements.first.elements[4].elements.last
203
-
204
- assert_equal('match', match0.name)
205
- assert_equal('{foo,bar}.**', match0.arg)
206
- assert_equal('file', match0['@type'])
207
- assert_equal('/var/log/httpd/access.myhostname.4.log', match0['path'])
208
- end
209
- end
210
- end
211
-
212
- sub_test_case 'without worker tag on top level' do
213
- def setup
214
- @root = Fluent::Config::DSL::Parser.parse(DSL_CONFIG_EXAMPLE_WITHOUT_WORKER, 'dsl_config_without_worker.rb')
215
- end
216
-
217
- sub_test_case '.parse' do
218
- test 'makes root element' do
219
- assert_equal('ROOT', @root.name)
220
- assert_predicate(@root.arg, :empty?)
221
- assert_equal(0, @root.keys.size)
222
- end
223
-
224
- test 'does not make worker element implicitly because DSL configuration does not support v10 compat mode' do
225
- assert_equal(1, @root.elements.size)
226
- assert_equal('source', @root.elements.first.name)
227
- refute(@root.elements.find { |e| e.name == 'worker' })
228
- end
229
- end
230
- end
231
-
232
- sub_test_case 'with include conf' do
233
- def setup
234
- prepare_config1
235
- @root = Fluent::Config::DSL::Parser.parse(DSL_CONFIG_EXAMPLE_FOR_INCLUDE_CONF, 'dsl_config_for_include.conf')
236
- end
237
- test 'include config' do
238
- assert_equal('root_config', @root['k1'])
239
- assert_equal('relative_path_include', @root['k2'])
240
- assert_equal('relative_include_in_included_file', @root['k3'])
241
- assert_equal('absolute_path_include', @root['k4'])
242
- assert_equal('uri_include', @root['k5'])
243
- assert_equal('wildcard_include_1', @root['k6'])
244
- assert_equal('wildcard_include_2', @root['k7'])
245
- assert_equal('wildcard_include_3', @root['k8'])
246
- assert_equal([
247
- 'k1',
248
- 'k2',
249
- 'k3',
250
- 'k4',
251
- 'k5',
252
- 'k8', # Because of the file name this comes first.
253
- 'k6',
254
- 'k7',
255
- ], @root.keys)
256
-
257
- elem1 = @root.elements.find { |e| e.name == 'elem1' }
258
- assert(elem1)
259
- assert_equal('name', elem1.arg)
260
- assert_equal('normal_parameter', elem1['include'])
261
-
262
- elem2 = @root.elements.find { |e| e.name == 'elem2' }
263
- assert(elem2)
264
- assert_equal('name', elem2.arg)
265
- assert_equal('embedded', elem2['k9'])
266
- assert_not_include(elem2, 'include')
267
-
268
- elem3 = elem2.elements.find { |e| e.name == 'elem3' }
269
- assert(elem3)
270
- assert_equal('nested_value', elem3['nested'])
271
- assert_equal('hoge', elem3['include'])
272
- end
273
-
274
- # TODO: Add uri based include spec
275
- end
276
-
277
- sub_test_case 'with include rb' do
278
- def setup
279
- prepare_config2
280
- @root = Fluent::Config::DSL::Parser.parse(DSL_CONFIG_EXAMPLE_FOR_INCLUDE_RB, 'dsl_config_for_include.rb')
281
- end
282
- sub_test_case '.parse' do
283
- test 'makes root element' do
284
- assert_equal('ROOT', @root.name)
285
- assert_predicate(@root.arg, :empty?)
286
- assert_equal(0, @root.keys.size)
287
- end
288
-
289
- test 'makes worker element for worker tag' do
290
- assert_equal(1, @root.elements.size)
291
-
292
- worker = @root.elements.first
293
- assert_equal('worker', worker.name)
294
- assert_predicate(worker.arg, :empty?)
295
- assert_equal(0, worker.keys.size)
296
- assert_equal(10, worker.elements.size)
297
- end
298
-
299
- test 'makes subsections for blocks, with variable substitution' do
300
- ele4 = @root.elements.first.elements[4]
301
-
302
- assert_equal('source', ele4.name)
303
- assert_predicate(ele4.arg, :empty?)
304
- assert_equal(2, ele4.keys.size)
305
- assert_equal('tail', ele4['@type'])
306
- assert_equal("/var/log/httpd/access.part4.log", ele4['path'])
307
- end
308
-
309
- test 'makes user-defined sections with blocks' do
310
- filter0 = @root.elements.first.elements[4].elements.first
311
-
312
- assert_equal('filter', filter0.name)
313
- assert_equal('bar.**', filter0.arg)
314
- assert_equal('hoge', filter0['@type'])
315
- assert_equal('moge', filter0['val1'])
316
- assert_equal(JSON.dump(['foo', 'bar', 'baz']), filter0['val2'])
317
- assert_equal('10', filter0['val3'])
318
- assert_equal('hoge', filter0['@id'])
319
-
320
- assert_equal(2, filter0.elements.size)
321
- assert_equal('subsection', filter0.elements[0].name)
322
- assert_equal('bar', filter0.elements[0]['foo'])
323
- assert_equal('subsection', filter0.elements[1].name)
324
- assert_equal('baz', filter0.elements[1]['foo'])
325
- end
326
-
327
- test 'makes values with user-assigned variable substitutions' do
328
- match0 = @root.elements.first.elements[4].elements.last
329
-
330
- assert_equal('match', match0.name)
331
- assert_equal('{foo,bar}.**', match0.arg)
332
- assert_equal('file', match0['@type'])
333
- assert_equal('/var/log/httpd/access.myhostname.4.log', match0['path'])
334
- end
335
- end
336
- end
337
-
338
- sub_test_case 'with configuration that returns non element on top' do
339
- sub_test_case '.parse' do
340
- test 'does not crash' do
341
- Fluent::Config::DSL::Parser.parse(DSL_CONFIG_RETURNS_NON_ELEMENT, 'dsl_config_returns_non_element.rb')
342
- end
343
- end
344
- end
345
-
346
- sub_test_case 'with configuration with wrong arguments for specific elements' do
347
- sub_test_case '.parse' do
348
- test 'raises ArgumentError correctly' do
349
- assert_raise(ArgumentError) { Fluent::Config::DSL::Parser.parse(DSL_CONFIG_WRONG_SYNTAX1, 'dsl_config_wrong_syntax1') }
350
- assert_raise(ArgumentError) { Fluent::Config::DSL::Parser.parse(DSL_CONFIG_WRONG_SYNTAX2, 'dsl_config_wrong_syntax2') }
351
- assert_raise(ArgumentError) { Fluent::Config::DSL::Parser.parse(DSL_CONFIG_WRONG_SYNTAX3, 'dsl_config_wrong_syntax3') }
352
- assert_raise(ArgumentError) { Fluent::Config::DSL::Parser.parse(DSL_CONFIG_WRONG_SYNTAX4, 'dsl_config_wrong_syntax4') }
353
- end
354
- end
355
- end
356
-
357
- sub_test_case 'with ruby keyword, that provides ruby Kernel module features' do
358
- sub_test_case '.parse' do
359
- test 'can get result of Kernel.open() by ruby.open()' do
360
- uname_string = `uname -a`
361
- root = Fluent::Config::DSL::Parser.parse(<<DSL)
362
- worker {
363
- uname_str = ruby.open('|uname -a'){|out| out.read}
364
- source {
365
- uname uname_str
366
- }
367
- }
368
- DSL
369
- worker = root.elements.first
370
- assert_equal('worker', worker.name)
371
- source = worker.elements.first
372
- assert_equal('source', source.name)
373
- assert_equal(1, source.keys.size)
374
- assert_equal(uname_string, source['uname'])
375
- end
376
-
377
- test 'accepts ruby keyword with block, which allow to use methods included from ::Kernel' do
378
- root = Fluent::Config::DSL::Parser.parse(<<DSL)
379
- worker {
380
- ruby_version = ruby {
381
- require 'erb'
382
- ERB.new('<%= RUBY_VERSION %> from erb').result
383
- }
384
- source {
385
- version ruby_version
386
- }
387
- }
388
- DSL
389
- worker = root.elements.first
390
- assert_equal('worker', worker.name)
391
- source = worker.elements.first
392
- assert_equal('source', source.name)
393
- assert_equal(1, source.keys.size)
394
- assert_equal("#{RUBY_VERSION} from erb", source['version'])
395
- end
396
-
397
- test 'raises NoMethodError when configuration DSL elements are written in ruby block' do
398
- conf = <<DSL
399
- worker {
400
- ruby {
401
- source {
402
- type "tail"
403
- }
404
- }
405
- source {
406
- uname uname_str
407
- }
408
- }
409
- DSL
410
- assert_raise(NoMethodError) { Fluent::Config::DSL::Parser.parse(conf) }
411
- end
412
- end
413
- end
414
- end
415
- end