38 lines
1.1 KiB
C
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;
|
|
}
|