#!/usr/bin/perl -w
#
# Run the preemption test
#

# determine RTL/RTAI and set modlist
if( -f "/usr/src/rtl/rtai") {
    @modlist	= (qw(rtai modules/rtai_fifos modules/rtai_sched));
    $moddir	= "/usr/src/rtl/";
} else {
    @modlist	= (qw(rtl_time rtl_sched rtl_posixio rtl_fifo));
    $moddir	= "";
}
# make sure the test module is unloaded
system("/sbin/rmmod preempt_rt 2>/dev/null");

# inmod basic rt modules
foreach(@modlist) {
    if($ret = `/sbin/insmod $moddir$_ 2>&1`) {
        warn($ret) unless $ret =~ /already exists/;
    }
}

# work out CPU clock so we can pass it to the module
# if using a 486, use bogomips as a default
open(CPUINFO, "/proc/cpuinfo") || die;
while(<CPUINFO>)
{
    if(/^cpu MHz/) {
        ($clkspd) = /(\d+)\./;
	last;
    }
    if(/^bogomips/) {
        ($clkspd) = /(\d+)\./;
	last;
    }
}
$cmd 		= "/sbin/insmod preempt_rt clkspd=$clkspd\n";
warn $cmd;
system $cmd;
$cmd 		= "./preempt | ./peconv\n";
warn $cmd;
system $cmd;
system("/sbin/rmmod preempt_rt");

