fluentd 1.17.0-x64-mingw32 → 1.17.1-x64-mingw32

Sign up to get free protection for your applications and to get access to all the features.
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,117 +0,0 @@
1
- require_relative '../helper'
2
-
3
- require 'fluent/log'
4
- require 'fluent/log/console_adapter'
5
-
6
- class ConsoleAdapterTest < Test::Unit::TestCase
7
- def setup
8
- @timestamp = Time.parse("2023-01-01 15:32:41 +0000")
9
- @timestamp_str = @timestamp.strftime("%Y-%m-%d %H:%M:%S %z")
10
- Timecop.freeze(@timestamp)
11
-
12
- @logdev = Fluent::Test::DummyLogDevice.new
13
- @logger = ServerEngine::DaemonLogger.new(@logdev)
14
- @fluent_log = Fluent::Log.new(@logger)
15
- @console_logger = Fluent::Log::ConsoleAdapter.wrap(@fluent_log)
16
- end
17
-
18
- def teardown
19
- Timecop.return
20
- end
21
-
22
- def test_expected_log_levels
23
- assert_equal({debug: 0, info: 1, warn: 2, error: 3, fatal: 4},
24
- Console::Logger::LEVELS)
25
- end
26
-
27
- data(trace: [Fluent::Log::LEVEL_TRACE, :debug],
28
- debug: [Fluent::Log::LEVEL_DEBUG, :debug],
29
- info: [Fluent::Log::LEVEL_INFO, :info],
30
- warn: [Fluent::Log::LEVEL_WARN, :warn],
31
- error: [Fluent::Log::LEVEL_ERROR, :error],
32
- fatal: [Fluent::Log::LEVEL_FATAL, :fatal])
33
- def test_reflect_log_level(data)
34
- level, expected = data
35
- @fluent_log.level = level
36
- console_logger = Fluent::Log::ConsoleAdapter.wrap(@fluent_log)
37
- assert_equal(Console::Logger::LEVELS[expected],
38
- console_logger.level)
39
- end
40
-
41
- data(debug: :debug,
42
- info: :info,
43
- warn: :warn,
44
- error: :error,
45
- fatal: :fatal)
46
- def test_string_subject(level)
47
- @console_logger.send(level, "subject")
48
- assert_equal(["#{@timestamp_str} [#{level}]: 0.0s: subject\n"],
49
- @logdev.logs)
50
- end
51
-
52
- data(debug: :debug,
53
- info: :info,
54
- warn: :warn,
55
- error: :error,
56
- fatal: :fatal)
57
- def test_args(level)
58
- @console_logger.send(level, "subject", 1, 2, 3)
59
- assert_equal([
60
- "#{@timestamp_str} [#{level}]: 0.0s: subject\n" +
61
- " | 1\n" +
62
- " | 2\n" +
63
- " | 3\n"
64
- ],
65
- @logdev.logs)
66
- end
67
-
68
- data(debug: :debug,
69
- info: :info,
70
- warn: :warn,
71
- error: :error,
72
- fatal: :fatal)
73
- def test_options(level)
74
- @console_logger.send(level, "subject", kwarg1: "opt1", kwarg2: "opt2")
75
- lines = @logdev.logs[0].split("\n")
76
- args = JSON.load(lines[1..].collect { |str| str.sub(/\s+\|/, "") }.join("\n"));
77
- assert_equal([
78
- 1,
79
- "#{@timestamp_str} [#{level}]: 0.0s: subject",
80
- { "kwarg1" => "opt1", "kwarg2" => "opt2" }
81
- ],
82
- [
83
- @logdev.logs.size,
84
- lines[0],
85
- args
86
- ])
87
- end
88
-
89
- data(debug: :debug,
90
- info: :info,
91
- warn: :warn,
92
- error: :error,
93
- fatal: :fatal)
94
- def test_block(level)
95
- @console_logger.send(level, "subject") { "block message" }
96
- assert_equal([
97
- "#{@timestamp_str} [#{level}]: 0.0s: subject\n" +
98
- " | block message\n"
99
- ],
100
- @logdev.logs)
101
- end
102
-
103
- data(debug: :debug,
104
- info: :info,
105
- warn: :warn,
106
- error: :error,
107
- fatal: :fatal)
108
- def test_multiple_entries(level)
109
- @console_logger.send(level, "subject1")
110
- @console_logger.send(level, "line2")
111
- assert_equal([
112
- "#{@timestamp_str} [#{level}]: 0.0s: subject1\n",
113
- "#{@timestamp_str} [#{level}]: 0.0s: line2\n"
114
- ],
115
- @logdev.logs)
116
- end
117
- end
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -1,11 +0,0 @@
1
- - 'host': 127.0.0.1
2
- 'port': 24224
3
- 'weight': 1
4
- 'name': test1
5
- 'standby': false
6
- 'username': user1
7
- 'password': pass1
8
- 'shared_key': key1
9
- - 'host': 127.0.0.1
10
- 'port': 24225
11
- 'weight': 1
@@ -1,17 +0,0 @@
1
- [
2
- {
3
- "host": "127.0.0.1",
4
- "port": 24224,
5
- "weight": 1,
6
- "name": "test1",
7
- "standby": false,
8
- "username": "user1",
9
- "password": "pass1",
10
- "shared_key": "key1"
11
- },
12
- {
13
- "host": "127.0.0.1",
14
- "port": 24225,
15
- "weight": 1
16
- }
17
- ]
@@ -1,11 +0,0 @@
1
- - 'host': 127.0.0.1
2
- 'port': 24224
3
- 'weight': 1
4
- 'name': test1
5
- 'standby': false
6
- 'username': user1
7
- 'password': pass1
8
- 'shared_key': key1
9
- - 'host': 127.0.0.1
10
- 'port': 24225
11
- 'weight': 1
@@ -1,11 +0,0 @@
1
- - 'host': 127.0.0.1
2
- 'port': 24224
3
- 'weight': 1
4
- 'name': test1
5
- 'standby': false
6
- 'username': user1
7
- 'password': pass1
8
- 'shared_key': key1
9
- - 'host': 127.0.0.1
10
- 'port': 24225
11
- 'weight': 1
@@ -1,7 +0,0 @@
1
- - 'host': 127.0.0.1
2
- 'weight': 1
3
- 'name': test1
4
- 'standby': false
5
- 'username': user1
6
- 'password': pass1
7
- 'shared_key': key1
@@ -1,121 +0,0 @@
1
- require_relative '../../helper'
2
-
3
- require 'fluent/plugin/in_tail'
4
-
5
- class IntailFIFO < Test::Unit::TestCase
6
- sub_test_case '#read_line' do
7
- test 'returns lines spliting per `\n`' do
8
- fifo = Fluent::Plugin::TailInput::TailWatcher::FIFO.new(Encoding::ASCII_8BIT, Encoding::ASCII_8BIT)
9
- text = ("test\n" * 3).force_encoding(Encoding::ASCII_8BIT)
10
- fifo << text
11
- lines = []
12
- fifo.read_lines(lines)
13
- assert_equal Encoding::ASCII_8BIT, lines[0].encoding
14
- assert_equal ["test\n", "test\n", "test\n"], lines
15
- end
16
-
17
- test 'concant line when line is separated' do
18
- fifo = Fluent::Plugin::TailInput::TailWatcher::FIFO.new(Encoding::ASCII_8BIT, Encoding::ASCII_8BIT)
19
- text = ("test\n" * 3 + 'test').force_encoding(Encoding::ASCII_8BIT)
20
- fifo << text
21
- lines = []
22
- fifo.read_lines(lines)
23
- assert_equal Encoding::ASCII_8BIT, lines[0].encoding
24
- assert_equal ["test\n", "test\n", "test\n"], lines
25
-
26
- fifo << "2\n"
27
- fifo.read_lines(lines)
28
- assert_equal Encoding::ASCII_8BIT, lines[0].encoding
29
- assert_equal ["test\n", "test\n", "test\n", "test2\n"], lines
30
- end
31
-
32
- test 'returns lines which convert encoding' do
33
- fifo = Fluent::Plugin::TailInput::TailWatcher::FIFO.new(Encoding::ASCII_8BIT, Encoding::UTF_8)
34
- text = ("test\n" * 3).force_encoding(Encoding::ASCII_8BIT)
35
- fifo << text
36
- lines = []
37
- fifo.read_lines(lines)
38
- assert_equal Encoding::UTF_8, lines[0].encoding
39
- assert_equal ["test\n", "test\n", "test\n"], lines
40
- end
41
-
42
- test 'reads lines as from_encoding' do
43
- fifo = Fluent::Plugin::TailInput::TailWatcher::FIFO.new(Encoding::UTF_8, Encoding::ASCII_8BIT)
44
- text = ("test\n" * 3).force_encoding(Encoding::UTF_8)
45
- fifo << text
46
- lines = []
47
- fifo.read_lines(lines)
48
- assert_equal Encoding::ASCII_8BIT, lines[0].encoding
49
- assert_equal ["test\n", "test\n", "test\n"], lines
50
- end
51
-
52
- sub_test_case 'when it includes multi byte chars' do
53
- test 'handles it as ascii_8bit' do
54
- fifo = Fluent::Plugin::TailInput::TailWatcher::FIFO.new(Encoding::ASCII_8BIT, Encoding::ASCII_8BIT)
55
- text = ("てすと\n" * 3).force_encoding(Encoding::ASCII_8BIT)
56
- fifo << text
57
- lines = []
58
- fifo.read_lines(lines)
59
- assert_equal Encoding::ASCII_8BIT, lines[0].encoding
60
- assert_equal ["てすと\n", "てすと\n", "てすと\n"].map { |e| e.force_encoding(Encoding::ASCII_8BIT) }, lines
61
- end
62
-
63
- test 'replaces character with ? when convert error happens' do
64
- fifo = Fluent::Plugin::TailInput::TailWatcher::FIFO.new(Encoding::UTF_8, Encoding::ASCII_8BIT)
65
- text = ("てすと\n" * 3).force_encoding(Encoding::UTF_8)
66
- fifo << text
67
- lines = []
68
- fifo.read_lines(lines)
69
- assert_equal Encoding::ASCII_8BIT, lines[0].encoding
70
- assert_equal ["???\n", "???\n", "???\n"].map { |e| e.force_encoding(Encoding::ASCII_8BIT) }, lines
71
- end
72
- end
73
-
74
- test 'reutrns nothing when buffer is empty' do
75
- fifo = Fluent::Plugin::TailInput::TailWatcher::FIFO.new(Encoding::ASCII_8BIT, Encoding::ASCII_8BIT)
76
- lines = []
77
- fifo.read_lines(lines)
78
- assert_equal [], lines
79
-
80
- text = "test\n" * 3
81
- fifo << text
82
- fifo.read_lines(lines)
83
- assert_equal ["test\n", "test\n", "test\n"], lines
84
-
85
- lines = []
86
- fifo.read_lines(lines)
87
- assert_equal [], lines
88
- end
89
- end
90
-
91
- sub_test_case '#<<' do
92
- test 'does not make any change about encoding to an argument' do
93
- fifo = Fluent::Plugin::TailInput::TailWatcher::FIFO.new(Encoding::ASCII_8BIT, Encoding::ASCII_8BIT)
94
- text = ("test\n" * 3).force_encoding(Encoding::UTF_8)
95
-
96
- assert_equal Encoding::UTF_8, text.encoding
97
- fifo << text
98
- assert_equal Encoding::UTF_8, text.encoding
99
- end
100
- end
101
-
102
- sub_test_case '#bytesize' do
103
- test 'reutrns buffer size' do
104
- fifo = Fluent::Plugin::TailInput::TailWatcher::FIFO.new(Encoding::ASCII_8BIT, Encoding::ASCII_8BIT)
105
- text = "test\n" * 3 + 'test'
106
- fifo << text
107
-
108
- assert_equal text.bytesize, fifo.bytesize
109
- lines = []
110
- fifo.read_lines(lines)
111
- assert_equal ["test\n", "test\n", "test\n"], lines
112
-
113
- assert_equal 'test'.bytesize, fifo.bytesize
114
- fifo << "2\n"
115
- fifo.read_lines(lines)
116
- assert_equal ["test\n", "test\n", "test\n", "test2\n"], lines
117
-
118
- assert_equal 0, fifo.bytesize
119
- end
120
- end
121
- end
@@ -1,150 +0,0 @@
1
- require_relative '../../helper'
2
-
3
- require 'fluent/plugin/in_tail'
4
- require 'fluent/plugin/metrics_local'
5
- require 'tempfile'
6
-
7
- class IntailIOHandlerTest < Test::Unit::TestCase
8
- setup do
9
- @file = Tempfile.new('intail_io_handler').binmode
10
- opened_file_metrics = Fluent::Plugin::LocalMetrics.new
11
- opened_file_metrics.configure(config_element('metrics', '', {}))
12
- closed_file_metrics = Fluent::Plugin::LocalMetrics.new
13
- closed_file_metrics.configure(config_element('metrics', '', {}))
14
- rotated_file_metrics = Fluent::Plugin::LocalMetrics.new
15
- rotated_file_metrics.configure(config_element('metrics', '', {}))
16
- @metrics = Fluent::Plugin::TailInput::MetricsInfo.new(opened_file_metrics, closed_file_metrics, rotated_file_metrics)
17
- end
18
-
19
- teardown do
20
- @file.close rescue nil
21
- @file.unlink rescue nil
22
- end
23
-
24
- def create_target_info
25
- Fluent::Plugin::TailInput::TargetInfo.new(@file.path, Fluent::FileWrapper.stat(@file.path).ino)
26
- end
27
-
28
- def create_watcher
29
- Fluent::Plugin::TailInput::TailWatcher.new(create_target_info, nil, nil, nil, nil, nil, nil, nil, nil)
30
- end
31
-
32
- test '#on_notify load file content and passed it to receive_lines method' do
33
- text = "this line is test\ntest line is test\n"
34
- @file.write(text)
35
- @file.close
36
-
37
- watcher = create_watcher
38
-
39
- update_pos = 0
40
-
41
- stub(watcher).pe do
42
- pe = 'position_file'
43
- stub(pe).read_pos { 0 }
44
- stub(pe).update_pos { |val| update_pos = val }
45
- pe
46
- end
47
-
48
- returned_lines = ''
49
- r = Fluent::Plugin::TailInput::TailWatcher::IOHandler.new(watcher, path: @file.path, read_lines_limit: 100, read_bytes_limit_per_second: -1, log: $log, open_on_every_update: false, metrics: @metrics) do |lines, _watcher|
50
- returned_lines << lines.join
51
- true
52
- end
53
-
54
- r.on_notify
55
- assert_equal text.bytesize, update_pos
56
- assert_equal text, returned_lines
57
-
58
- r.on_notify
59
-
60
- assert_equal text.bytesize, update_pos
61
- assert_equal text, returned_lines
62
- end
63
-
64
- sub_test_case 'when open_on_every_update is true and read_pos returns always 0' do
65
- test 'open new IO and change pos to 0 and read it' do
66
- text = "this line is test\ntest line is test\n"
67
- @file.write(text)
68
- @file.close
69
-
70
- update_pos = 0
71
-
72
- watcher = create_watcher
73
- stub(watcher).pe do
74
- pe = 'position_file'
75
- stub(pe).read_pos { 0 }
76
- stub(pe).update_pos { |val| update_pos = val }
77
- pe
78
- end
79
-
80
- returned_lines = ''
81
- r = Fluent::Plugin::TailInput::TailWatcher::IOHandler.new(watcher, path: @file.path, read_lines_limit: 100, read_bytes_limit_per_second: -1, log: $log, open_on_every_update: true, metrics: @metrics) do |lines, _watcher|
82
- returned_lines << lines.join
83
- true
84
- end
85
-
86
- r.on_notify
87
- assert_equal text.bytesize, update_pos
88
- assert_equal text, returned_lines
89
-
90
- r.on_notify
91
- assert_equal text * 2, returned_lines
92
- end
93
- end
94
-
95
- sub_test_case 'when limit is 5' do
96
- test 'call receive_lines once when short line(less than 8192)' do
97
- text = "line\n" * 8
98
- @file.write(text)
99
- @file.close
100
-
101
- update_pos = 0
102
-
103
- watcher = create_watcher
104
- stub(watcher).pe do
105
- pe = 'position_file'
106
- stub(pe).read_pos { 0 }
107
- stub(pe).update_pos { |val| update_pos = val }
108
- pe
109
- end
110
-
111
- returned_lines = []
112
- r = Fluent::Plugin::TailInput::TailWatcher::IOHandler.new(watcher, path: @file.path, read_lines_limit: 5, read_bytes_limit_per_second: -1, log: $log, open_on_every_update: false, metrics: @metrics) do |lines, _watcher|
113
- returned_lines << lines.dup
114
- true
115
- end
116
-
117
- r.on_notify
118
- assert_equal text.bytesize, update_pos
119
- assert_equal 8, returned_lines[0].size
120
- end
121
-
122
- test 'call receive_lines some times when long line(more than 8192)' do
123
- t = 'line' * (8192 / 8)
124
- text = "#{t}\n" * 8
125
- @file.write(text)
126
- @file.close
127
-
128
- update_pos = 0
129
-
130
- watcher = create_watcher
131
- stub(watcher).pe do
132
- pe = 'position_file'
133
- stub(pe).read_pos { 0 }
134
- stub(pe).update_pos { |val| update_pos = val }
135
- pe
136
- end
137
-
138
- returned_lines = []
139
- r = Fluent::Plugin::TailInput::TailWatcher::IOHandler.new(watcher, path: @file.path, read_lines_limit: 5, read_bytes_limit_per_second: -1, log: $log, open_on_every_update: false, metrics: @metrics) do |lines, _watcher|
140
- returned_lines << lines.dup
141
- true
142
- end
143
-
144
- r.on_notify
145
- assert_equal text.bytesize, update_pos
146
- assert_equal 5, returned_lines[0].size
147
- assert_equal 3, returned_lines[1].size
148
- end
149
- end
150
- end