@@ -53,6 +53,60 @@ var _ = Describe("Filtering Drain Writer", func() {
5353 _ , err := syslog .NewFilteringDrainWriter (binding , & fakeWriter {})
5454 Expect (err ).To (HaveOccurred ())
5555 })
56+
57+ It ("sends logs when source_type tag is missing" , func () {
58+ binding := syslog.Binding {
59+ DrainData : syslog .LOGS ,
60+ LogFilter : nil ,
61+ }
62+ fakeWriter := & fakeWriter {}
63+ drainWriter , err := syslog .NewFilteringDrainWriter (binding , fakeWriter )
64+ Expect (err ).NotTo (HaveOccurred ())
65+
66+ envelope := & loggregator_v2.Envelope {
67+ Message : & loggregator_v2.Envelope_Log {
68+ Log : & loggregator_v2.Log {
69+ Payload : []byte ("test log" ),
70+ },
71+ },
72+ Tags : map [string ]string {
73+ // source_type tag is intentionally missing
74+ },
75+ }
76+
77+ err = drainWriter .Write (envelope )
78+
79+ Expect (err ).NotTo (HaveOccurred ())
80+ Expect (fakeWriter .received ).To (Equal (1 ))
81+ })
82+
83+ It ("sends logs with unknown source_type prefix when filter is set" , func () {
84+ appFilter := syslog.LogTypeSet {syslog .APP : struct {}{}}
85+ binding := syslog.Binding {
86+ DrainData : syslog .LOGS ,
87+ LogFilter : & appFilter ,
88+ }
89+ fakeWriter := & fakeWriter {}
90+ drainWriter , err := syslog .NewFilteringDrainWriter (binding , fakeWriter )
91+ Expect (err ).NotTo (HaveOccurred ())
92+
93+ envelope := & loggregator_v2.Envelope {
94+ Message : & loggregator_v2.Envelope_Log {
95+ Log : & loggregator_v2.Log {
96+ Payload : []byte ("test log" ),
97+ },
98+ },
99+ Tags : map [string ]string {
100+ "source_type" : "UNKNOWN/some/path" ,
101+ },
102+ }
103+
104+ err = drainWriter .Write (envelope )
105+
106+ // Should send the log because unknown types default to being included
107+ Expect (err ).NotTo (HaveOccurred ())
108+ Expect (fakeWriter .received ).To (Equal (1 ))
109+ })
56110})
57111
58112type fakeWriter struct {
0 commit comments