Журнал и SKIP: record, records, skip
Произвольные данные в отчёт; выборка своих записей; завершение неприменимого сценария.
Методы
Изменения 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Фрагменты показывают отклонённые или нежелательные приёмы, а не рабочий рецепт.
Фрагменты для тела сценария; символы прошивки условные.