Skip to content

Commit fb5fe34

Browse files
committed
Add nolint and testcases
1 parent b73bec2 commit fb5fe34

File tree

2 files changed

+26
-8
lines changed

2 files changed

+26
-8
lines changed

src/pkg/egress/syslog/https_batch.go

+4-2
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ import (
1313

1414
const BATCHSIZE = 256 * 1024
1515

16+
var DefaultSendInterval = 1 * time.Second
17+
1618
type HTTPSBatchWriter struct {
1719
HTTPSWriter
1820
msgs chan []byte
@@ -40,7 +42,7 @@ func NewHTTPSBatchWriter(
4042
syslogConverter: c,
4143
},
4244
batchSize: BATCHSIZE,
43-
sendInterval: 1 * time.Second,
45+
sendInterval: DefaultSendInterval,
4446
egrMsgCount: 0,
4547
msgs: make(chan []byte),
4648
}
@@ -74,7 +76,7 @@ func (w *HTTPSBatchWriter) startSender() {
7476

7577
sendBatch := func() {
7678
if msgBatch.Len() > 0 {
77-
w.sendHttpRequest(msgBatch.Bytes(), msgCount)
79+
w.sendHttpRequest(msgBatch.Bytes(), msgCount) //nolint:errcheck
7880
msgBatch.Reset()
7981
msgCount = 0
8082
}

src/pkg/egress/syslog/https_batch_test.go

+22-6
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,10 @@ import (
1919

2020
var string_to_1024_chars = "saljdflajsdssdfsdfljkfkajafjajlköflkjöjaklgljksdjlakljkflkjweljklkwjejlkfekljwlkjefjklwjklsdajkljklwerlkaskldgjksakjekjwrjkljasdjkgfkljwejklrkjlklasdkjlsadjlfjlkadfljkajklsdfjklslkdfjkllkjasdjkflsdlakfjklasldfkjlasdjfkjlsadlfjklaljsafjlslkjawjklerkjljklasjkdfjklwerjljalsdjkflwerjlkwejlkarjklalkklfsdjlfhkjsdfkhsewhkjjasdjfkhwkejrkjahjefkhkasdjhfkashfkjwehfkksadfjaskfkhjdshjfhewkjhasdfjdajskfjwehkfajkankaskjdfasdjhfkkjhjjkasdfjhkjahksdf"
2121

22+
func init() {
23+
syslog.DefaultSendInterval = 100 * time.Millisecond // Modify behavior for tests
24+
}
25+
2226
var _ = Describe("HTTPS_batch", func() {
2327
var (
2428
netConf syslog.NetworkTimeoutConfig
@@ -86,21 +90,33 @@ var _ = Describe("HTTPS_batch", func() {
8690
env1 := buildLogEnvelope("APP", "1", "string to get log to 1024 characters:"+string_to_1024_chars, loggregator_v2.Log_OUT)
8791
for i := 0; i < 10; i++ {
8892
Expect(writer.Write(env1)).To(Succeed())
89-
time.Sleep(99 * time.Millisecond)
93+
time.Sleep(5 * time.Millisecond)
9094
}
9195
Expect(drain.getMessagesSize()).Should(Equal(0))
9296
time.Sleep(100 * time.Millisecond)
9397
Expect(drain.getMessagesSize()).Should(Equal(10))
9498
})
9599

96-
It("probabilistic test for race condition", func() {
100+
It("test dispatching for batches before timewindow is finished", func() {
97101
env1 := buildLogEnvelope("APP", "1", "string to get log to 1024 characters:"+string_to_1024_chars, loggregator_v2.Log_OUT)
98-
for i := 0; i < 10; i++ {
102+
for i := 0; i < 300; i++ {
99103
Expect(writer.Write(env1)).To(Succeed())
100-
time.Sleep(99 * time.Millisecond)
101104
}
102-
time.Sleep(100 * time.Millisecond)
103-
Expect(drain.getMessagesSize()).Should(Equal(10))
105+
Expect(drain.getMessagesSize()).Should(Equal(256))
106+
time.Sleep(101 * time.Millisecond)
107+
Expect(drain.getMessagesSize()).Should(Equal(300))
108+
})
109+
110+
It("test for hanging after some ticks", func() {
111+
// This test will not succeed on the timer based implementation,
112+
// it works fine with a ticker based implementation.
113+
env1 := buildLogEnvelope("APP", "1", "only a short test message", loggregator_v2.Log_OUT)
114+
for i := 0; i < 5; i++ {
115+
Expect(writer.Write(env1)).To(Succeed())
116+
time.Sleep(300 * time.Millisecond)
117+
}
118+
time.Sleep(101 * time.Millisecond)
119+
Expect(drain.getMessagesSize()).Should(Equal(5))
104120
})
105121
})
106122

0 commit comments

Comments
 (0)