@@ -28,19 +28,27 @@ def server_config
2828 config
2929 end
3030
31+ def server_request
32+ @@server_request
33+ end
34+
35+ def set_server_response_code ( code )
36+ @@server_response_code = code
37+ end
38+
3139 def run_http_server
3240 server = ::WEBrick ::HTTPServer . new ( server_config )
3341 server . mount_proc ( "/v1/metrics" ) do |req , res |
3442 @@server_request = ServerRequest . new ( req . request_method . dup , req . path . dup , req . header . dup , req . body . dup )
35- res . status = 200
43+ res . status = @@server_response_code
3644 end
3745 server . mount_proc ( "/v1/traces" ) do |req , res |
3846 @@server_request = ServerRequest . new ( req . request_method . dup , req . path . dup , req . header . dup , req . body . dup )
39- res . status = 200
47+ res . status = @@server_response_code
4048 end
4149 server . mount_proc ( "/v1/logs" ) do |req , res |
4250 @@server_request = ServerRequest . new ( req . request_method . dup , req . path . dup , req . header . dup , req . body . dup )
43- res . status = 200
51+ res . status = @@server_response_code
4452 end
4553 server . start
4654 ensure
@@ -55,13 +63,15 @@ def setup
5563 Fluent ::Test . setup
5664
5765 @@server_request = nil
66+ @@server_response_code = 200
5867 @@http_server_thread ||= Thread . new do
5968 run_http_server
6069 end
6170 end
6271
6372 def teardown
6473 @@server_request = nil
74+ @@server_response_code = 200
6575 end
6676
6777 def create_driver ( conf = config )
@@ -81,10 +91,10 @@ def test_send_logs
8191 d . feed ( event )
8292 end
8393
84- assert_equal ( "/v1/logs" , @@ server_request. path )
85- assert_equal ( "POST" , @@ server_request. request_method )
86- assert_equal ( [ "application/x-protobuf" ] , @@ server_request. header [ "content-type" ] )
87- assert_equal ( TestData ::ProtocolBuffers ::LOGS , @@ server_request. body )
94+ assert_equal ( "/v1/logs" , server_request . path )
95+ assert_equal ( "POST" , server_request . request_method )
96+ assert_equal ( [ "application/x-protobuf" ] , server_request . header [ "content-type" ] )
97+ assert_equal ( TestData ::ProtocolBuffers ::LOGS , server_request . body )
8898 end
8999
90100 def test_send_metrics
@@ -95,10 +105,10 @@ def test_send_metrics
95105 d . feed ( event )
96106 end
97107
98- assert_equal ( "/v1/metrics" , @@ server_request. path )
99- assert_equal ( "POST" , @@ server_request. request_method )
100- assert_equal ( [ "application/x-protobuf" ] , @@ server_request. header [ "content-type" ] )
101- assert_equal ( TestData ::ProtocolBuffers ::METRICS , @@ server_request. body )
108+ assert_equal ( "/v1/metrics" , server_request . path )
109+ assert_equal ( "POST" , server_request . request_method )
110+ assert_equal ( [ "application/x-protobuf" ] , server_request . header [ "content-type" ] )
111+ assert_equal ( TestData ::ProtocolBuffers ::METRICS , server_request . body )
102112 end
103113
104114 def test_send_traces
@@ -109,10 +119,10 @@ def test_send_traces
109119 d . feed ( event )
110120 end
111121
112- assert_equal ( "/v1/traces" , @@ server_request. path )
113- assert_equal ( "POST" , @@ server_request. request_method )
114- assert_equal ( [ "application/x-protobuf" ] , @@ server_request. header [ "content-type" ] )
115- assert_equal ( TestData ::ProtocolBuffers ::TRACES , @@ server_request. body )
122+ assert_equal ( "/v1/traces" , server_request . path )
123+ assert_equal ( "POST" , server_request . request_method )
124+ assert_equal ( [ "application/x-protobuf" ] , server_request . header [ "content-type" ] )
125+ assert_equal ( TestData ::ProtocolBuffers ::TRACES , server_request . body )
116126 end
117127
118128 def test_send_compressed_message
@@ -123,13 +133,25 @@ def test_send_compressed_message
123133 d . feed ( event )
124134 end
125135
126- assert_equal ( "/v1/logs" , @@server_request . path )
127- assert_equal ( "POST" , @@server_request . request_method )
128- assert_equal ( [ "application/x-protobuf" ] , @@server_request . header [ "content-type" ] )
129- assert_equal ( [ "gzip" ] , @@server_request . header [ "content-encoding" ] )
130- assert_equal ( TestData ::ProtocolBuffers ::LOGS , decompress ( @@server_request . body ) . force_encoding ( Encoding ::ASCII_8BIT ) )
136+ assert_equal ( "/v1/logs" , server_request . path )
137+ assert_equal ( "POST" , server_request . request_method )
138+ assert_equal ( [ "application/x-protobuf" ] , server_request . header [ "content-type" ] )
139+ assert_equal ( [ "gzip" ] , server_request . header [ "content-encoding" ] )
140+ assert_equal ( TestData ::ProtocolBuffers ::LOGS , decompress ( server_request . body ) . force_encoding ( Encoding ::ASCII_8BIT ) )
141+ end
142+
143+ def test_illigal
144+ set_server_response_code ( 500 )
145+ event = { "type" => "otlp_logs" , "message" => TestData ::JSON ::LOGS }
146+
147+ d = create_driver
148+ d . run ( default_tag : "otlp.test" ) do
149+ d . feed ( event )
150+ end
131151 end
132152
153+
154+
133155 def decompress ( data )
134156 Zlib ::GzipReader . new ( StringIO . new ( data ) ) . read
135157 end
0 commit comments