@@ -8,9 +8,26 @@ class CwmHttpInputTest < Test::Unit::TestCase
8
8
setup do
9
9
Fluent ::Test . setup
10
10
11
- @default_conf = %(
12
- tag test
13
- )
11
+ @default_conf = config_element ( 'ROOT' , '' , { 'tag' => 'test' } )
12
+ @custom_conf = config_element ( 'ROOT' , '' , { 'tag' => 'test' } , [
13
+ config_element ( 'redis' , '' , {
14
+ 'grace_period' => '1s' ,
15
+ 'flush_interval' => '1s'
16
+ } )
17
+ ] )
18
+
19
+ @expected_redis_output = {
20
+ 'deploymentid:last_action:docker-compose-http' => '' ,
21
+ 'deploymentid:last_action:docker-compose-https' => '' ,
22
+ 'deploymentid:minio-metrics:docker-compose-http:bytes_in' => '61852' ,
23
+ 'deploymentid:minio-metrics:docker-compose-https:bytes_in' => '14875' ,
24
+ 'deploymentid:minio-metrics:docker-compose-http:bytes_out' => '112012' ,
25
+ 'deploymentid:minio-metrics:docker-compose-https:bytes_out' => '2755' ,
26
+ 'deploymentid:minio-metrics:docker-compose-http:num_requests_out' => '7' ,
27
+ 'deploymentid:minio-metrics:docker-compose-http:num_requests_in' => '10' ,
28
+ 'deploymentid:minio-metrics:docker-compose-https:num_requests_in' => '5' ,
29
+ 'deploymentid:minio-metrics:docker-compose-http:num_requests_misc' => '5'
30
+ } . freeze
14
31
end
15
32
16
33
def create_driver ( conf )
@@ -27,13 +44,7 @@ def create_driver(conf)
27
44
end
28
45
29
46
test 'redis default configuration test' do
30
- conf = %(
31
- tag test
32
- <redis>
33
- </redis>
34
- )
35
-
36
- driver = create_driver ( conf )
47
+ driver = create_driver ( @default_conf )
37
48
plugin = driver . instance
38
49
redis = plugin . redis_config
39
50
assert_equal 'localhost' , redis . host
@@ -47,7 +58,9 @@ def create_driver(conf)
47
58
48
59
sub_test_case 'route#emit' do
49
60
test 'emit test' do
50
- driver = create_driver ( @default_conf )
61
+ driver = create_driver ( @custom_conf )
62
+ plugin = driver . instance
63
+ redis = plugin . redis_config
51
64
52
65
res_codes = [ ]
53
66
lines = 0
@@ -63,6 +76,25 @@ def create_driver(conf)
63
76
assert_equal lines , res_codes . size
64
77
assert_equal '200' , res_codes [ 0 ]
65
78
assert_equal 1 , res_codes . uniq . size
79
+
80
+ # run and test private flushing methods
81
+ `redis-cli FLUSHALL`
82
+ sleep ( redis . grace_period )
83
+ driver . events . each do
84
+ plugin . send ( :flush_api_metrics )
85
+ plugin . send ( :flush_last_action )
86
+ end
87
+
88
+ # verify from Redis server
89
+ @expected_redis_output . each do |key , expected_value |
90
+ if key . include? 'last_action'
91
+ exists = `redis-cli EXISTS #{ key } ` . chomp
92
+ assert_equal '1' , exists
93
+ else
94
+ actual_value = `redis-cli GET #{ key } ` . chomp
95
+ assert_equal expected_value , actual_value
96
+ end
97
+ end
66
98
end
67
99
end
68
100
0 commit comments