From 9bc3f3e965005cc642cef73466c9653a1c30c67f Mon Sep 17 00:00:00 2001 From: Aleksandr Nogikh Date: Mon, 19 Aug 2024 15:49:59 +0200 Subject: prog: test new log format parsing A few months ago, we have changed the execution log format. Let's test whether we correctly parse both the old and the new ones. --- prog/parse_test.go | 48 ++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 42 insertions(+), 6 deletions(-) (limited to 'prog') diff --git a/prog/parse_test.go b/prog/parse_test.go index c1a6aa6aa..1dcaa95d8 100644 --- a/prog/parse_test.go +++ b/prog/parse_test.go @@ -46,18 +46,33 @@ func TestParseMulti(t *testing.T) { if err != nil { t.Fatal(err) } - entries := target.ParseLog([]byte(execLog)) + entries := target.ParseLog([]byte(execLogNew)) + validateProgs(t, entries, len(execLogNew)) +} + +func TestParseMultiLegacy(t *testing.T) { + t.Parallel() + target, err := GetTarget("linux", "amd64") + if err != nil { + t.Fatal(err) + } + entries := target.ParseLog([]byte(execLogOld)) + validateProgs(t, entries, len(execLogOld)) +} + +func validateProgs(t *testing.T, entries []*LogEntry, logLen int) { + for i, ent := range entries { + t.Logf("program #%v: %v", i, ent.P) + } if len(entries) != 5 { - for i, ent := range entries { - t.Logf("program #%v: %v", i, ent.P) - } t.Fatalf("got %v programs, want 5", len(entries)) } off := 0 for _, ent := range entries { - if off > ent.Start || ent.Start > ent.End || ent.End > len(execLog) { + if off > ent.Start || ent.Start > ent.End || ent.End > logLen { t.Fatalf("bad offsets") } + off = ent.End } if entries[0].Proc != 0 || entries[1].Proc != 1 || @@ -88,7 +103,28 @@ func TestParseMulti(t *testing.T) { } } -const execLog = ` +const execLogNew = ` +getpid() +gettid() +15.133581935s ago: executing program 1 (id=70): +getpid() +[ 2351.935478] Modules linked in: +gettid() +munlockall() +14.133581935s ago: executing program 2 (id=75): +[ 2351.935478] Modules linked in: +getpid() +gettid() +13.133581935s ago: executing program 33 (id=80): +gettid() +getpid() +[ 2351.935478] Modules linked in: +12.133581935s ago: executing program 9 (id=85): +munlockall() +` + +// Logs before the introduction of rpcserver.LastExecuting. +const execLogOld = ` getpid() gettid() 2015/12/21 12:18:05 executing program 1: -- cgit mrf-deployment