fluentd 1.17.0-x64-mingw-ucrt → 1.18.0-x64-mingw-ucrt

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 (278) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +100 -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/command/fluentd.rb +7 -1
  8. data/lib/fluent/compat/call_super_mixin.rb +3 -3
  9. data/lib/fluent/compat/propagate_default.rb +4 -4
  10. data/lib/fluent/config/literal_parser.rb +9 -2
  11. data/lib/fluent/config/yaml_parser/parser.rb +4 -0
  12. data/lib/fluent/engine.rb +49 -33
  13. data/lib/fluent/env.rb +3 -0
  14. data/lib/fluent/event_router.rb +2 -2
  15. data/lib/fluent/log/console_adapter.rb +4 -2
  16. data/lib/fluent/plugin/filter_parser.rb +27 -51
  17. data/lib/fluent/plugin/in_exec.rb +14 -2
  18. data/lib/fluent/plugin/in_http.rb +6 -1
  19. data/lib/fluent/plugin/in_sample.rb +13 -7
  20. data/lib/fluent/plugin/in_syslog.rb +4 -0
  21. data/lib/fluent/plugin/in_tail.rb +65 -23
  22. data/lib/fluent/plugin/in_tcp.rb +4 -0
  23. data/lib/fluent/plugin/in_udp.rb +10 -1
  24. data/lib/fluent/plugin/input.rb +4 -0
  25. data/lib/fluent/plugin/out_buffer.rb +40 -0
  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 +12 -0
  29. data/lib/fluent/plugin/output.rb +2 -0
  30. data/lib/fluent/plugin/parser_json.rb +4 -12
  31. data/lib/fluent/plugin_helper/cert_option.rb +8 -0
  32. data/lib/fluent/plugin_helper/event_emitter.rb +12 -0
  33. data/lib/fluent/plugin_helper/http_server/server.rb +24 -8
  34. data/lib/fluent/plugin_helper/server.rb +9 -0
  35. data/lib/fluent/root_agent.rb +114 -19
  36. data/lib/fluent/source_only_buffer_agent.rb +102 -0
  37. data/lib/fluent/supervisor.rb +207 -34
  38. data/lib/fluent/system_config.rb +15 -3
  39. data/lib/fluent/version.rb +1 -1
  40. data/templates/new_gem/fluent-plugin.gemspec.erb +6 -5
  41. metadata +24 -483
  42. data/.github/DISCUSSION_TEMPLATE/q-a-japanese.yml +0 -50
  43. data/.github/DISCUSSION_TEMPLATE/q-a.yml +0 -47
  44. data/.github/ISSUE_TEMPLATE/bug_report.yml +0 -71
  45. data/.github/ISSUE_TEMPLATE/config.yml +0 -5
  46. data/.github/ISSUE_TEMPLATE/feature_request.yml +0 -39
  47. data/.github/ISSUE_TEMPLATE.md +0 -17
  48. data/.github/PULL_REQUEST_TEMPLATE.md +0 -14
  49. data/.github/workflows/stale-actions.yml +0 -24
  50. data/.github/workflows/test-ruby-head.yml +0 -31
  51. data/.github/workflows/test.yml +0 -32
  52. data/.gitignore +0 -30
  53. data/Gemfile +0 -9
  54. data/fluentd.gemspec +0 -62
  55. data/test/command/test_binlog_reader.rb +0 -362
  56. data/test/command/test_ca_generate.rb +0 -70
  57. data/test/command/test_cap_ctl.rb +0 -100
  58. data/test/command/test_cat.rb +0 -128
  59. data/test/command/test_ctl.rb +0 -56
  60. data/test/command/test_fluentd.rb +0 -1291
  61. data/test/command/test_plugin_config_formatter.rb +0 -397
  62. data/test/command/test_plugin_generator.rb +0 -109
  63. data/test/compat/test_calls_super.rb +0 -166
  64. data/test/compat/test_parser.rb +0 -92
  65. data/test/config/assertions.rb +0 -42
  66. data/test/config/test_config_parser.rb +0 -551
  67. data/test/config/test_configurable.rb +0 -1784
  68. data/test/config/test_configure_proxy.rb +0 -604
  69. data/test/config/test_dsl.rb +0 -415
  70. data/test/config/test_element.rb +0 -518
  71. data/test/config/test_literal_parser.rb +0 -309
  72. data/test/config/test_plugin_configuration.rb +0 -56
  73. data/test/config/test_section.rb +0 -191
  74. data/test/config/test_system_config.rb +0 -195
  75. data/test/config/test_types.rb +0 -408
  76. data/test/counter/test_client.rb +0 -563
  77. data/test/counter/test_error.rb +0 -44
  78. data/test/counter/test_mutex_hash.rb +0 -179
  79. data/test/counter/test_server.rb +0 -589
  80. data/test/counter/test_store.rb +0 -258
  81. data/test/counter/test_validator.rb +0 -137
  82. data/test/helper.rb +0 -155
  83. data/test/helpers/fuzzy_assert.rb +0 -89
  84. data/test/helpers/process_extenstion.rb +0 -33
  85. data/test/log/test_console_adapter.rb +0 -117
  86. data/test/plugin/data/2010/01/20100102-030405.log +0 -0
  87. data/test/plugin/data/2010/01/20100102-030406.log +0 -0
  88. data/test/plugin/data/2010/01/20100102.log +0 -0
  89. data/test/plugin/data/log/bar +0 -0
  90. data/test/plugin/data/log/foo/bar.log +0 -0
  91. data/test/plugin/data/log/foo/bar2 +0 -0
  92. data/test/plugin/data/log/test.log +0 -0
  93. data/test/plugin/data/log_numeric/01.log +0 -0
  94. data/test/plugin/data/log_numeric/02.log +0 -0
  95. data/test/plugin/data/log_numeric/12.log +0 -0
  96. data/test/plugin/data/log_numeric/14.log +0 -0
  97. data/test/plugin/data/sd_file/config +0 -11
  98. data/test/plugin/data/sd_file/config.json +0 -17
  99. data/test/plugin/data/sd_file/config.yaml +0 -11
  100. data/test/plugin/data/sd_file/config.yml +0 -11
  101. data/test/plugin/data/sd_file/invalid_config.yml +0 -7
  102. data/test/plugin/in_tail/test_fifo.rb +0 -121
  103. data/test/plugin/in_tail/test_io_handler.rb +0 -150
  104. data/test/plugin/in_tail/test_position_file.rb +0 -346
  105. data/test/plugin/out_forward/test_ack_handler.rb +0 -140
  106. data/test/plugin/out_forward/test_connection_manager.rb +0 -145
  107. data/test/plugin/out_forward/test_handshake_protocol.rb +0 -112
  108. data/test/plugin/out_forward/test_load_balancer.rb +0 -106
  109. data/test/plugin/out_forward/test_socket_cache.rb +0 -174
  110. data/test/plugin/test_bare_output.rb +0 -131
  111. data/test/plugin/test_base.rb +0 -247
  112. data/test/plugin/test_buf_file.rb +0 -1314
  113. data/test/plugin/test_buf_file_single.rb +0 -898
  114. data/test/plugin/test_buf_memory.rb +0 -42
  115. data/test/plugin/test_buffer.rb +0 -1493
  116. data/test/plugin/test_buffer_chunk.rb +0 -209
  117. data/test/plugin/test_buffer_file_chunk.rb +0 -871
  118. data/test/plugin/test_buffer_file_single_chunk.rb +0 -611
  119. data/test/plugin/test_buffer_memory_chunk.rb +0 -339
  120. data/test/plugin/test_compressable.rb +0 -87
  121. data/test/plugin/test_file_util.rb +0 -96
  122. data/test/plugin/test_filter.rb +0 -368
  123. data/test/plugin/test_filter_grep.rb +0 -697
  124. data/test/plugin/test_filter_parser.rb +0 -731
  125. data/test/plugin/test_filter_record_transformer.rb +0 -577
  126. data/test/plugin/test_filter_stdout.rb +0 -207
  127. data/test/plugin/test_formatter_csv.rb +0 -136
  128. data/test/plugin/test_formatter_hash.rb +0 -38
  129. data/test/plugin/test_formatter_json.rb +0 -61
  130. data/test/plugin/test_formatter_ltsv.rb +0 -70
  131. data/test/plugin/test_formatter_msgpack.rb +0 -28
  132. data/test/plugin/test_formatter_out_file.rb +0 -116
  133. data/test/plugin/test_formatter_single_value.rb +0 -44
  134. data/test/plugin/test_formatter_tsv.rb +0 -76
  135. data/test/plugin/test_in_debug_agent.rb +0 -49
  136. data/test/plugin/test_in_exec.rb +0 -261
  137. data/test/plugin/test_in_forward.rb +0 -1178
  138. data/test/plugin/test_in_gc_stat.rb +0 -62
  139. data/test/plugin/test_in_http.rb +0 -1124
  140. data/test/plugin/test_in_monitor_agent.rb +0 -922
  141. data/test/plugin/test_in_object_space.rb +0 -66
  142. data/test/plugin/test_in_sample.rb +0 -190
  143. data/test/plugin/test_in_syslog.rb +0 -505
  144. data/test/plugin/test_in_tail.rb +0 -3429
  145. data/test/plugin/test_in_tcp.rb +0 -328
  146. data/test/plugin/test_in_udp.rb +0 -296
  147. data/test/plugin/test_in_unix.rb +0 -181
  148. data/test/plugin/test_input.rb +0 -137
  149. data/test/plugin/test_metadata.rb +0 -89
  150. data/test/plugin/test_metrics.rb +0 -294
  151. data/test/plugin/test_metrics_local.rb +0 -96
  152. data/test/plugin/test_multi_output.rb +0 -204
  153. data/test/plugin/test_out_copy.rb +0 -308
  154. data/test/plugin/test_out_exec.rb +0 -312
  155. data/test/plugin/test_out_exec_filter.rb +0 -606
  156. data/test/plugin/test_out_file.rb +0 -1038
  157. data/test/plugin/test_out_forward.rb +0 -1349
  158. data/test/plugin/test_out_http.rb +0 -557
  159. data/test/plugin/test_out_null.rb +0 -105
  160. data/test/plugin/test_out_relabel.rb +0 -28
  161. data/test/plugin/test_out_roundrobin.rb +0 -146
  162. data/test/plugin/test_out_secondary_file.rb +0 -458
  163. data/test/plugin/test_out_stdout.rb +0 -205
  164. data/test/plugin/test_out_stream.rb +0 -103
  165. data/test/plugin/test_output.rb +0 -1334
  166. data/test/plugin/test_output_as_buffered.rb +0 -2024
  167. data/test/plugin/test_output_as_buffered_backup.rb +0 -363
  168. data/test/plugin/test_output_as_buffered_compress.rb +0 -179
  169. data/test/plugin/test_output_as_buffered_overflow.rb +0 -250
  170. data/test/plugin/test_output_as_buffered_retries.rb +0 -966
  171. data/test/plugin/test_output_as_buffered_secondary.rb +0 -882
  172. data/test/plugin/test_output_as_standard.rb +0 -374
  173. data/test/plugin/test_owned_by.rb +0 -34
  174. data/test/plugin/test_parser.rb +0 -399
  175. data/test/plugin/test_parser_apache.rb +0 -42
  176. data/test/plugin/test_parser_apache2.rb +0 -47
  177. data/test/plugin/test_parser_apache_error.rb +0 -45
  178. data/test/plugin/test_parser_csv.rb +0 -200
  179. data/test/plugin/test_parser_json.rb +0 -244
  180. data/test/plugin/test_parser_labeled_tsv.rb +0 -160
  181. data/test/plugin/test_parser_msgpack.rb +0 -127
  182. data/test/plugin/test_parser_multiline.rb +0 -111
  183. data/test/plugin/test_parser_nginx.rb +0 -88
  184. data/test/plugin/test_parser_none.rb +0 -52
  185. data/test/plugin/test_parser_regexp.rb +0 -284
  186. data/test/plugin/test_parser_syslog.rb +0 -650
  187. data/test/plugin/test_parser_tsv.rb +0 -122
  188. data/test/plugin/test_sd_file.rb +0 -228
  189. data/test/plugin/test_sd_srv.rb +0 -230
  190. data/test/plugin/test_storage.rb +0 -166
  191. data/test/plugin/test_storage_local.rb +0 -335
  192. data/test/plugin/test_string_util.rb +0 -26
  193. data/test/plugin_helper/data/cert/cert-key.pem +0 -27
  194. data/test/plugin_helper/data/cert/cert-with-CRLF.pem +0 -19
  195. data/test/plugin_helper/data/cert/cert-with-no-newline.pem +0 -19
  196. data/test/plugin_helper/data/cert/cert.pem +0 -19
  197. data/test/plugin_helper/data/cert/cert_chains/ca-cert-key.pem +0 -27
  198. data/test/plugin_helper/data/cert/cert_chains/ca-cert.pem +0 -20
  199. data/test/plugin_helper/data/cert/cert_chains/cert-key.pem +0 -27
  200. data/test/plugin_helper/data/cert/cert_chains/cert.pem +0 -40
  201. data/test/plugin_helper/data/cert/empty.pem +0 -0
  202. data/test/plugin_helper/data/cert/generate_cert.rb +0 -125
  203. data/test/plugin_helper/data/cert/with_ca/ca-cert-key-pass.pem +0 -30
  204. data/test/plugin_helper/data/cert/with_ca/ca-cert-key.pem +0 -27
  205. data/test/plugin_helper/data/cert/with_ca/ca-cert-pass.pem +0 -20
  206. data/test/plugin_helper/data/cert/with_ca/ca-cert.pem +0 -20
  207. data/test/plugin_helper/data/cert/with_ca/cert-key-pass.pem +0 -30
  208. data/test/plugin_helper/data/cert/with_ca/cert-key.pem +0 -27
  209. data/test/plugin_helper/data/cert/with_ca/cert-pass.pem +0 -21
  210. data/test/plugin_helper/data/cert/with_ca/cert.pem +0 -21
  211. data/test/plugin_helper/data/cert/without_ca/cert-key-pass.pem +0 -30
  212. data/test/plugin_helper/data/cert/without_ca/cert-key.pem +0 -27
  213. data/test/plugin_helper/data/cert/without_ca/cert-pass.pem +0 -20
  214. data/test/plugin_helper/data/cert/without_ca/cert.pem +0 -20
  215. data/test/plugin_helper/http_server/test_app.rb +0 -65
  216. data/test/plugin_helper/http_server/test_route.rb +0 -32
  217. data/test/plugin_helper/service_discovery/test_manager.rb +0 -93
  218. data/test/plugin_helper/service_discovery/test_round_robin_balancer.rb +0 -21
  219. data/test/plugin_helper/test_cert_option.rb +0 -25
  220. data/test/plugin_helper/test_child_process.rb +0 -862
  221. data/test/plugin_helper/test_compat_parameters.rb +0 -358
  222. data/test/plugin_helper/test_event_emitter.rb +0 -80
  223. data/test/plugin_helper/test_event_loop.rb +0 -52
  224. data/test/plugin_helper/test_extract.rb +0 -194
  225. data/test/plugin_helper/test_formatter.rb +0 -255
  226. data/test/plugin_helper/test_http_server_helper.rb +0 -372
  227. data/test/plugin_helper/test_inject.rb +0 -561
  228. data/test/plugin_helper/test_metrics.rb +0 -137
  229. data/test/plugin_helper/test_parser.rb +0 -264
  230. data/test/plugin_helper/test_record_accessor.rb +0 -238
  231. data/test/plugin_helper/test_retry_state.rb +0 -1006
  232. data/test/plugin_helper/test_server.rb +0 -1895
  233. data/test/plugin_helper/test_service_discovery.rb +0 -165
  234. data/test/plugin_helper/test_socket.rb +0 -146
  235. data/test/plugin_helper/test_storage.rb +0 -542
  236. data/test/plugin_helper/test_thread.rb +0 -164
  237. data/test/plugin_helper/test_timer.rb +0 -130
  238. data/test/scripts/exec_script.rb +0 -32
  239. data/test/scripts/fluent/plugin/formatter1/formatter_test1.rb +0 -7
  240. data/test/scripts/fluent/plugin/formatter2/formatter_test2.rb +0 -7
  241. data/test/scripts/fluent/plugin/formatter_known.rb +0 -8
  242. data/test/scripts/fluent/plugin/out_test.rb +0 -81
  243. data/test/scripts/fluent/plugin/out_test2.rb +0 -80
  244. data/test/scripts/fluent/plugin/parser_known.rb +0 -4
  245. data/test/test_capability.rb +0 -74
  246. data/test/test_clock.rb +0 -164
  247. data/test/test_config.rb +0 -369
  248. data/test/test_configdsl.rb +0 -148
  249. data/test/test_daemonizer.rb +0 -91
  250. data/test/test_engine.rb +0 -203
  251. data/test/test_event.rb +0 -531
  252. data/test/test_event_router.rb +0 -348
  253. data/test/test_event_time.rb +0 -199
  254. data/test/test_file_wrapper.rb +0 -53
  255. data/test/test_filter.rb +0 -121
  256. data/test/test_fluent_log_event_router.rb +0 -99
  257. data/test/test_formatter.rb +0 -369
  258. data/test/test_input.rb +0 -31
  259. data/test/test_log.rb +0 -1076
  260. data/test/test_match.rb +0 -148
  261. data/test/test_mixin.rb +0 -351
  262. data/test/test_msgpack_factory.rb +0 -50
  263. data/test/test_oj_options.rb +0 -55
  264. data/test/test_output.rb +0 -278
  265. data/test/test_plugin.rb +0 -251
  266. data/test/test_plugin_classes.rb +0 -370
  267. data/test/test_plugin_helper.rb +0 -81
  268. data/test/test_plugin_id.rb +0 -119
  269. data/test/test_process.rb +0 -14
  270. data/test/test_root_agent.rb +0 -951
  271. data/test/test_static_config_analysis.rb +0 -177
  272. data/test/test_supervisor.rb +0 -821
  273. data/test/test_test_drivers.rb +0 -136
  274. data/test/test_time_formatter.rb +0 -301
  275. data/test/test_time_parser.rb +0 -362
  276. data/test/test_tls.rb +0 -65
  277. data/test/test_unique_id.rb +0 -47
  278. data/test/test_variable_store.rb +0 -65
@@ -1,136 +0,0 @@
1
- require_relative 'helper'
2
- require 'fluent/plugin/input'
3
- require 'fluent/test/driver/input'
4
- require 'fluent/plugin/output'
5
- require 'fluent/test/driver/output'
6
- require 'fluent/plugin/filter'
7
- require 'fluent/test/driver/filter'
8
- require 'fluent/plugin/multi_output'
9
- require 'fluent/test/driver/multi_output'
10
- require 'fluent/plugin/parser'
11
- require 'fluent/test/driver/parser'
12
- require 'fluent/plugin/formatter'
13
- require 'fluent/test/driver/formatter'
14
-
15
- require 'timecop'
16
-
17
- class TestDriverTest < ::Test::Unit::TestCase
18
- def setup
19
- Fluent::Test.setup
20
- end
21
-
22
- sub_test_case 'plugin test driver' do
23
- data(
24
- 'input plugin test driver' => [Fluent::Test::Driver::Input, Fluent::Plugin::Input],
25
- 'multi_output plugin test driver' => [Fluent::Test::Driver::MultiOutput, Fluent::Plugin::MultiOutput],
26
- 'parser plugin test driver' => [Fluent::Test::Driver::Parser, Fluent::Plugin::Parser],
27
- 'formatter plugin test driver' => [Fluent::Test::Driver::Formatter, Fluent::Plugin::Formatter],
28
- )
29
- test 'returns the block value as the return value of #run' do |args|
30
- driver_class, plugin_class = args
31
- d = driver_class.new(Class.new(plugin_class))
32
- v = d.run do
33
- x = 1 + 2
34
- y = 2 + 4
35
- 3 || x || y
36
- end
37
- assert_equal 3, v
38
- end
39
-
40
- data(
41
- 'input plugin test driver' => [Fluent::Test::Driver::Input, Fluent::Plugin::Input],
42
- 'multi_output plugin test driver' => [Fluent::Test::Driver::MultiOutput, Fluent::Plugin::MultiOutput],
43
- 'parser plugin test driver' => [Fluent::Test::Driver::Parser, Fluent::Plugin::Parser],
44
- 'formatter plugin test driver' => [Fluent::Test::Driver::Formatter, Fluent::Plugin::Formatter],
45
- )
46
- test 'raises error for hard timeout' do |args|
47
- driver_class, plugin_class = args
48
- d = driver_class.new(Class.new(plugin_class))
49
- assert_raise Fluent::Test::Driver::TestTimedOut do
50
- d.run(timeout: 0.5) do
51
- sleep 2
52
- end
53
- end
54
- end
55
-
56
- data(
57
- 'input plugin test driver' => [Fluent::Test::Driver::Input, Fluent::Plugin::Input],
58
- 'multi_output plugin test driver' => [Fluent::Test::Driver::MultiOutput, Fluent::Plugin::MultiOutput],
59
- 'parser plugin test driver' => [Fluent::Test::Driver::Parser, Fluent::Plugin::Parser],
60
- 'formatter plugin test driver' => [Fluent::Test::Driver::Formatter, Fluent::Plugin::Formatter],
61
- )
62
- test 'can stop with soft timeout for blocks never stops, even with Timecop' do |args|
63
- Timecop.freeze(Time.parse("2016-11-04 18:49:00"))
64
- begin
65
- driver_class, plugin_class = args
66
- d = driver_class.new(Class.new(plugin_class))
67
- assert_nothing_raised do
68
- before = Process.clock_gettime(Process::CLOCK_MONOTONIC)
69
- d.end_if{ false }
70
- d.run(timeout: 1) do
71
- sleep 0.1 until d.stop?
72
- end
73
- after = Process.clock_gettime(Process::CLOCK_MONOTONIC)
74
- assert{ after >= before + 1.0 }
75
- end
76
- ensure
77
- Timecop.return
78
- end
79
- end
80
-
81
- test 'raise errors raised in threads' do
82
- d = Fluent::Test::Driver::Input.new(Fluent::Plugin::Input) do
83
- helpers :thread
84
- def start
85
- super
86
- thread_create(:input_thread_for_test_driver_test) do
87
- sleep 0.5
88
- raise "yaaaaaaaaaay!"
89
- end
90
- end
91
- end
92
-
93
- assert_raise RuntimeError.new("yaaaaaaaaaay!") do
94
- d.end_if{ false }
95
- d.run(timeout: 3) do
96
- sleep 0.1 until d.stop?
97
- end
98
- end
99
- end
100
- end
101
-
102
- sub_test_case 'output plugin test driver' do
103
- test 'returns the block value as the return value of #run' do
104
- d = Fluent::Test::Driver::Output.new(Fluent::Plugin::Output) do
105
- def prefer_buffered_processing
106
- false
107
- end
108
- def process(tag, es)
109
- # drop
110
- end
111
- end
112
- v = d.run do
113
- x = 1 + 2
114
- y = 2 + 4
115
- 3 || x || y
116
- end
117
- assert_equal 3, v
118
- end
119
- end
120
-
121
- sub_test_case 'filter plugin test driver' do
122
- test 'returns the block value as the return value of #run' do
123
- d = Fluent::Test::Driver::Filter.new(Fluent::Plugin::Filter) do
124
- def filter(tag, time, record)
125
- record
126
- end
127
- end
128
- v = d.run do
129
- x = 1 + 2
130
- y = 2 + 4
131
- 3 || x || y
132
- end
133
- assert_equal 3, v
134
- end
135
- end
136
- end
@@ -1,301 +0,0 @@
1
- require_relative 'helper'
2
- require 'fluent/test'
3
- require 'fluent/time'
4
-
5
- class TimeFormatterTest < ::Test::Unit::TestCase
6
- setup do
7
- @fmt ="%Y%m%d %H%M%z" # YYYYMMDD HHMM[+-]HHMM
8
- end
9
-
10
- def format(format, localtime, timezone)
11
- formatter = Fluent::TimeFormatter.new(format, localtime, timezone)
12
- formatter.format(@time)
13
- end
14
-
15
- module TestLists
16
- def test_default_utc_nil
17
- assert_equal("2014-09-27T00:00:00Z", format(nil, false, nil))
18
- end
19
-
20
- def test_default_utc_pHH_MM
21
- assert_equal("2014-09-27T01:30:00+01:30", format(nil, false, "+01:30"))
22
- end
23
-
24
- def test_default_utc_nHH_MM
25
- assert_equal("2014-09-26T22:30:00-01:30", format(nil, false, "-01:30"))
26
- end
27
-
28
- def test_default_utc_pHHMM
29
- assert_equal("2014-09-27T02:30:00+02:30", format(nil, false, "+0230"))
30
- end
31
-
32
- def test_default_utc_nHHMM
33
- assert_equal("2014-09-26T21:30:00-02:30", format(nil, false, "-0230"))
34
- end
35
-
36
- def test_default_utc_pHH
37
- assert_equal("2014-09-27T03:00:00+03:00", format(nil, false, "+03"))
38
- end
39
-
40
- def test_default_utc_nHH
41
- assert_equal("2014-09-26T21:00:00-03:00", format(nil, false, "-03"))
42
- end
43
-
44
- def test_default_utc_timezone_1
45
- # Asia/Tokyo (+09:00) does not have daylight saving time.
46
- assert_equal("2014-09-27T09:00:00+09:00", format(nil, false, "Asia/Tokyo"))
47
- end
48
-
49
- def test_default_utc_timezone_2
50
- # Pacific/Honolulu (-10:00) does not have daylight saving time.
51
- assert_equal("2014-09-26T14:00:00-10:00", format(nil, false, "Pacific/Honolulu"))
52
- end
53
-
54
- def test_default_utc_timezone_3
55
- # America/Argentina/Buenos_Aires (-03:00) does not have daylight saving time.
56
- assert_equal("2014-09-26T21:00:00-03:00", format(nil, false, "America/Argentina/Buenos_Aires"))
57
- end
58
-
59
- def test_default_utc_timezone_4
60
- # Europe/Paris has daylight saving time. Its UTC offset is +01:00 and its
61
- # UTC offset in DST is +02:00. In September, Europe/Paris is in DST.
62
- assert_equal("2014-09-27T02:00:00+02:00", format(nil, false, "Europe/Paris"))
63
- end
64
-
65
- def test_default_utc_timezone_5
66
- # Europe/Paris has daylight saving time. Its UTC offset is +01:00 and its
67
- # UTC offset in DST is +02:00. In January, Europe/Paris is not in DST.
68
- @time = Time.new(2014, 1, 24, 0, 0, 0, 0).to_i
69
- assert_equal("2014-01-24T01:00:00+01:00", format(nil, false, "Europe/Paris"))
70
- end
71
-
72
- def test_default_utc_invalid
73
- assert_equal("2014-09-27T00:00:00Z", format(nil, false, "Invalid"))
74
- end
75
-
76
- def test_default_localtime_nil_1
77
- with_timezone("UTC-04") do
78
- assert_equal("2014-09-27T04:00:00+04:00", format(nil, true, nil))
79
- end
80
- end
81
-
82
- def test_default_localtime_nil_2
83
- with_timezone("UTC+05") do
84
- assert_equal("2014-09-26T19:00:00-05:00", format(nil, true, nil))
85
- end
86
- end
87
-
88
- def test_default_localtime_timezone
89
- # 'timezone' takes precedence over 'localtime'.
90
- with_timezone("UTC-06") do
91
- assert_equal("2014-09-27T07:00:00+07:00", format(nil, true, "+07"))
92
- end
93
- end
94
-
95
- def test_specific_utc_nil
96
- assert_equal("20140927 0000+0000", format(@fmt, false, nil))
97
- end
98
-
99
- def test_specific_utc_pHH_MM
100
- assert_equal("20140927 0830+0830", format(@fmt, false, "+08:30"))
101
- end
102
-
103
- def test_specific_utc_nHH_MM
104
- assert_equal("20140926 1430-0930", format(@fmt, false, "-09:30"))
105
- end
106
-
107
- def test_specific_utc_pHHMM
108
- assert_equal("20140927 1030+1030", format(@fmt, false, "+1030"))
109
- end
110
-
111
- def test_specific_utc_nHHMM
112
- assert_equal("20140926 1230-1130", format(@fmt, false, "-1130"))
113
- end
114
-
115
- def test_specific_utc_pHH
116
- assert_equal("20140927 1200+1200", format(@fmt, false, "+12"))
117
- end
118
-
119
- def test_specific_utc_nHH
120
- assert_equal("20140926 1100-1300", format(@fmt, false, "-13"))
121
- end
122
-
123
- def test_specific_utc_timezone_1
124
- # Europe/Moscow (+04:00) does not have daylight saving time.
125
- assert_equal("20140927 0400+0400", format(@fmt, false, "Europe/Moscow"))
126
- end
127
-
128
- def test_specific_utc_timezone_2
129
- # Pacific/Galapagos (-06:00) does not have daylight saving time.
130
- assert_equal("20140926 1800-0600", format(@fmt, false, "Pacific/Galapagos"))
131
- end
132
-
133
- def test_specific_utc_timezone_3
134
- # America/Argentina/Buenos_Aires (-03:00) does not have daylight saving time.
135
- assert_equal("20140926 2100-0300", format(@fmt, false, "America/Argentina/Buenos_Aires"))
136
- end
137
-
138
- def test_specific_utc_timezone_4
139
- # America/Los_Angeles has daylight saving time. Its UTC offset is -08:00 and its
140
- # UTC offset in DST is -07:00. In September, America/Los_Angeles is in DST.
141
- assert_equal("20140926 1700-0700", format(@fmt, false, "America/Los_Angeles"))
142
- end
143
-
144
- def test_specific_utc_timezone_5
145
- # America/Los_Angeles has daylight saving time. Its UTC offset is -08:00 and its
146
- # UTC offset in DST is -07:00. In January, America/Los_Angeles is not in DST.
147
- @time = Time.new(2014, 1, 24, 0, 0, 0, 0).to_i
148
- assert_equal("20140123 1600-0800", format(@fmt, false, "America/Los_Angeles"))
149
- end
150
-
151
- def test_specific_utc_invalid
152
- assert_equal("20140927 0000+0000", format(@fmt, false, "Invalid"))
153
- end
154
-
155
- def test_specific_localtime_nil_1
156
- with_timezone("UTC-07") do
157
- assert_equal("20140927 0700+0700", format(@fmt, true, nil))
158
- end
159
- end
160
-
161
- def test_specific_localtime_nil_2
162
- with_timezone("UTC+08") do
163
- assert_equal("20140926 1600-0800", format(@fmt, true, nil))
164
- end
165
- end
166
-
167
- def test_specific_localtime_timezone
168
- # 'timezone' takes precedence over 'localtime'.
169
- with_timezone("UTC-09") do
170
- assert_equal("20140926 1400-1000", format(@fmt, true, "-10"))
171
- end
172
- end
173
- end
174
-
175
- sub_test_case 'Fluent::EventTime time' do
176
- setup do
177
- @time = Fluent::EventTime.from_time(Time.new(2014, 9, 27, 0, 0, 0, 0))
178
- end
179
-
180
- include TestLists
181
- end
182
-
183
- # for v0.12 compatibility
184
- sub_test_case 'Integer time' do
185
- setup do
186
- @time = Time.new(2014, 9, 27, 0, 0, 0, 0).to_i
187
- end
188
-
189
- include TestLists
190
- end
191
-
192
- def test_format_with_subsec
193
- time = Time.new(2014, 9, 27, 0, 0, 0, 0).to_i
194
- time = Fluent::EventTime.new(time)
195
- formatter = Fluent::TimeFormatter.new("%Y%m%d %H%M.%N", false, nil)
196
- assert_equal("20140927 0000.000000000", formatter.format(time))
197
- end
198
-
199
- sub_test_case 'TimeMixin::Formatter' do
200
- class DummyForTimeFormatter
201
- include Fluent::Configurable
202
- include Fluent::TimeMixin::Formatter
203
- end
204
-
205
- test 'provides configuration parameters for TimeFormatter with default values for localtime' do
206
- str = with_timezone("UTC+07") do
207
- i = DummyForTimeFormatter.new
208
- i.configure(config_element('format'))
209
-
210
- assert_nil i.time_format
211
- assert_true i.localtime
212
- assert_false i.utc
213
- assert_nil i.timezone
214
-
215
- fmt = i.time_formatter_create
216
- fmt.format(event_time("2016-09-02 18:42:31.012345678 UTC", format: '%Y-%m-%d %H:%M:%S.%N %z'))
217
- end
218
- assert_equal "2016-09-02T11:42:31-07:00", str
219
- end
220
-
221
- test 'provides configuration parameters for TimeFormatter, configurable for any time format' do
222
- str = with_timezone("UTC+07") do
223
- i = DummyForTimeFormatter.new
224
- i.configure(config_element('format', '', {'time_format' => '%Y-%m-%d %H:%M:%S.%N %z'}))
225
-
226
- fmt = i.time_formatter_create
227
- fmt.format(event_time("2016-09-02 18:42:31.012345678 UTC", format: '%Y-%m-%d %H:%M:%S.%N %z'))
228
- end
229
- assert_equal "2016-09-02 11:42:31.012345678 -0700", str
230
- end
231
-
232
- test 'provides configuration parameters for TimeFormatter, configurable for UTC' do
233
- str = with_timezone("UTC+07") do
234
- i = DummyForTimeFormatter.new
235
- i.configure(config_element('format', '', {'time_format' => '%Y-%m-%d %H:%M:%S.%N %z', 'utc' => 'true'}))
236
-
237
- fmt = i.time_formatter_create
238
- fmt.format(event_time("2016-09-02 18:42:31.012345678 UTC", format: '%Y-%m-%d %H:%M:%S.%N %z'))
239
- end
240
- assert_equal "2016-09-02 18:42:31.012345678 +0000", str
241
- end
242
-
243
- test 'provides configuration parameters for TimeFormatter, configurable for any timezone' do
244
- str = with_timezone("UTC+07") do
245
- i = DummyForTimeFormatter.new
246
- i.configure(config_element('format', '', {'time_format' => '%Y-%m-%d %H:%M:%S.%N %z', 'timezone' => '+0900'}))
247
-
248
- fmt = i.time_formatter_create
249
- fmt.format(event_time("2016-09-02 18:42:31.012345678 UTC", format: '%Y-%m-%d %H:%M:%S.%N %z'))
250
- end
251
- assert_equal "2016-09-03 03:42:31.012345678 +0900", str
252
- end
253
-
254
- test '#time_formatter_create returns TimeFormatter with specified time format and timezone' do
255
- str = with_timezone("UTC+07") do
256
- i = DummyForTimeFormatter.new
257
- i.configure(config_element('format', '', {'time_format' => '%Y-%m-%d %H:%M:%S.%N %z', 'timezone' => '+0900'}))
258
-
259
- fmt = i.time_formatter_create(format: '%m/%d/%Y %H-%M-%S %N', timezone: '+0000')
260
- fmt.format(event_time("2016-09-02 18:42:31.012345678 UTC", format: '%Y-%m-%d %H:%M:%S.%N %z'))
261
- end
262
- assert_equal "09/02/2016 18-42-31 012345678", str
263
- end
264
-
265
- test '#time_formatter_create returns TimeFormatter with localtime besides any configuration parameters' do
266
- str = with_timezone("UTC+07") do
267
- i = DummyForTimeFormatter.new
268
- i.configure(config_element('format', '', {'time_format' => '%Y-%m-%d %H:%M:%S.%N %z', 'utc' => 'true'}))
269
-
270
- fmt = i.time_formatter_create(format: '%m/%d/%Y %H-%M-%S %N', force_localtime: true)
271
- fmt.format(event_time("2016-09-02 18:42:31.012345678 UTC", format: '%Y-%m-%d %H:%M:%S.%N %z'))
272
- end
273
- assert_equal "09/02/2016 11-42-31 012345678", str
274
-
275
- str = with_timezone("UTC+07") do
276
- i = DummyForTimeFormatter.new
277
- i.configure(config_element('format', '', {'time_format' => '%Y-%m-%d %H:%M:%S.%N %z', 'timezone' => '+0900'}))
278
-
279
- fmt = i.time_formatter_create(format: '%m/%d/%Y %H-%M-%S %N', force_localtime: true)
280
- fmt.format(event_time("2016-09-02 18:42:31.012345678 UTC", format: '%Y-%m-%d %H:%M:%S.%N %z'))
281
- end
282
- assert_equal "09/02/2016 11-42-31 012345678", str
283
- end
284
- end
285
-
286
- test '#time_formatter_create returns NumericTimeFormatter to format time as unixtime when time_type unixtime specified' do
287
- i = DummyForTimeFormatter.new
288
- i.configure(config_element('format', '', {'time_type' => 'unixtime'}))
289
- fmt = i.time_formatter_create
290
- time = event_time("2016-10-03 20:08:30.123456789 +0100", format: '%Y-%m-%d %H:%M:%S.%N %z')
291
- assert_equal "#{time.sec}", fmt.format(time)
292
- end
293
-
294
- test '#time_formatter_create returns NumericTimeFormatter to format time as float when time_type float specified' do
295
- i = DummyForTimeFormatter.new
296
- i.configure(config_element('format', '', {'time_type' => 'float'}))
297
- fmt = i.time_formatter_create
298
- time = event_time("2016-10-03 20:08:30.123456789 +0100", format: '%Y-%m-%d %H:%M:%S.%N %z')
299
- assert_equal "#{time.sec}.#{time.nsec}", fmt.format(time)
300
- end
301
- end