diff options
author | Martin Polden <mpolden@mpolden.no> | 2019-12-26 16:17:14 +0100 |
---|---|---|
committer | Martin Polden <mpolden@mpolden.no> | 2019-12-26 16:23:21 +0100 |
commit | b4e42b3f6429178d50a1ee2acefbd6a2aa2fbacf (patch) | |
tree | 61f0f426d2061f0b2d9f61b556110318f4a4598f | |
parent | dae3d2ba6d1f8092b1b18f417f5c37cdca66f772 (diff) |
Count multi-answer log entry as a single entry
-rw-r--r-- | sql/sql.go | 2 | ||||
-rw-r--r-- | sql/sql_test.go | 25 |
2 files changed, 16 insertions, 11 deletions
@@ -103,8 +103,8 @@ INNER JOIN rr_question ON rr_question.id = rr_question_id INNER JOIN rr_type ON rr_type.id = rr_type_id INNER JOIN log_rr_answer ON log_rr_answer.log_id = log.id INNER JOIN rr_answer ON rr_answer.id = log_rr_answer.rr_answer_id +WHERE log.id IN (SELECT id FROM log ORDER BY time DESC LIMIT $1) ORDER BY time DESC, rr_answer.id DESC -LIMIT $1 ` var entries []LogEntry err := c.db.Select(&entries, query, n) diff --git a/sql/sql_test.go b/sql/sql_test.go index 6ed9c1e..6328dc6 100644 --- a/sql/sql_test.go +++ b/sql/sql_test.go @@ -73,17 +73,22 @@ func TestReadLog(t *testing.T) { t.Fatalf("#%d: WriteLog(%q, %s, %d, %q, %q) = %s, want nil", i, tt.t, tt.remoteAddr.String(), tt.qtype, tt.question, tt.answers, err) } } - entries := []LogEntry{ - {ID: 6, Question: "bar.example.com", Qtype: 28, Answer: "2001:db8::3", Time: 1560641700, RemoteAddr: net.IPv4(192, 0, 2, 102)}, - {ID: 6, Question: "bar.example.com", Qtype: 28, Answer: "2001:db8::2", Time: 1560641700, RemoteAddr: net.IPv4(192, 0, 2, 102)}, - {ID: 5, Question: "bar.example.com", Qtype: 28, Answer: "2001:db8::1", Time: 1560639880, RemoteAddr: net.IPv4(192, 0, 2, 102)}, - {ID: 4, Question: "bar.example.com", Qtype: 1, Answer: "192.0.2.2", Time: 1560637120, RemoteAddr: net.IPv4(192, 0, 2, 102)}, - {ID: 3, Question: "bar.example.com", Qtype: 1, Answer: "192.0.2.2", Time: 1560637050, RemoteAddr: net.IPv4(192, 0, 2, 101)}, - {ID: 2, Question: "foo.example.com", Qtype: 1, Answer: "192.0.2.1", Time: 1560636980, RemoteAddr: net.IPv4(192, 0, 2, 100)}, - {ID: 1, Question: "foo.example.com", Qtype: 1, Answer: "192.0.2.1", Time: 1560636910, RemoteAddr: net.IPv4(192, 0, 2, 100)}, + allEntries := [][]LogEntry{ + { + {ID: 6, Question: "bar.example.com", Qtype: 28, Answer: "2001:db8::3", Time: 1560641700, RemoteAddr: net.IPv4(192, 0, 2, 102)}, + {ID: 6, Question: "bar.example.com", Qtype: 28, Answer: "2001:db8::2", Time: 1560641700, RemoteAddr: net.IPv4(192, 0, 2, 102)}, + }, + {{ID: 5, Question: "bar.example.com", Qtype: 28, Answer: "2001:db8::1", Time: 1560639880, RemoteAddr: net.IPv4(192, 0, 2, 102)}}, + {{ID: 4, Question: "bar.example.com", Qtype: 1, Answer: "192.0.2.2", Time: 1560637120, RemoteAddr: net.IPv4(192, 0, 2, 102)}}, + {{ID: 3, Question: "bar.example.com", Qtype: 1, Answer: "192.0.2.2", Time: 1560637050, RemoteAddr: net.IPv4(192, 0, 2, 101)}}, + {{ID: 2, Question: "foo.example.com", Qtype: 1, Answer: "192.0.2.1", Time: 1560636980, RemoteAddr: net.IPv4(192, 0, 2, 100)}}, + {{ID: 1, Question: "foo.example.com", Qtype: 1, Answer: "192.0.2.1", Time: 1560636910, RemoteAddr: net.IPv4(192, 0, 2, 100)}}, } - for n := 1; n <= len(entries); n++ { - want := entries[:n] + for n := 1; n <= len(allEntries); n++ { + var want []LogEntry + for _, entries := range allEntries[:n] { + want = append(want, entries...) + } got, err := c.ReadLog(n) if len(got) != len(want) { t.Errorf("len(got) = %d, want %d", len(got), len(want)) |