Files

38 lines
1.1 KiB
C

#include <assert.h>
#include <stdint.h>
#include <stdio.h>
#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;
}