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,309 +0,0 @@
1
- require_relative "../helper"
2
- require_relative 'assertions'
3
- require "fluent/config/error"
4
- require "fluent/config/literal_parser"
5
- require "fluent/config/v1_parser"
6
- require 'json'
7
-
8
- module Fluent::Config
9
- class TestLiteralParser < ::Test::Unit::TestCase
10
- def parse_text(text)
11
- basepath = File.expand_path(File.dirname(__FILE__)+'/../../')
12
- ss = StringScanner.new(text)
13
- parser = Fluent::Config::V1Parser.new(ss, basepath, "(test)", eval_context)
14
- parser.parse_literal
15
- end
16
-
17
- TestLiteralParserContext = Struct.new(:v1, :v2, :v3)
18
-
19
- def v1
20
- :test
21
- end
22
-
23
- def v2
24
- true
25
- end
26
-
27
- def v3
28
- nil
29
- end
30
-
31
- def eval_context
32
- @eval_context ||= TestLiteralParserContext.new(v1, v2, v3)
33
- end
34
-
35
- sub_test_case 'boolean parsing' do
36
- def test_true
37
- assert_text_parsed_as('true', "true")
38
- end
39
- def test_false
40
- assert_text_parsed_as('false', "false")
41
- end
42
- def test_trueX
43
- assert_text_parsed_as('trueX', "trueX")
44
- end
45
- def test_falseX
46
- assert_text_parsed_as('falseX', "falseX")
47
- end
48
- end
49
-
50
- sub_test_case 'integer parsing' do
51
- test('0') { assert_text_parsed_as('0', "0") }
52
- test('1') { assert_text_parsed_as('1', "1") }
53
- test('10') { assert_text_parsed_as('10', "10") }
54
- test('-1') { assert_text_parsed_as('-1', "-1") }
55
- test('-10') { assert_text_parsed_as('-10', "-10") }
56
- test('0 ') { assert_text_parsed_as('0', "0 ") }
57
- test(' -1 ') { assert_text_parsed_as("-1", ' -1 ') }
58
- # string
59
- test('01') { assert_text_parsed_as('01', "01") }
60
- test('00') { assert_text_parsed_as('00', "00") }
61
- test('-01') { assert_text_parsed_as('-01', "-01") }
62
- test('-00') { assert_text_parsed_as('-00', "-00") }
63
- test('0x61') { assert_text_parsed_as('0x61', "0x61") }
64
- test('0s') { assert_text_parsed_as('0s', "0s") }
65
- end
66
-
67
- sub_test_case 'float parsing' do
68
- test('1.1') { assert_text_parsed_as('1.1', "1.1") }
69
- test('0.1') { assert_text_parsed_as('0.1', "0.1") }
70
- test('0.0') { assert_text_parsed_as('0.0', "0.0") }
71
- test('-1.1') { assert_text_parsed_as('-1.1', "-1.1") }
72
- test('-0.1') { assert_text_parsed_as('-0.1', "-0.1") }
73
- test('1.10') { assert_text_parsed_as('1.10', "1.10") }
74
- # string
75
- test('12e8') { assert_text_parsed_as('12e8', "12e8") }
76
- test('12.1e7') { assert_text_parsed_as('12.1e7', "12.1e7") }
77
- test('-12e8') { assert_text_parsed_as('-12e8', "-12e8") }
78
- test('-12.1e7') { assert_text_parsed_as('-12.1e7', "-12.1e7") }
79
- test('.0') { assert_text_parsed_as('.0', ".0") }
80
- test('.1') { assert_text_parsed_as('.1', ".1") }
81
- test('0.') { assert_text_parsed_as('0.', "0.") }
82
- test('1.') { assert_text_parsed_as('1.', "1.") }
83
- test('.0a') { assert_text_parsed_as('.0a', ".0a") }
84
- test('1.a') { assert_text_parsed_as('1.a', "1.a") }
85
- test('0@') { assert_text_parsed_as('0@', "0@") }
86
- end
87
-
88
- sub_test_case 'float keywords parsing' do
89
- test('NaN') { assert_text_parsed_as('NaN', "NaN") }
90
- test('Infinity') { assert_text_parsed_as('Infinity', "Infinity") }
91
- test('-Infinity') { assert_text_parsed_as('-Infinity', "-Infinity") }
92
- test('NaNX') { assert_text_parsed_as('NaNX', "NaNX") }
93
- test('InfinityX') { assert_text_parsed_as('InfinityX', "InfinityX") }
94
- test('-InfinityX') { assert_text_parsed_as('-InfinityX', "-InfinityX") }
95
- end
96
-
97
- sub_test_case 'double quoted string' do
98
- test('""') { assert_text_parsed_as("", '""') }
99
- test('"text"') { assert_text_parsed_as("text", '"text"') }
100
- test('"\\""') { assert_text_parsed_as("\"", '"\\""') }
101
- test('"\\t"') { assert_text_parsed_as("\t", '"\\t"') }
102
- test('"\\n"') { assert_text_parsed_as("\n", '"\\n"') }
103
- test('"\\r\\n"') { assert_text_parsed_as("\r\n", '"\\r\\n"') }
104
- test('"\\f\\b"') { assert_text_parsed_as("\f\b", '"\\f\\b"') }
105
- test('"\\.t"') { assert_text_parsed_as(".t", '"\\.t"') }
106
- test('"\\$t"') { assert_text_parsed_as("$t", '"\\$t"') }
107
- test('"\\"') { assert_text_parsed_as("#t", '"\\#t"') }
108
- test('"\\0"') { assert_text_parsed_as("\0", '"\\0"') }
109
- test('"\\z"') { assert_parse_error('"\\z"') } # unknown escaped character
110
- test('"\\1"') { assert_parse_error('"\\1"') } # unknown escaped character
111
- test('"t') { assert_parse_error('"t') } # non-terminated quoted character
112
- test("\"t\nt\"") { assert_text_parsed_as("t\nt", "\"t\nt\"" ) } # multiline string
113
- test("\"t\\\nt\"") { assert_text_parsed_as("tt", "\"t\\\nt\"" ) } # multiline string
114
- test('t"') { assert_text_parsed_as('t"', 't"') }
115
- test('"."') { assert_text_parsed_as('.', '"."') }
116
- test('"*"') { assert_text_parsed_as('*', '"*"') }
117
- test('"@"') { assert_text_parsed_as('@', '"@"') }
118
- test('"\\#{test}"') { assert_text_parsed_as("\#{test}", '"\\#{test}"') }
119
- test('"$"') { assert_text_parsed_as('$', '"$"') }
120
- test('"$t"') { assert_text_parsed_as('$t', '"$t"') }
121
- test('"$}"') { assert_text_parsed_as('$}', '"$}"') }
122
- test('"\\\\"') { assert_text_parsed_as("\\", '"\\\\"') }
123
- test('"\\["') { assert_text_parsed_as("[", '"\\["') }
124
- end
125
-
126
- sub_test_case 'single quoted string' do
127
- test("''") { assert_text_parsed_as("", "''") }
128
- test("'text'") { assert_text_parsed_as("text", "'text'") }
129
- test("'\\''") { assert_text_parsed_as('\'', "'\\''") }
130
- test("'\\t'") { assert_text_parsed_as('\t', "'\\t'") }
131
- test("'\\n'") { assert_text_parsed_as('\n', "'\\n'") }
132
- test("'\\r\\n'") { assert_text_parsed_as('\r\n', "'\\r\\n'") }
133
- test("'\\f\\b'") { assert_text_parsed_as('\f\b', "'\\f\\b'") }
134
- test("'\\.t'") { assert_text_parsed_as('\.t', "'\\.t'") }
135
- test("'\\$t'") { assert_text_parsed_as('\$t', "'\\$t'") }
136
- test("'\\#t'") { assert_text_parsed_as('\#t', "'\\#t'") }
137
- test("'\\z'") { assert_text_parsed_as('\z', "'\\z'") }
138
- test("'\\0'") { assert_text_parsed_as('\0', "'\\0'") }
139
- test("'\\1'") { assert_text_parsed_as('\1', "'\\1'") }
140
- test("'t") { assert_parse_error("'t") } # non-terminated quoted character
141
- test("t'") { assert_text_parsed_as("t'", "t'") }
142
- test("'.'") { assert_text_parsed_as('.', "'.'") }
143
- test("'*'") { assert_text_parsed_as('*', "'*'") }
144
- test("'@'") { assert_text_parsed_as('@', "'@'") }
145
- test(%q['#{test}']) { assert_text_parsed_as('#{test}', %q['#{test}']) }
146
- test("'$'") { assert_text_parsed_as('$', "'$'") }
147
- test("'$t'") { assert_text_parsed_as('$t', "'$t'") }
148
- test("'$}'") { assert_text_parsed_as('$}', "'$}'") }
149
- test("'\\\\'") { assert_text_parsed_as('\\', "'\\\\'") }
150
- test("'\\['") { assert_text_parsed_as('\[', "'\\['") }
151
- end
152
-
153
- sub_test_case 'nonquoted string parsing' do
154
- test("''") { assert_text_parsed_as(nil, '') }
155
- test('text') { assert_text_parsed_as('text', 'text') }
156
- test('\"') { assert_text_parsed_as('\"', '\"') }
157
- test('\t') { assert_text_parsed_as('\t', '\t') }
158
- test('\n') { assert_text_parsed_as('\n', '\n') }
159
- test('\r\n') { assert_text_parsed_as('\r\n', '\r\n') }
160
- test('\f\b') { assert_text_parsed_as('\f\b', '\f\b') }
161
- test('\.t') { assert_text_parsed_as('\.t', '\.t') }
162
- test('\$t') { assert_text_parsed_as('\$t', '\$t') }
163
- test('\#t') { assert_text_parsed_as('\#t', '\#t') }
164
- test('\z') { assert_text_parsed_as('\z', '\z') }
165
- test('\0') { assert_text_parsed_as('\0', '\0') }
166
- test('\1') { assert_text_parsed_as('\1', '\1') }
167
- test('.') { assert_text_parsed_as('.', '.') }
168
- test('*') { assert_text_parsed_as('*', '*') }
169
- test('@') { assert_text_parsed_as('@', '@') }
170
- test('#{test}') { assert_text_parsed_as('#{test}', '#{test}') }
171
- test('$') { assert_text_parsed_as('$', '$') }
172
- test('$t') { assert_text_parsed_as('$t', '$t') }
173
- test('$}') { assert_text_parsed_as('$}', '$}') }
174
- test('\\\\') { assert_text_parsed_as('\\\\', '\\\\') }
175
- test('\[') { assert_text_parsed_as('\[', '\[') }
176
- test('#foo') { assert_text_parsed_as('#foo', '#foo') } # not comment out
177
- test('foo#bar') { assert_text_parsed_as('foo#bar', 'foo#bar') } # not comment out
178
- test(' text') { assert_text_parsed_as('text', ' text') } # remove starting spaces
179
- test(' #foo') { assert_text_parsed_as('#foo', ' #foo') } # remove starting spaces
180
- test('foo #bar') { assert_text_parsed_as('foo', 'foo #bar') } # comment out
181
- test('foo\t#bar') { assert_text_parsed_as('foo', "foo\t#bar") } # comment out
182
-
183
- test('t') { assert_text_parsed_as('t', 't') }
184
- test('T') { assert_text_parsed_as('T', 'T') }
185
- test('_') { assert_text_parsed_as('_', '_') }
186
- test('T1') { assert_text_parsed_as('T1', 'T1') }
187
- test('_2') { assert_text_parsed_as('_2', '_2') }
188
- test('t0') { assert_text_parsed_as('t0', 't0') }
189
- test('t@') { assert_text_parsed_as('t@', 't@') }
190
- test('t-') { assert_text_parsed_as('t-', 't-') }
191
- test('t.') { assert_text_parsed_as('t.', 't.') }
192
- test('t+') { assert_text_parsed_as('t+', 't+') }
193
- test('t/') { assert_text_parsed_as('t/', 't/') }
194
- test('t=') { assert_text_parsed_as('t=', 't=') }
195
- test('t,') { assert_text_parsed_as('t,', 't,') }
196
- test('0t') { assert_text_parsed_as('0t', "0t") }
197
- test('@1t') { assert_text_parsed_as('@1t', '@1t') }
198
- test('-1t') { assert_text_parsed_as('-1t', '-1t') }
199
- test('.1t') { assert_text_parsed_as('.1t', '.1t') }
200
- test(',1t') { assert_text_parsed_as(',1t', ',1t') }
201
- test('.t') { assert_text_parsed_as('.t', '.t') }
202
- test('*t') { assert_text_parsed_as('*t', '*t') }
203
- test('@t') { assert_text_parsed_as('@t', '@t') }
204
- test('{t') { assert_parse_error('{t') } # '{' begins map
205
- test('t{') { assert_text_parsed_as('t{', 't{') }
206
- test('}t') { assert_text_parsed_as('}t', '}t') }
207
- test('[t') { assert_parse_error('[t') } # '[' begins array
208
- test('t[') { assert_text_parsed_as('t[', 't[') }
209
- test(']t') { assert_text_parsed_as(']t', ']t') }
210
- test('t:') { assert_text_parsed_as('t:', 't:') }
211
- test('t;') { assert_text_parsed_as('t;', 't;') }
212
- test('t?') { assert_text_parsed_as('t?', 't?') }
213
- test('t^') { assert_text_parsed_as('t^', 't^') }
214
- test('t`') { assert_text_parsed_as('t`', 't`') }
215
- test('t~') { assert_text_parsed_as('t~', 't~') }
216
- test('t|') { assert_text_parsed_as('t|', 't|') }
217
- test('t>') { assert_text_parsed_as('t>', 't>') }
218
- test('t<') { assert_text_parsed_as('t<', 't<') }
219
- test('t(') { assert_text_parsed_as('t(', 't(') }
220
- end
221
-
222
- sub_test_case 'embedded ruby code parsing' do
223
- test('"#{v1}"') { assert_text_parsed_as("#{v1}", '"#{v1}"') }
224
- test('"#{v2}"') { assert_text_parsed_as("#{v2}", '"#{v2}"') }
225
- test('"#{v3}"') { assert_text_parsed_as("#{v3}", '"#{v3}"') }
226
- test('"#{1+1}"') { assert_text_parsed_as("2", '"#{1+1}"') }
227
- test('"#{}"') { assert_text_parsed_as("", '"#{}"') }
228
- test('"t#{v1}"') { assert_text_parsed_as("t#{v1}", '"t#{v1}"') }
229
- test('"t#{v1}t"') { assert_text_parsed_as("t#{v1}t", '"t#{v1}t"') }
230
- test('"#{"}"}"') { assert_text_parsed_as("}", '"#{"}"}"') }
231
- test('"#{#}"') { assert_parse_error('"#{#}"') } # error in embedded ruby code
232
- test("\"\#{\n=begin\n}\"") { assert_parse_error("\"\#{\n=begin\n}\"") } # error in embedded ruby code
233
- test('"#{v1}foo#{v2}"') { assert_text_parsed_as("#{v1}foo#{v2}", '"#{v1}foo#{v2}"') }
234
- test('"#{1+1}foo#{2+2}bar"') { assert_text_parsed_as("#{1+1}foo#{2+2}bar", '"#{1+1}foo#{2+2}bar"') }
235
- test('"foo#{hostname}"') { assert_text_parsed_as("foo#{Socket.gethostname}", '"foo#{hostname}"') }
236
- test('"foo#{worker_id}"') {
237
- ENV.delete('SERVERENGINE_WORKER_ID')
238
- assert_text_parsed_as("foo", '"foo#{worker_id}"')
239
- ENV['SERVERENGINE_WORKER_ID'] = '1'
240
- assert_text_parsed_as("foo1", '"foo#{worker_id}"')
241
- ENV.delete('SERVERENGINE_WORKER_ID')
242
- }
243
- test('nil') { assert_text_parsed_as(nil, '"#{raise SetNil}"') }
244
- test('default') { assert_text_parsed_as(:default, '"#{raise SetDefault}"') }
245
- test('nil helper') { assert_text_parsed_as(nil, '"#{use_nil}"') }
246
- test('default helper') { assert_text_parsed_as(:default, '"#{use_default}"') }
247
- end
248
-
249
- sub_test_case 'array parsing' do
250
- test('[]') { assert_text_parsed_as_json([], '[]') }
251
- test('[1]') { assert_text_parsed_as_json([1], '[1]') }
252
- test('[1,2]') { assert_text_parsed_as_json([1,2], '[1,2]') }
253
- test('[1, 2]') { assert_text_parsed_as_json([1,2], '[1, 2]') }
254
- test('[ 1 , 2 ]') { assert_text_parsed_as_json([1,2], '[ 1 , 2 ]') }
255
- test('[1,2,]') { assert_parse_error('[1,2,]') } # TODO: Need trailing commas support?
256
- test("[\n1\n,\n2\n]") { assert_text_parsed_as_json([1,2], "[\n1\n,\n2\n]") }
257
- test('["a"]') { assert_text_parsed_as_json(["a"], '["a"]') }
258
- test('["a","b"]') { assert_text_parsed_as_json(["a","b"], '["a","b"]') }
259
- test('[ "a" , "b" ]') { assert_text_parsed_as_json(["a","b"], '[ "a" , "b" ]') }
260
- test("[\n\"a\"\n,\n\"b\"\n]") { assert_text_parsed_as_json(["a","b"], "[\n\"a\"\n,\n\"b\"\n]") }
261
- test('["ab","cd"]') { assert_text_parsed_as_json(["ab","cd"], '["ab","cd"]') }
262
- json_array_with_js_comment = <<EOA
263
- [
264
- "a", // this is a
265
- "b", // this is b
266
- "c" // this is c
267
- ]
268
- EOA
269
- test(json_array_with_js_comment) { assert_text_parsed_as_json(["a","b","c"], json_array_with_js_comment) }
270
- json_array_with_comment = <<EOA
271
- [
272
- "a", # this is a
273
- "b", # this is b
274
- "c" # this is c
275
- ]
276
- EOA
277
- test(json_array_with_comment) { assert_text_parsed_as_json(["a","b","c"], json_array_with_comment) }
278
- json_array_with_tailing_comma = <<EOA
279
- [
280
- "a", # this is a
281
- "b", # this is b
282
- "c", # this is c
283
- ]
284
- EOA
285
- test(json_array_with_tailing_comma) { assert_parse_error(json_array_with_tailing_comma) }
286
- end
287
-
288
- sub_test_case 'map parsing' do
289
- test('{}') { assert_text_parsed_as_json({}, '{}') }
290
- test('{"a":1}') { assert_text_parsed_as_json({"a"=>1}, '{"a":1}') }
291
- test('{"a":1,"b":2}') { assert_text_parsed_as_json({"a"=>1,"b"=>2}, '{"a":1,"b":2}') }
292
- test('{ "a" : 1 , "b" : 2 }') { assert_text_parsed_as_json({"a"=>1,"b"=>2}, '{ "a" : 1 , "b" : 2 }') }
293
- test('{"a":1,"b":2,}') { assert_parse_error('{"a":1,"b":2,}') } # TODO: Need trailing commas support?
294
- test('{\n\"a\"\n:\n1\n,\n\"b\"\n:\n2\n}') { assert_text_parsed_as_json({"a"=>1,"b"=>2}, "{\n\"a\"\n:\n1\n,\n\"b\"\n:\n2\n}") }
295
- test('{"a":"b"}') { assert_text_parsed_as_json({"a"=>"b"}, '{"a":"b"}') }
296
- test('{"a":"b","c":"d"}') { assert_text_parsed_as_json({"a"=>"b","c"=>"d"}, '{"a":"b","c":"d"}') }
297
- test('{ "a" : "b" , "c" : "d" }') { assert_text_parsed_as_json({"a"=>"b","c"=>"d"}, '{ "a" : "b" , "c" : "d" }') }
298
- test('{\n\"a\"\n:\n\"b\"\n,\n\"c\"\n:\n\"d\"\n}') { assert_text_parsed_as_json({"a"=>"b","c"=>"d"}, "{\n\"a\"\n:\n\"b\"\n,\n\"c\"\n:\n\"d\"\n}") }
299
- json_hash_with_comment = <<EOH
300
- {
301
- "a": 1, # this is a
302
- "b": 2, # this is b
303
- "c": 3 # this is c
304
- }
305
- EOH
306
- test(json_hash_with_comment) { assert_text_parsed_as_json({"a"=>1,"b"=>2,"c"=>3}, json_hash_with_comment) }
307
- end
308
- end
309
- end
@@ -1,56 +0,0 @@
1
- require_relative '../helper'
2
- require 'fluent/plugin/input'
3
- require 'fluent/test/driver/input'
4
-
5
- module ConfigurationForPlugins
6
- class AllBooleanParams < Fluent::Plugin::Input
7
- config_param :flag1, :bool, default: true
8
- config_param :flag2, :bool, default: true
9
- config_param :flag3, :bool, default: false
10
- config_param :flag4, :bool, default: false
11
-
12
- config_section :child, param_name: :children, multi: true, required: true do
13
- config_param :flag1, :bool, default: true
14
- config_param :flag2, :bool, default: true
15
- config_param :flag3, :bool, default: false
16
- config_param :flag4, :bool, default: false
17
- end
18
- end
19
-
20
- class BooleanParamsWithoutValue < ::Test::Unit::TestCase
21
- CONFIG = <<CONFIG
22
- flag1
23
- flag2 # yaaaaaaaaaay
24
- flag3
25
- flag4 # yaaaaaaaaaay
26
- <child>
27
- flag1
28
- flag2 # yaaaaaaaaaay
29
- flag3
30
- flag4 # yaaaaaaaaaay
31
- </child>
32
- <child>
33
- flag1 # yaaaaaaaaaay
34
- flag2
35
- flag3 # yaaaaaaaaaay
36
- flag4
37
- </child>
38
- # with following whitespace
39
- <child>
40
- flag1
41
- flag2
42
- flag3
43
- flag4
44
- </child>
45
- CONFIG
46
-
47
- test 'create plugin via driver' do
48
- d = Fluent::Test::Driver::Input.new(AllBooleanParams)
49
- d.configure(CONFIG)
50
- assert_equal([true] * 4, [d.instance.flag1, d.instance.flag2, d.instance.flag3, d.instance.flag4])
51
- num_of_sections = 3
52
- assert_equal num_of_sections, d.instance.children.size
53
- assert_equal([true] * (num_of_sections * 4), d.instance.children.map{|c| [c.flag1, c.flag2, c.flag3, c.flag4]}.flatten)
54
- end
55
- end
56
- end
@@ -1,191 +0,0 @@
1
- require_relative '../helper'
2
- require 'fluent/config/section'
3
- require 'pp'
4
-
5
- module Fluent::Config
6
- class TestSection < ::Test::Unit::TestCase
7
- sub_test_case Fluent::Config::Section do
8
- sub_test_case 'class' do
9
- sub_test_case '.name' do
10
- test 'returns its full module name as String' do
11
- assert_equal('Fluent::Config::Section', Fluent::Config::Section.name)
12
- end
13
- end
14
- end
15
-
16
- sub_test_case 'instance object' do
17
- sub_test_case '#initialize' do
18
- test 'creates blank object without argument' do
19
- s = Fluent::Config::Section.new
20
- assert_equal({}, s.instance_eval{ @params })
21
- end
22
-
23
- test 'creates object which contains specified hash object itself' do
24
- hash = {
25
- name: 'tagomoris',
26
- age: 34,
27
- send: 'email',
28
- klass: 'normal',
29
- keys: 5,
30
- }
31
- s1 = Fluent::Config::Section.new(hash)
32
- assert_equal(hash, s1.instance_eval { @params })
33
- assert_equal("tagomoris", s1[:name])
34
- assert_equal(34, s1[:age])
35
- assert_equal("email", s1[:send])
36
- assert_equal("normal", s1[:klass])
37
- assert_equal(5, s1[:keys])
38
-
39
- assert_equal("tagomoris", s1.name)
40
- assert_equal(34, s1.age)
41
- assert_equal("email", s1.send)
42
- assert_equal("normal", s1.klass)
43
- assert_equal(5, s1.keys)
44
- end
45
-
46
- test 'creates object which contains specified hash object itself, including fields with at prefix' do
47
- hash = {
48
- name: 'tagomoris',
49
- age: 34,
50
- send: 'email',
51
- klass: 'normal',
52
- keys: 5,
53
- }
54
- hash['@id'.to_sym] = 'myid'
55
-
56
- s1 = Fluent::Config::Section.new(hash)
57
- assert_equal('myid', s1['@id'])
58
- assert_equal('myid', s1['@id'.to_sym])
59
- assert_equal('myid', s1.__send__('@id'.to_sym))
60
- end
61
-
62
- test 'creates object and config element which corresponds to section object itself' do
63
- hash = {
64
- name: 'tagomoris',
65
- age: 34,
66
- send: 'email',
67
- klass: 'normal',
68
- keys: 5,
69
- }
70
- hash['@id'.to_sym] = 'myid'
71
- conf = config_element('section', '', {'name' => 'tagomoris', 'age' => 34, 'send' => 'email', 'klass' => 'normal', 'keys' => 5})
72
- s2 = Fluent::Config::Section.new(hash, conf)
73
- assert s2.corresponding_config_element.is_a?(Fluent::Config::Element)
74
- end
75
- end
76
-
77
- sub_test_case '#class' do
78
- test 'returns class constant' do
79
- assert_equal Fluent::Config::Section, Fluent::Config::Section.new({}).class
80
- end
81
- end
82
-
83
- sub_test_case '#object_id' do
84
- test 'returns its object id' do
85
- s1 = Fluent::Config::Section.new({})
86
- assert s1.object_id
87
- s2 = Fluent::Config::Section.new({})
88
- assert s2.object_id
89
- assert_not_equal s1.object_id, s2.object_id
90
- end
91
- end
92
-
93
- sub_test_case '#to_h' do
94
- test 'returns internal hash itself' do
95
- hash = {
96
- name: 'tagomoris',
97
- age: 34,
98
- send: 'email',
99
- klass: 'normal',
100
- keys: 5,
101
- }
102
- s = Fluent::Config::Section.new(hash)
103
- assert_equal(hash, s.to_h)
104
- assert_instance_of(Hash, s.to_h)
105
- end
106
- end
107
-
108
- sub_test_case '#instance_of?' do
109
- test 'can judge whether it is a Section object or not' do
110
- s = Fluent::Config::Section.new
111
- assert_true(s.instance_of?(Fluent::Config::Section))
112
- assert_false(s.instance_of?(BasicObject))
113
- end
114
- end
115
-
116
- sub_test_case '#is_a?' do
117
- test 'can judge whether it belongs to or not' do
118
- s = Fluent::Config::Section.new
119
- assert_true(s.is_a?(Fluent::Config::Section))
120
- assert_true(s.kind_of?(Fluent::Config::Section))
121
- assert_true(s.is_a?(BasicObject))
122
- end
123
- end
124
-
125
- sub_test_case '#+' do
126
- test 'can merge 2 sections: argument side is primary, internal hash is newly created' do
127
- h1 = {name: "s1", num: 10, klass: "A"}
128
- s1 = Fluent::Config::Section.new(h1)
129
-
130
- h2 = {name: "s2", klass: "A", num2: "5", num3: "8"}
131
- s2 = Fluent::Config::Section.new(h2)
132
- s = s1 + s2
133
-
134
- assert_not_equal(h1.object_id, s.to_h.object_id)
135
- assert_not_equal(h2.object_id, s.to_h.object_id)
136
-
137
- assert_equal("s2", s.name)
138
- assert_equal(10, s.num)
139
- assert_equal("A", s.klass)
140
- assert_equal("5", s.num2)
141
- assert_equal("8", s.num3)
142
- end
143
- end
144
-
145
- sub_test_case '#to_s' do
146
- test '#to_s == #inspect' do
147
- h1 = {name: "s1", num: 10, klass: "A"}
148
- s1 = Fluent::Config::Section.new(h1)
149
-
150
- assert_equal(s1.to_s, s1.inspect)
151
- end
152
- end
153
-
154
- data("inspect" => [:inspect, true],
155
- "nil?" => [:nil?, true],
156
- "to_h" => [:to_h, true],
157
- "+" => [:+, true],
158
- "instance_of?" => [:instance_of?, true],
159
- "kind_of?" => [:kind_of?, true],
160
- "[]" => [:[], true],
161
- "respond_to?" => [:respond_to?, true],
162
- "respond_to_missing?" => [:respond_to_missing?, true],
163
- "!" => [:!, true],
164
- "!=" => [:!=, true],
165
- "==" => [:==, true],
166
- "equal?" => [:equal?, true],
167
- "instance_eval" => [:instance_eval, true],
168
- "instance_exec" => [:instance_exec, true],
169
- "method_missing" => [:method_missing, false],
170
- "singleton_method_added" => [:singleton_method_added, false],
171
- "singleton_method_removed" => [:singleton_method_removed, false],
172
- "singleton_method_undefined" => [:singleton_method_undefined, false],
173
- "no_such_method" => [:no_such_method, false])
174
- test '#respond_to?' do |data|
175
- method, expected = data
176
- h1 = {name: "s1", num: 10, klass: "A"}
177
- s1 = Fluent::Config::Section.new(h1)
178
- assert_equal(expected, s1.respond_to?(method))
179
- end
180
-
181
- test '#pretty_print' do
182
- q = PP.new
183
- h1 = {name: "s1", klass: "A"}
184
- s1 = Fluent::Config::Section.new(h1)
185
- s1.pretty_print(q)
186
- assert_equal s1.inspect, q.output
187
- end
188
- end
189
- end
190
- end
191
- end