aboutsummaryrefslogtreecommitdiffstats
path: root/log/logger_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'log/logger_test.go')
-rw-r--r--log/logger_test.go42
1 files changed, 40 insertions, 2 deletions
diff --git a/log/logger_test.go b/log/logger_test.go
index e84ae06..9a58292 100644
--- a/log/logger_test.go
+++ b/log/logger_test.go
@@ -9,7 +9,7 @@ import (
)
func TestRecord(t *testing.T) {
- logger, err := New(os.Stderr, "test: ", RecordOptions{Database: ":memory:"})
+ logger, err := New(os.Stderr, "test: ", RecordOptions{Database: ":memory:", Mode: ModeAll})
if err != nil {
t.Fatal(err)
}
@@ -27,8 +27,45 @@ func TestRecord(t *testing.T) {
}
}
+func TestMode(t *testing.T) {
+ badHost := "badhost1."
+ goodHost := "goodhost1."
+ var tests = []struct {
+ question string
+ remoteAddr net.IP
+ hijacked bool
+ mode int
+ log bool
+ }{
+ {badHost, net.IPv4(192, 0, 2, 100), true, ModeAll, true},
+ {goodHost, net.IPv4(192, 0, 2, 100), true, ModeAll, true},
+ {badHost, net.IPv4(192, 0, 2, 100), true, ModeHijacked, true},
+ {goodHost, net.IPv4(192, 0, 2, 100), false, ModeHijacked, false},
+ {badHost, net.IPv4(192, 0, 2, 100), true, ModeDiscard, false},
+ {goodHost, net.IPv4(192, 0, 2, 100), false, ModeDiscard, false},
+ }
+ for i, tt := range tests {
+ logger, err := New(os.Stderr, "test: ", RecordOptions{Database: ":memory:", Mode: tt.mode})
+ if err != nil {
+ t.Fatal(err)
+ }
+ logger.mode = tt.mode
+ logger.Record(tt.remoteAddr, tt.hijacked, 1, tt.question)
+ if err := logger.Close(); err != nil { // Flush
+ t.Fatal(err)
+ }
+ entries, err := logger.Get(1)
+ if err != nil {
+ t.Fatal(err)
+ }
+ if len(entries) > 0 != tt.log {
+ t.Errorf("#%d: question %q (hijacked=%t) should be logged in mode %d", i, tt.question, tt.hijacked, tt.mode)
+ }
+ }
+}
+
func TestAnswerMerging(t *testing.T) {
- logger, err := New(os.Stderr, "test: ", RecordOptions{Database: ":memory:"})
+ logger, err := New(os.Stderr, "test: ", RecordOptions{Database: ":memory:", Mode: ModeAll})
if err != nil {
t.Fatal(err)
}
@@ -68,6 +105,7 @@ func TestAnswerMerging(t *testing.T) {
func TestLogPruning(t *testing.T) {
logger, err := newLogger(os.Stderr, "test: ", RecordOptions{
+ Mode: ModeAll,
Database: ":memory:",
TTL: time.Hour,
}, 10*time.Millisecond)