#include "sim_event.h" #include #include int main(void) { uint8_t record[sizeof(sim_event_record)] = {0}; uint8_t exported[16384] = {0}; const uint8_t payload[] = {'o', 'k'}; sim_event_reset(); assert(sim_event_append(2, 0, "bad", payload, sizeof(payload)) == SIM_EVENT_ERR_SEQUENCE); assert(sim_event_append(1, 2, "STEP", payload, sizeof(payload)) == SIM_EVENT_OK); assert(sim_event_append(2, 1, "BAD_TICK", NULL, 0) == SIM_EVENT_ERR_TICK); assert(sim_event_read(0, NULL, 0) == sizeof(sim_event_record)); assert(sim_event_read(0, record, sizeof(record)) == sizeof(record)); assert(((sim_event_record *)record)->seq == 1); assert(sim_event_count() == 1); assert(sim_event_cursor() == 1); uint32_t export_size = sim_event_export(NULL, 0); assert(export_size > 0 && export_size < sizeof(exported)); assert(sim_event_export(exported, sizeof(exported)) == export_size); sim_event_reset(); assert(sim_event_import(exported, export_size) == SIM_EVENT_OK); assert(sim_event_count() == 1); assert(sim_event_import(exported, export_size - 1) == SIM_EVENT_ERR_ARGUMENT); ((sim_event_record *)exported)->seq = 2; assert(sim_event_import(exported, export_size) == SIM_EVENT_ERR_SEQUENCE); assert(sim_event_cursor() == 1); ((sim_event_record *)exported)->seq = 1; ((sim_event_record *)exported)->kind[SIM_EVENT_KIND_CAPACITY - 1U] = 'x'; assert(sim_event_import(exported, export_size) == SIM_EVENT_ERR_ARGUMENT); assert(sim_event_cursor() == 1); return 0; }