#include #include #include #include "task01_scheduler_model.h" int main( void ) { const uint32_t valid_trace[] = { SCHED_PEER_B, SCHED_PEER_A, SCHED_PEER_B, SCHED_PEER_A }; const uint32_t invalid_trace[] = { SCHED_PEER_A, SCHED_PEER_A, SCHED_PEER_B }; const uint32_t valid_ticks[] = { 1U, 2U, 2U, 3U }; const uint32_t invalid_ticks[] = { 1U, 3U, 2U }; const uint32_t valid_order[] = { SCHED_ORDER_BEFORE_RAISE, SCHED_ORDER_HIGH_PROBE, SCHED_ORDER_AFTER_RAISE }; assert( scheduler_trace_has_aba( valid_trace, 4U ) == 1 ); assert( scheduler_trace_has_aba( invalid_trace, 3U ) == 0 ); assert( scheduler_ticks_nondecreasing( valid_ticks, 4U ) == 1 ); assert( scheduler_ticks_nondecreasing( invalid_ticks, 3U ) == 0 ); assert( scheduler_preemption_order_valid( valid_order, 3U ) == 1 ); assert( scheduler_preemption_order_valid( valid_order, 2U ) == 0 ); puts( "PASS scheduler model: A-B-A, tick order and preemption order" ); return 0; }