m/pkg/logtree: fix exact backlog fetch, head/tail confusion
This started off as 'hm, the backlog data returned seems wrong'. I
realized we had no test for that, so I added one. It was indeed broken.
This was because we had two simultaneous bugs: we confused head/tail
between docs and different parts of the code, and we forgot to do a
reverse operation when scanning/retrieving journal entries.
With those two fixed, we also implement backlog retrieval in a optimized
fashion, but not scanning/retrieving more entries that is necessary.
Finally, we drive-by fix a massacred ASCII graphic in a comment.
Change-Id: I2ec5dd9b5b58f66fbc015c142feb91bd92038e4f
Reviewed-on: https://review.monogon.dev/c/monogon/+/1430
Tested-by: Jenkins CI
Reviewed-by: Leopold Schabel <leo@monogon.tech>
diff --git a/metropolis/pkg/logtree/journal_test.go b/metropolis/pkg/logtree/journal_test.go
index 1df3f12..e9fc3b4 100644
--- a/metropolis/pkg/logtree/journal_test.go
+++ b/metropolis/pkg/logtree/journal_test.go
@@ -44,7 +44,7 @@
j.append(e)
}
- entries := j.getEntries("main")
+ entries := j.getEntries(BacklogAllAvailable, "main")
if want, got := 8192, len(entries); want != got {
t.Fatalf("wanted %d entries, got %d", want, got)
}
@@ -73,20 +73,20 @@
}
}
- entries := j.getEntries("chatty")
+ entries := j.getEntries(BacklogAllAvailable, "chatty")
if want, got := 8192, len(entries); want != got {
t.Fatalf("wanted %d chatty entries, got %d", want, got)
}
- entries = j.getEntries("solemn")
+ entries = j.getEntries(BacklogAllAvailable, "solemn")
if want, got := 900, len(entries); want != got {
t.Fatalf("wanted %d solemn entries, got %d", want, got)
}
- entries = j.getEntries("absent")
+ entries = j.getEntries(BacklogAllAvailable, "absent")
if want, got := 0, len(entries); want != got {
t.Fatalf("wanted %d absent entries, got %d", want, got)
}
- entries = j.scanEntries(filterAll())
+ entries = j.scanEntries(BacklogAllAvailable, filterAll())
if want, got := 8192+900, len(entries); want != got {
t.Fatalf("wanted %d total entries, got %d", want, got)
}
@@ -119,7 +119,7 @@
j.append(&entry{origin: "e.g", leveled: testPayload("e.g")})
expect := func(f filter, msgs ...string) string {
- res := j.scanEntries(f)
+ res := j.scanEntries(BacklogAllAvailable, f)
set := make(map[string]bool)
for _, entry := range res {
set[strings.Join(entry.leveled.messages, "\n")] = true