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,362 +0,0 @@
1
- require_relative 'helper'
2
- require 'fluent/test'
3
- require 'fluent/time'
4
-
5
- class TimeParserTest < ::Test::Unit::TestCase
6
- def setup
7
- Fluent::Test.setup
8
- end
9
-
10
- def test_call_with_parse
11
- parser = Fluent::TimeParser.new
12
-
13
- assert(parser.parse('2013-09-18 12:00:00 +0900').is_a?(Fluent::EventTime))
14
-
15
- time = event_time('2013-09-18 12:00:00 +0900')
16
- assert_equal(time, parser.parse('2013-09-18 12:00:00 +0900'))
17
- end
18
-
19
- def test_parse_with_strptime
20
- parser = Fluent::TimeParser.new('%d/%b/%Y:%H:%M:%S %z')
21
-
22
- assert(parser.parse('28/Feb/2013:12:00:00 +0900').is_a?(Fluent::EventTime))
23
-
24
- time = event_time('28/Feb/2013:12:00:00 +0900', format: '%d/%b/%Y:%H:%M:%S %z')
25
- assert_equal(time, parser.parse('28/Feb/2013:12:00:00 +0900'))
26
- end
27
-
28
- def test_parse_nsec_with_strptime
29
- parser = Fluent::TimeParser.new('%d/%b/%Y:%H:%M:%S:%N %z')
30
-
31
- assert(parser.parse('28/Feb/2013:12:00:00:123456789 +0900').is_a?(Fluent::EventTime))
32
-
33
- time = event_time('28/Feb/2013:12:00:00:123456789 +0900', format: '%d/%b/%Y:%H:%M:%S:%N %z')
34
- assert_equal_event_time(time, parser.parse('28/Feb/2013:12:00:00:123456789 +0900'))
35
- end
36
-
37
- def test_parse_iso8601
38
- parser = Fluent::TimeParser.new('%iso8601')
39
-
40
- assert(parser.parse('2017-01-01T12:00:00+09:00').is_a?(Fluent::EventTime))
41
-
42
- time = event_time('2017-01-01T12:00:00+09:00')
43
- assert_equal(time, parser.parse('2017-01-01T12:00:00+09:00'))
44
-
45
- time_with_msec = event_time('2017-01-01T12:00:00.123+09:00')
46
- assert_equal(time_with_msec, parser.parse('2017-01-01T12:00:00.123+09:00'))
47
- end
48
-
49
- def test_parse_with_invalid_argument
50
- parser = Fluent::TimeParser.new
51
-
52
- [[], {}, nil, true, 10000, //, ->{}, '', :symbol].each { |v|
53
- assert_raise Fluent::TimeParser::TimeParseError do
54
- parser.parse(v)
55
- end
56
- }
57
- end
58
-
59
- def test_parse_time_in_localtime
60
- time = with_timezone("UTC+02") do
61
- parser = Fluent::TimeParser.new("%Y-%m-%d %H:%M:%S.%N", true)
62
- parser.parse("2016-09-02 18:42:31.123456789")
63
- end
64
- assert_equal_event_time(time, event_time("2016-09-02 18:42:31.123456789 -02:00", format: '%Y-%m-%d %H:%M:%S.%N %z'))
65
- end
66
-
67
- def test_parse_time_in_utc
68
- time = with_timezone("UTC-09") do
69
- parser = Fluent::TimeParser.new("%Y-%m-%d %H:%M:%S.%N", false)
70
- parser.parse("2016-09-02 18:42:31.123456789")
71
- end
72
- assert_equal_event_time(time, event_time("2016-09-02 18:42:31.123456789 UTC", format: '%Y-%m-%d %H:%M:%S.%N %z'))
73
- end
74
-
75
- def test_parse_string_with_expected_timezone
76
- time = with_timezone("UTC-09") do
77
- parser = Fluent::TimeParser.new("%Y-%m-%d %H:%M:%S.%N", nil, "-07:00")
78
- parser.parse("2016-09-02 18:42:31.123456789")
79
- end
80
- assert_equal_event_time(time, event_time("2016-09-02 18:42:31.123456789 -07:00", format: '%Y-%m-%d %H:%M:%S.%N %z'))
81
- end
82
-
83
- def test_parse_time_with_expected_timezone_name
84
- time = with_timezone("UTC-09") do
85
- parser = Fluent::TimeParser.new("%Y-%m-%d %H:%M:%S.%N", nil, "Europe/Zurich")
86
- parser.parse("2016-12-02 18:42:31.123456789")
87
- end
88
- assert_equal_event_time(time, event_time("2016-12-02 18:42:31.123456789 +01:00", format: '%Y-%m-%d %H:%M:%S.%N %z'))
89
- end
90
-
91
- sub_test_case 'TimeMixin::Parser' do
92
- class DummyForTimeParser
93
- include Fluent::Configurable
94
- include Fluent::TimeMixin::Parser
95
- end
96
-
97
- test 'provides configuration parameters for TimeParser with default values for localtime' do
98
- time = with_timezone("UTC+07") do
99
- i = DummyForTimeParser.new
100
- i.configure(config_element('parse'))
101
-
102
- assert_nil i.time_format
103
- assert_true i.localtime
104
- assert_false i.utc
105
- assert_nil i.timezone
106
-
107
- parser = i.time_parser_create
108
- # time_format unspecified
109
- # localtime
110
- parser.parse("2016-09-02 18:42:31.012345678")
111
- end
112
- assert_equal_event_time(event_time("2016-09-02 18:42:31.012345678 -07:00", format: '%Y-%m-%d %H:%M:%S.%N %z'), time)
113
- end
114
-
115
- test 'provides configuration parameters for TimeParser, configurable for any time format' do
116
- time = with_timezone("UTC+07") do
117
- i = DummyForTimeParser.new
118
- i.configure(config_element('parse', '', {'time_format' => '%m/%d/%Y %H-%M-%S %N'}))
119
- parser = i.time_parser_create
120
- # time_format specified
121
- # localtime
122
- parser.parse("09/02/2016 18-42-31 012345678")
123
- end
124
- assert_equal_event_time(event_time("2016-09-02 18:42:31.012345678 -07:00", format: '%Y-%m-%d %H:%M:%S.%N %z'), time)
125
- end
126
-
127
- test 'provides configuration parameters for TimeParser, configurable for UTC by localtime=false' do
128
- time = with_timezone("UTC+07") do
129
- i = DummyForTimeParser.new
130
- i.configure(config_element('parse', '', {'time_format' => '%m/%d/%Y %H-%M-%S %N', 'localtime' => 'false'}))
131
- parser = i.time_parser_create
132
- # time_format specified
133
- # utc
134
- parser.parse("09/02/2016 18-42-31 012345678")
135
- end
136
- assert_equal_event_time(event_time("2016-09-02 18:42:31.012345678 UTC", format: '%Y-%m-%d %H:%M:%S.%N %z'), time)
137
- end
138
-
139
- test 'provides configuration parameters for TimeParser, configurable for UTC by utc=true' do
140
- time = with_timezone("UTC+07") do
141
- i = DummyForTimeParser.new
142
- i.configure(config_element('parse', '', {'time_format' => '%m/%d/%Y %H-%M-%S %N', 'utc' => 'true'}))
143
- parser = i.time_parser_create
144
- # time_format specified
145
- # utc
146
- parser.parse("09/02/2016 18-42-31 012345678")
147
- end
148
- assert_equal_event_time(event_time("2016-09-02 18:42:31.012345678 UTC", format: '%Y-%m-%d %H:%M:%S.%N %z'), time)
149
- end
150
-
151
- test 'provides configuration parameters for TimeParser, configurable for any timezone' do
152
- time = with_timezone("UTC+07") do
153
- i = DummyForTimeParser.new
154
- i.configure(config_element('parse', '', {'time_format' => '%m/%d/%Y %H-%M-%S %N', 'timezone' => '-01:00'}))
155
- parser = i.time_parser_create
156
- # time_format specified
157
- # -01:00
158
- parser.parse("09/02/2016 18-42-31 012345678")
159
- end
160
- assert_equal_event_time(event_time("2016-09-02 18:42:31.012345678 -01:00", format: '%Y-%m-%d %H:%M:%S.%N %z'), time)
161
- end
162
-
163
- test 'specifying timezone without time format raises configuration error' do
164
- assert_raise Fluent::ConfigError.new("specifying timezone requires time format") do
165
- i = DummyForTimeParser.new
166
- i.configure(config_element('parse', '', {'utc' => 'true'}))
167
- i.time_parser_create
168
- end
169
- assert_raise Fluent::ConfigError.new("specifying timezone requires time format") do
170
- i = DummyForTimeParser.new
171
- i.configure(config_element('parse', '', {'localtime' => 'false'}))
172
- i.time_parser_create
173
- end
174
- assert_raise Fluent::ConfigError.new("specifying timezone requires time format") do
175
- i = DummyForTimeParser.new
176
- i.configure(config_element('parse', '', {'timezone' => '-0700'}))
177
- i.time_parser_create
178
- end
179
- end
180
-
181
- test '#time_parser_create returns TimeParser with specified time format and timezone' do
182
- time = with_timezone("UTC-09") do
183
- i = DummyForTimeParser.new
184
- i.configure(config_element('parse', '', {'time_format' => '%m/%d/%Y %H-%M-%S %N'}))
185
- assert_equal '%m/%d/%Y %H-%M-%S %N', i.time_format
186
- assert_true i.localtime
187
- parser = i.time_parser_create(format: '%Y-%m-%d %H:%M:%S.%N %z')
188
- parser.parse("2016-09-05 17:59:38.987654321 -03:00")
189
- end
190
- assert_equal_event_time(event_time("2016-09-05 17:59:38.987654321 -03:00", format: '%Y-%m-%d %H:%M:%S.%N %z'), time)
191
- end
192
-
193
- test '#time_parser_create returns TimeParser with localtime when specified it forcedly besides any configuration parameters' do
194
- time = with_timezone("UTC-09") do
195
- i = DummyForTimeParser.new
196
- i.configure(config_element('parse', '', {'time_format' => '%m/%d/%Y %H-%M-%S', 'utc' => 'true'}))
197
- assert_equal '%m/%d/%Y %H-%M-%S', i.time_format
198
- assert_true i.utc
199
- parser = i.time_parser_create(format: '%Y-%m-%d %H:%M:%S.%N', force_localtime: true)
200
- parser.parse("2016-09-05 17:59:38.987654321")
201
- end
202
- assert_equal_event_time(event_time("2016-09-05 17:59:38.987654321 +09:00", format: '%Y-%m-%d %H:%M:%S.%N %z'), time)
203
-
204
- time = with_timezone("UTC-09") do
205
- i = DummyForTimeParser.new
206
- i.configure(config_element('parse', '', {'time_format' => '%m/%d/%Y %H-%M-%S', 'timezone' => '+0000'}))
207
- assert_equal '%m/%d/%Y %H-%M-%S', i.time_format
208
- assert_equal '+0000', i.timezone
209
- parser = i.time_parser_create(format: '%Y-%m-%d %H:%M:%S.%N', force_localtime: true)
210
- parser.parse("2016-09-05 17:59:38.987654321")
211
- end
212
- assert_equal_event_time(event_time("2016-09-05 17:59:38.987654321 +09:00", format: '%Y-%m-%d %H:%M:%S.%N %z'), time)
213
- end
214
-
215
- test '#time_parser_create returns NumericTimeParser to parse time as unixtime when time_type unixtime specified' do
216
- i = DummyForTimeParser.new
217
- i.configure(config_element('parse', '', {'time_type' => 'unixtime'}))
218
- parser = i.time_parser_create
219
- time = event_time("2016-10-03 20:08:30.123456789 +0100", format: '%Y-%m-%d %H:%M:%S.%N %z')
220
- assert_equal_event_time(Fluent::EventTime.new(time.to_i), parser.parse("#{time.sec}"))
221
- end
222
-
223
- test '#time_parser_create returns NumericTimeParser to parse time as float when time_type float specified' do
224
- i = DummyForTimeParser.new
225
- i.configure(config_element('parse', '', {'time_type' => 'float'}))
226
- parser = i.time_parser_create
227
- time = event_time("2016-10-03 20:08:30.123456789 +0100", format: '%Y-%m-%d %H:%M:%S.%N %z')
228
- assert_equal_event_time(time, parser.parse("#{time.sec}.#{time.nsec}"))
229
- end
230
- end
231
-
232
- sub_test_case 'MixedTimeParser fallback' do
233
- class DummyForTimeParser
234
- include Fluent::Configurable
235
- include Fluent::TimeMixin::Parser
236
- end
237
-
238
- test 'no time_format_fallbacks failure' do
239
- i = DummyForTimeParser.new
240
- assert_raise(Fluent::ConfigError.new("time_type is :mixed but time_format and time_format_fallbacks is empty.")) do
241
- i.configure(config_element('parse', '', {'time_type' => 'mixed'}))
242
- end
243
- end
244
-
245
- test 'fallback time format failure' do
246
- i = DummyForTimeParser.new
247
- i.configure(config_element('parse', '',
248
- {'time_type' => 'mixed',
249
- 'time_format_fallbacks' => ['%iso8601']}))
250
- parser = i.time_parser_create
251
- assert_raise(Fluent::TimeParser::TimeParseError.new("invalid time format: value = INVALID, even though fallbacks: Fluent::TimeParser")) do
252
- parser.parse("INVALID")
253
- end
254
- end
255
-
256
- test 'primary format is unixtime, secondary %iso8601 is used' do
257
- i = DummyForTimeParser.new
258
- i.configure(config_element('parse', '',
259
- {'time_type' => 'mixed',
260
- 'time_format' => 'unixtime',
261
- 'time_format_fallbacks' => ['%iso8601']}))
262
- parser = i.time_parser_create
263
- time = event_time('2021-01-01T12:00:00+0900')
264
- assert_equal_event_time(time, parser.parse('2021-01-01T12:00:00+0900'))
265
- end
266
-
267
- test 'primary format is %iso8601, secondary unixtime is used' do
268
- i = DummyForTimeParser.new
269
- i.configure(config_element('parse', '',
270
- {'time_type' => 'mixed',
271
- 'time_format' => '%iso8601',
272
- 'time_format_fallbacks' => ['unixtime']}))
273
- parser = i.time_parser_create
274
- time = event_time('2021-01-01T12:00:00+0900')
275
- assert_equal_event_time(time, parser.parse("#{time.sec}"))
276
- end
277
-
278
- test 'primary format is %iso8601, no secondary is used' do
279
- i = DummyForTimeParser.new
280
- i.configure(config_element('parse', '',
281
- {'time_type' => 'mixed',
282
- 'time_format' => '%iso8601'}))
283
- parser = i.time_parser_create
284
- time = event_time('2021-01-01T12:00:00+0900')
285
- assert_equal_event_time(time, parser.parse("2021-01-01T12:00:00+0900"))
286
- end
287
-
288
- test 'primary format is unixtime, no secondary is used' do
289
- i = DummyForTimeParser.new
290
- i.configure(config_element('parse', '',
291
- {'time_type' => 'mixed',
292
- 'time_format' => 'unixtime'}))
293
- parser = i.time_parser_create
294
- time = event_time('2021-01-01T12:00:00+0900')
295
- assert_equal_event_time(time, parser.parse("#{time.sec}"))
296
- end
297
-
298
- test 'primary format is %iso8601, raise error because of no appropriate secondary' do
299
- i = DummyForTimeParser.new
300
- i.configure(config_element('parse', '',
301
- {'time_type' => 'mixed',
302
- 'time_format' => '%iso8601'}))
303
- parser = i.time_parser_create
304
- time = event_time('2021-01-01T12:00:00+0900')
305
- assert_raise("Fluent::TimeParser::TimeParseError: invalid time format: value = #{time.sec}, even though fallbacks: Fluent::TimeParser") do
306
- parser.parse("#{time.sec}")
307
- end
308
- end
309
-
310
- test 'primary format is unixtime, raise error because of no appropriate secondary' do
311
- i = DummyForTimeParser.new
312
- i.configure(config_element('parse', '',
313
- {'time_type' => 'mixed',
314
- 'time_format' => 'unixtime'}))
315
- parser = i.time_parser_create
316
- time = event_time('2021-01-01T12:00:00+0900')
317
- assert_raise("Fluent::TimeParser::TimeParseError: invalid time format: value = #{time}, even though fallbacks: Fluent::NumericTimeParser") do
318
- parser.parse("2021-01-01T12:00:00+0900")
319
- end
320
- end
321
-
322
- test 'fallback to unixtime' do
323
- i = DummyForTimeParser.new
324
- i.configure(config_element('parse', '', {'time_type' => 'mixed',
325
- 'time_format_fallbacks' => ['%iso8601', 'unixtime']}))
326
- parser = i.time_parser_create
327
- time = event_time('2021-01-01T12:00:00+0900')
328
- assert_equal_event_time(Fluent::EventTime.new(time.to_i), parser.parse("#{time.sec}"))
329
- end
330
-
331
- test 'fallback to %iso8601' do
332
- i = DummyForTimeParser.new
333
- i.configure(config_element('parse', '', {'time_type' => 'mixed',
334
- 'time_format_fallbacks' => ['unixtime', '%iso8601']}))
335
- parser = i.time_parser_create
336
- time = event_time('2021-01-01T12:00:00+0900')
337
- assert_equal_event_time(time, parser.parse('2021-01-01T12:00:00+0900'))
338
- end
339
- end
340
-
341
- # https://github.com/fluent/fluentd/issues/3195
342
- test 'change timezone without zone specifier in a format' do
343
- expected = 1607457600 # 2020-12-08T20:00:00Z
344
- time1 = time2 = nil
345
-
346
- with_timezone("UTC-05") do # EST
347
- i = DummyForTimeParser.new
348
- i.configure(config_element('parse', '', {'time_type' => 'string',
349
- 'time_format' => '%Y-%m-%dT%H:%M:%SZ',
350
- 'utc' => true}))
351
- parser = i.time_parser_create
352
-
353
- time1 = parser.parse('2020-12-08T20:00:00Z').to_i
354
- time2 = with_timezone("UTC-04") do # EDT
355
- # to avoid using cache, increment 1 sec
356
- parser.parse('2020-12-08T20:00:01Z').to_i
357
- end
358
- end
359
-
360
- assert_equal([expected, expected + 1], [time1, time2])
361
- end
362
- end
data/test/test_tls.rb DELETED
@@ -1,65 +0,0 @@
1
- require_relative 'helper'
2
- require 'fluent/tls'
3
-
4
- class UniqueIdTest < Test::Unit::TestCase
5
- TEST_TLS1_1_CASES = {
6
- 'New TLS v1.1' => :'TLS1_1',
7
- 'Old TLS v1.1' => :'TLSv1_1',
8
- }
9
- TEST_TLS1_2_CASES = {
10
- 'New TLS v1.2' => :'TLS1_2',
11
- 'Old TLS v1.2' => :'TLSv1_2'
12
- }
13
- TEST_TLS_CASES = TEST_TLS1_1_CASES.merge(TEST_TLS1_2_CASES)
14
-
15
- sub_test_case 'constants' do
16
- test 'default version' do
17
- assert_equal :'TLSv1_2', Fluent::TLS::DEFAULT_VERSION
18
- end
19
-
20
- data(TEST_TLS_CASES)
21
- test 'supported versions' do |ver|
22
- assert_include Fluent::TLS::SUPPORTED_VERSIONS, ver
23
- end
24
-
25
- test 'default ciphers' do
26
- assert_equal "ALL:!aNULL:!eNULL:!SSLv2", Fluent::TLS::CIPHERS_DEFAULT
27
- end
28
- end
29
-
30
- sub_test_case 'set_version_to_context' do
31
- setup do
32
- @ctx = OpenSSL::SSL::SSLContext.new
33
- end
34
-
35
- # TODO: After openssl module supports min_version/max_version accessor, add assert for it.
36
-
37
- data(TEST_TLS_CASES)
38
- test 'with version' do |ver|
39
- assert_nothing_raised {
40
- Fluent::TLS.set_version_to_context(@ctx, ver, nil, nil)
41
- }
42
- end
43
-
44
- data(TEST_TLS_CASES)
45
- test 'can specify old/new syntax to min_version/max_version' do |ver|
46
- omit "min_version=/max_version= is not supported" unless Fluent::TLS::MIN_MAX_AVAILABLE
47
-
48
- assert_nothing_raised {
49
- Fluent::TLS.set_version_to_context(@ctx, Fluent::TLS::DEFAULT_VERSION, ver, ver)
50
- }
51
- end
52
-
53
- test 'raise ConfigError when either one of min_version/max_version is not specified' do
54
- omit "min_version=/max_version= is not supported" unless Fluent::TLS::MIN_MAX_AVAILABLE
55
-
56
- ver = Fluent::TLS::DEFAULT_VERSION
57
- assert_raise(Fluent::ConfigError) {
58
- Fluent::TLS.set_version_to_context(@ctx, ver, ver, nil)
59
- }
60
- assert_raise(Fluent::ConfigError) {
61
- Fluent::TLS.set_version_to_context(@ctx, ver, nil, ver)
62
- }
63
- end
64
- end
65
- end
@@ -1,47 +0,0 @@
1
- require_relative 'helper'
2
- require 'fluent/plugin/base'
3
- require 'fluent/unique_id'
4
-
5
- module UniqueIdTestEnv
6
- class Dummy < Fluent::Plugin::Base
7
- include Fluent::UniqueId::Mixin
8
- end
9
- end
10
-
11
- class UniqueIdTest < Test::Unit::TestCase
12
- sub_test_case 'module used directly' do
13
- test '.generate generates 128bit length unique id (16bytes)' do
14
- assert_equal 16, Fluent::UniqueId.generate.bytesize
15
- ary = []
16
- 100_000.times do
17
- ary << Fluent::UniqueId.generate
18
- end
19
- assert_equal 100_000, ary.uniq.size
20
- end
21
-
22
- test '.hex dumps 16bytes id into 32 chars' do
23
- assert_equal 32, Fluent::UniqueId.hex(Fluent::UniqueId.generate).size
24
- assert(Fluent::UniqueId.hex(Fluent::UniqueId.generate) =~ /^[0-9a-z]{32}$/)
25
- end
26
- end
27
-
28
- sub_test_case 'mixin' do
29
- setup do
30
- @i = UniqueIdTestEnv::Dummy.new
31
- end
32
-
33
- test '#generate_unique_id generates 128bit length id (16bytes)' do
34
- assert_equal 16, @i.generate_unique_id.bytesize
35
- ary = []
36
- 100_000.times do
37
- ary << @i.generate_unique_id
38
- end
39
- assert_equal 100_000, ary.uniq.size
40
- end
41
-
42
- test '#dump_unique_id_hex dumps 16bytes id into 32 chars' do
43
- assert_equal 32, @i.dump_unique_id_hex(@i.generate_unique_id).size
44
- assert(@i.dump_unique_id_hex(@i.generate_unique_id) =~ /^[0-9a-z]{32}$/)
45
- end
46
- end
47
- end
@@ -1,65 +0,0 @@
1
- require_relative 'helper'
2
- require 'fluent/variable_store'
3
-
4
- class VariableStoreTest < Test::Unit::TestCase
5
- def setup
6
- end
7
-
8
- def teardown
9
- Fluent::VariableStore.try_to_reset do
10
- # nothing
11
- end
12
- end
13
-
14
- sub_test_case '#fetch_or_build' do
15
- test 'fetch same object when the same key is passed' do
16
- c1 = Fluent::VariableStore.fetch_or_build(:test)
17
- c2 = Fluent::VariableStore.fetch_or_build(:test)
18
-
19
- assert_equal c1, c2
20
- assert_equal c1.object_id, c2.object_id
21
-
22
- c3 = Fluent::VariableStore.fetch_or_build(:test2)
23
- assert_not_equal c1.object_id, c3.object_id
24
- end
25
-
26
- test 'can be passed a default value' do
27
- c1 = Fluent::VariableStore.fetch_or_build(:test, default_value: Set.new)
28
- c2 = Fluent::VariableStore.fetch_or_build(:test)
29
-
30
- assert_kind_of Set, c1
31
- assert_equal c1, c2
32
- assert_equal c1.object_id, c2.object_id
33
- end
34
- end
35
-
36
- sub_test_case '#try_to_reset' do
37
- test 'reset all values' do
38
- c1 = Fluent::VariableStore.fetch_or_build(:test)
39
- c1[:k1] = 1
40
- assert_equal 1, c1[:k1]
41
-
42
- Fluent::VariableStore.try_to_reset do
43
- # nothing
44
- end
45
-
46
- c1 = Fluent::VariableStore.fetch_or_build(:test)
47
- assert_nil c1[:k1]
48
- end
49
-
50
- test 'rollback resetting if error raised' do
51
- c1 = Fluent::VariableStore.fetch_or_build(:test)
52
- c1[:k1] = 1
53
- assert_equal 1, c1[:k1]
54
-
55
- assert_raise(RuntimeError.new('pass')) do
56
- Fluent::VariableStore.try_to_reset do
57
- raise 'pass'
58
- end
59
- end
60
-
61
- c1 = Fluent::VariableStore.fetch_or_build(:test)
62
- assert_equal 1, c1[:k1]
63
- end
64
- end
65
- end