Журнал и SKIP: record, records, skip

Произвольные данные в отчёт; выборка своих записей; завершение неприменимого сценария.

с 0.3.0с 0.4.0

Методы

ЭлементСигнатураДоступен сAPI 3
recordrecord(name, data) -> None0.3.0без изменений
recordsrecords(name=None, *, require_complete=True) -> list[dict]0.3.00.6.0: явное частичное чтение
skipskip(reason) -> NoReturn0.4.0без изменений

Изменения API 3 (0.5.0)

Без изменений. Записи на диск — при [results] capture = true; MMIO добавляет записи журнала.

Правильно

Сначала record, затем check: сохраняйте сырые выборки, единицы, прогрев и пригодность. В counter-cost время запроса GDB отделено от учебных тиков; максимум выборки — не WCET. В external-capture отдельно проверяются READY/drain, полнота и временные опоры; анализ не переписывает исход сценария. rosbag-import сверяет bag с индексом и связывает его со снимком GDB только через опоры счётчика МК и измеренную задержку; иначе UNKNOWN.

t.record("adc.sample", {"vdda_mv": t.read("board_adc_reading.vdda_mv")})
samples = [row["data"]["vdda_mv"] for row in t.records("adc.sample")]
t.check("enough samples", len(samples) >= 2, True)
if not t.profile.get("user.sample_step", True):
    t.skip("sample_step disabled in api.toml")

Не рекомендуется

print не попадает в отчёт. Неполные данные нельзя заменять нулём; расход внутри интервала не равен полному возмущению. SKIP не скрывает ошибки API; exit 0 источника не гарантирует полноту записи.

print(t.read("board_adc_reading.vdda_mv"))   # not in the report
try:
    t.reach("board_adc_sample")
except Exception:
    t.skip("no ADC")                          # SKIP hides an error

Фрагменты показывают отклонённые или нежелательные приёмы, а не рабочий рецепт.

Фрагменты для тела сценария; символы прошивки условные.

← ТочкиВсе группыКонтекст →