Skip to content

Commit bccd92c

Browse files
committed
Add some more unit tests
1 parent dcc096a commit bccd92c

2 files changed

Lines changed: 55 additions & 5 deletions

File tree

src/pkg/egress/syslog/filtering_drain_writer.go

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -79,11 +79,9 @@ func (w *FilteringDrainWriter) Write(env *loggregator_v2.Envelope) error {
7979
}
8080
}
8181
if env.GetLog() != nil {
82-
// Default to sending logs if no source_type tag is present
8382
value, ok := env.GetTags()["source_type"]
8483
if !ok {
85-
// TODO add unit test for case where source_type tag is missing
86-
// source_type tag is missing, default to sending logs
84+
// Default to sending logs if no source_type tag is present
8785
value = ""
8886
}
8987
if sendsLogs(w.binding.DrainData, w.binding.LogFilter, value) {
@@ -117,7 +115,6 @@ func shouldIncludeLog(logFilter *LogTypeSet, sourceTypeTag string) bool {
117115
logType, known := logTypePrefixes[prefix]
118116
if !known {
119117
// Unknown log type, default to not filtering
120-
// TODO unit test
121118
return true
122119
}
123120

@@ -126,7 +123,6 @@ func shouldIncludeLog(logFilter *LogTypeSet, sourceTypeTag string) bool {
126123
}
127124

128125
func sendsLogs(drainData DrainData, logFilter *LogTypeSet, sourceTypeTag string) bool {
129-
// TODO ALL appears to be special?
130126
if drainData != LOGS && drainData != LOGS_AND_METRICS && drainData != LOGS_NO_EVENTS {
131127
return false
132128
}

src/pkg/egress/syslog/filtering_drain_writer_test.go

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

58112
type fakeWriter struct {

0 commit comments

Comments
 (0)