mirror of
https://github.com/priyanshujain/sanderling.git
synced 2026-10-04 03:57:09 +00:00
fix(runner): report a log fetch the driver could not make
The comment claimed the failure was warned about; nothing warned, so a device whose log fetch failed every step held noLogcatErrors on evidence nobody collected. Claude-Session: https://claude.ai/code/session_01ShuAy8q8ZfPi8KHxwc8JpQ
This commit is contained in:
1 parent
a6b3ccee58
commit
0cfda3fa18
1 file changed
+16
-4
@@ -163,7 +163,7 @@ func Run(ctx context.Context, options Options) (Summary, error) {
|
|||||||
})
|
})
|
||||||
logSince := lastLogTime
|
logSince := lastLogTime
|
||||||
g.Go(func() error {
|
g.Go(func() error {
|
||||||
logs = collectLogs(gctx, options.Driver, logSince)
|
logs = collectLogs(gctx, options.Driver, logger, si, logSince)
|
||||||
return nil
|
return nil
|
||||||
})
|
})
|
||||||
// All goroutines write to local variables and return nil, so the Wait
|
// All goroutines write to local variables and return nil, so the Wait
|
||||||
@@ -824,11 +824,23 @@ func applyAction(ctx context.Context, drv driver.DeviceDriver, action verifier.A
|
|||||||
}
|
}
|
||||||
|
|
||||||
// collectLogs pulls recent error-level log entries from the driver since the
|
// collectLogs pulls recent error-level log entries from the driver since the
|
||||||
// previous fetch. A failure is warned-on but not fatal: log capture is a
|
// previous fetch. A failure is warned-on but not fatal: one unreadable fetch on
|
||||||
// best-effort observability channel, not a correctness dependency.
|
// a flaky device should not end a run. It is not free either. This fetch is the
|
||||||
func collectLogs(ctx context.Context, drv driver.DeviceDriver, since time.Time) []verifier.LogEntry {
|
// whole evidence base for state.logs, so a step that could not make it leaves
|
||||||
|
// every log property (the default noLogcatErrors included) holding on an empty
|
||||||
|
// slice, and that has to be visible in the run's output rather than read as the
|
||||||
|
// app having logged nothing.
|
||||||
|
func collectLogs(
|
||||||
|
ctx context.Context,
|
||||||
|
drv driver.DeviceDriver,
|
||||||
|
logger *slog.Logger,
|
||||||
|
step int,
|
||||||
|
since time.Time,
|
||||||
|
) []verifier.LogEntry {
|
||||||
entries, err := drv.RecentLogs(ctx, since, "E")
|
entries, err := drv.RecentLogs(ctx, since, "E")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
logger.Warn("log fetch failed; log properties hold vacuously this step",
|
||||||
|
"step", step, "err", err)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
result := make([]verifier.LogEntry, 0, len(entries))
|
result := make([]verifier.LogEntry, 0, len(entries))
|
||||||
|
|||||||
Reference in new issue
Block a user