kernel-test: add testcase for ticktimer/kernel bustage

The ticktimer server breaks spectacularly with this.

Signed-off-by: Sean Cross <sean@xobs.io>
This commit is contained in:
Sean Cross 2021-03-24 12:51:06 +08:00
parent 0e8c231758
commit 2d7dda93a9
2 changed files with 24 additions and 8 deletions

View file

@ -5,11 +5,15 @@ fn sleep_loop(sleep_ms: usize) {
let ticktimer_server_id = xous::SID::from_bytes(b"ticktimer-server").unwrap();
let ticktimer_conn = xous::connect(ticktimer_server_id).unwrap();
let tid = xous::current_tid().unwrap();
let sleep_ms = match tid {
4 => 50,
2 => 10,
3 => 20,
_ => panic!("Unknown TID"),
let pid = xous::current_pid().unwrap().get();
let sleep_ms = match (pid, tid) {
(5, 2) => 10,
(5, 3) => 20,
(5, 4) => 50,
(6, 2) => 3000,
(6, 3) => 7000,
(6, 4) => 12000,
_ => panic!("Unknown TID/PID"),
};
// log::info!("My thread number is {}, sleeping 0x{:08x} ({}) ms", tid, sleep_ms, sleep_ms);
@ -25,7 +29,8 @@ fn sleep_loop(sleep_ms: usize) {
ticktimer_server::sleep_ms(ticktimer_conn, sleep_ms).unwrap();
let end_time = ticktimer_server::elapsed_ms(ticktimer_conn).unwrap();
log::info!(
"TEST THREAD {}: target {}ms, {} loops: Sleep finished (uptime: {}, took {} ms)",
"TEST THREAD {}:{}: target {}ms, {} loops: Sleep finished (uptime: {}, took {} ms)",
pid,
tid,
sleep_ms,
loop_count,
@ -41,7 +46,9 @@ fn test_main() -> ! {
log_server::init_wait().unwrap();
xous::create_thread_simple(sleep_loop, 10).unwrap();
xous::create_thread_simple(sleep_loop, 5).unwrap();
xous::create_thread_simple(sleep_loop, 2).unwrap();
if xous::current_pid().unwrap().get() == 6 {
xous::create_thread_simple(sleep_loop, 2).unwrap();
}
// let mut ms_count = 1;
loop {

View file

@ -74,7 +74,16 @@ fn try_main() -> Result<(), DynError> {
let task = env::args().nth(1);
match task.as_deref() {
Some("renode-image") => renode_image(false, &hw_pkgs)?,
Some("renode-test") => renode_image(false, &["ticktimer-server", "log-server", "xous-names", "kernel-test"])?,
Some("renode-test") => renode_image(
false,
&[
"ticktimer-server",
"log-server",
"xous-names",
"kernel-test",
"kernel-test",
],
)?,
Some("renode-image-debug") => renode_image(true, &hw_pkgs)?,
Some("run") => run(false)?,
Some("hw-image") => build_hw_image(false, env::args().nth(2), &hw_pkgs)?,