@@ -8,6 +8,7 @@ package syslogprocessor
88import (
99 "context"
1010 "encoding/json"
11+ "fmt"
1112 "testing"
1213
1314 "github.com/stretchr/testify/assert"
@@ -31,7 +32,6 @@ func TestSyslogProcessor(t *testing.T) {
3132 name : "csv nginx app protect syslog message" ,
3233 body : `<130>Aug 22 03:28:35 ip-172-16-0-213 ASM:N/A,80,127.0.0.1,false,GET,nms_app_protect_default_policy,HTTP,blocked,0,N/A,N/A::N/A,{High Accuracy Signatures;Cross Site Scripting Signatures}::{High Accuracy Signatures; Cross Site Scripting Signatures},56064,N/A,5377540117854870581,N/A,5,1-localhost:1-/,N/A,REJECTED,SECURITY_WAF_VIOLATION,Illegal meta character in URL::Attack signature detected::Violation Rating Threat detected::Bot Client Detected,<?xml version='1.0' encoding='UTF-8'?><BAD_MSG><violation_masks><block>414000000200c00-3a03030c30000072-8000000000000000-0</block><alarm>475f0ffcbbd0fea-befbf35cb000007e-f400000000000000-0</alarm><learn>0-0-0-0</learn><staging>0-0-0-0</staging></violation_masks><request-violations><violation><viol_index>42</viol_index><viol_name>VIOL_ATTACK_SIGNATURE</viol_name><context>url</context><sig_data><sig_id>200000099</sig_id><blocking_mask>3</blocking_mask><kw_data><buffer>Lzw+PHNjcmlwdD4=</buffer><offset>3</offset><length>7</length></kw_data></sig_data><sig_data><sig_id>200000093</sig_id><blocking_mask>3</blocking_mask><kw_data><buffer>Lzw+PHNjcmlwdD4=</buffer><offset>4</offset><length>7</length></kw_data></sig_data></violation><violation><viol_index>26</viol_index><viol_name>VIOL_URL_METACHAR</viol_name><uri>Lzw+PHNjcmlwdD4=</uri><metachar_index>60</metachar_index><wildcard_entity>*</wildcard_entity><staging>0</staging></violation><violation><viol_index>26</viol_index><viol_name>VIOL_URL_METACHAR</viol_name><uri>Lzw+PHNjcmlwdD4=</uri><metachar_index>62</metachar_index><wildcard_entity>*</wildcard_entity><staging>0</staging></violation><violation><viol_index>122</viol_index><viol_name>VIOL_BOT_CLIENT</viol_name></violation><violation><viol_index>93</viol_index><viol_name>VIOL_RATING_THREAT</viol_name></violation></request-violations></BAD_MSG>,curl,HTTP Library,N/A,N/A,Untrusted Bot,N/A,N/A,HTTP/1.1,/<><script>,GET /<><script> HTTP/1.1\\r\\nHost: localhost\\r\\nUser-Agent: curl/7.81.0\\r\\nAccept: */*\\r\\n\\r\\n` ,
3334 expectAttrs : map [string ]string {
34- "syslog.hostname" : "ip-172-16-0-213" ,
3535 "syslog.appname" : "ASM" ,
3636 "app_protect.policy_name" : "nms_app_protect_default_policy" ,
3737 "app_protect.support_id" : "5377540117854870581" ,
@@ -44,8 +44,7 @@ func TestSyslogProcessor(t *testing.T) {
4444 name : "simple valid syslog message" ,
4545 body : "<34>Oct 11 22:14:15 mymachine su: 'su root' failed for lonvick on /dev/pts/8" ,
4646 expectAttrs : map [string ]string {
47- "syslog.hostname" : "mymachine" ,
48- "syslog.appname" : "su" ,
47+ "syslog.appname" : "su" ,
4948 },
5049 expectRecords : 1 ,
5150 },
@@ -159,16 +158,14 @@ func TestSyslogProcessor(t *testing.T) {
159158
160159func TestSyslogProcessorFailure (t * testing.T ) {
161160 testCases := []struct {
162- expectAttrs map [string ]string
163- body any
164161 name string
165- expectJSON string
162+ body any
166163 expectRecords int
167164 }{
168165 {
169166 name : "invalid syslog message" ,
170167 body : "not a syslog line" ,
171- expectRecords : 1 ,
168+ expectRecords : 0 ,
172169 },
173170 }
174171
@@ -177,31 +174,35 @@ func TestSyslogProcessorFailure(t *testing.T) {
177174 ctx := context .Background ()
178175 settings := processortest .NewNopSettings (processortest .NopType )
179176 settings .Logger = zap .NewNop ()
180-
181177 logs := plog .NewLogs ()
182- lr := logs .ResourceLogs ().AppendEmpty ().ScopeLogs ().AppendEmpty ().LogRecords ().AppendEmpty ()
178+ logRecord := logs .ResourceLogs ().
179+ AppendEmpty ().
180+ ScopeLogs ().
181+ AppendEmpty ().
182+ LogRecords ().
183+ AppendEmpty ()
184+
183185 switch v := tc .body .(type ) {
184186 case string :
185- lr .Body ().SetStr (v )
187+ logRecord .Body ().SetStr (v )
186188 case int :
187- lr .Body ().SetInt (int64 (v ))
189+ logRecord .Body ().SetInt (int64 (v ))
188190 case []byte :
189- lr .Body ().SetEmptyBytes ().FromRaw (v )
191+ logRecord .Body ().SetEmptyBytes ().FromRaw (v )
190192 }
191193
194+ // Create sink and processor.
192195 sink := & consumertest.LogsSink {}
193- p := newSyslogProcessor (sink , settings )
194- require .NoError (t , p .Start (ctx , nil ))
196+ processor := newSyslogProcessor (sink , settings )
195197
196- err := p .ConsumeLogs (ctx , logs )
198+ require .NoError (t , processor .Start (ctx , nil ))
199+ err := processor .ConsumeLogs (ctx , logs )
200+ fmt .Println (err )
197201 require .Error (t , err )
198202
199- if tc .expectRecords == 0 {
200- assert .Equal (t , 0 , sink .LogRecordCount (), "no logs should be produced" )
201- require .NoError (t , p .Shutdown (ctx ))
203+ assert .Equal (t , tc .expectRecords , sink .LogRecordCount (), "unexpected number of logs produced" )
202204
203- return
204- }
205+ require .NoError (t , processor .Shutdown (ctx ))
205206 })
206207 }
207208}
0 commit comments