mirror of
https://github.com/priyanshujain/sanderling.git
synced 2026-10-02 19:17:10 +00:00
* chore: fix gitignore + decisions doc after web->inspect-ui rename Update web/ references to inspect-ui/ in .gitignore and Makefile. Add decisions.md tracking architectural decisions from code-org discussion. * refactor: rename pkg/spec-api to pkg/spec Aligns the directory name with the npm package name @sanderling/spec. Updates Makefile, package.json directory field, and resolveSpecAPIPath. * refactor(verifier): split bindings.go into types.go + bindings.go Move shared public types (Action, ActionKind, LogEntry, Exception) to types.go. bindings.go retains internal JS runtime wiring only. * refactor(inspect): split runs.go into runs.go, runs_cache.go, runs_decode.go runs.go: types (RunSummary, StepSummary, RunDetail, Run) and Scan. runs_cache.go: Cache type, Open/Step/Detail methods, parseRun, scanSteps. runs_decode.go: readMeta, tallyTrace, decodeStepSummary, validRunID. * refactor: move android_env.go to internal/android/ Extracts Android device/AVD/adb logic into internal/android package. Exports EnsureDevice, AdbReverse, AdbReverseRemove, EnvWithAndroidPlatformTools, AdbBinary. Moves tests to internal/android/android_test.go. cmd/sanderling becomes a thin caller. * refactor: extract test pipeline to internal/testrun/ runTestPipeline logic moves to testrun.Execute. buildDriver, resolveSpecAPIPath, pickFreePort, and the progress logger move to internal/testrun/. cmd/sanderling/test_run.go becomes a thin adapter. Tests follow their code. * ci: update workflow paths after pkg/spec-api -> pkg/spec rename
22 lines
729 B
TypeScript
22 lines
729 B
TypeScript
import { always } from "../ltl.ts";
|
|
import { extract } from "../extract.ts";
|
|
import type { Formula } from "../types.ts";
|
|
|
|
const exceptionCount = extract<number>((state) => state.exceptions.length);
|
|
|
|
// Fails when the SDK captured an uncaught throwable or a Sanderling.reportError
|
|
// call surfaced one during the run.
|
|
export const noUncaughtExceptions: Formula = always(
|
|
() => exceptionCount.current === 0,
|
|
);
|
|
|
|
const errorLogCount = extract<number>(
|
|
(state) => state.logs.reduce((count, log) => count + (log.level === "E" ? 1 : 0), 0),
|
|
);
|
|
|
|
// Fails when the runner's logcat fetch observed any error-level lines since
|
|
// the previous step.
|
|
export const noLogcatErrors: Formula = always(
|
|
() => errorLogCount.current === 0,
|
|
);
|