From 2d7dda93a9702aac231e9f8a8d53c558ffc1187b Mon Sep 17 00:00:00 2001 From: Sean Cross Date: Wed, 24 Mar 2021 12:51:06 +0800 Subject: [PATCH] kernel-test: add testcase for ticktimer/kernel bustage The ticktimer server breaks spectacularly with this. Signed-off-by: Sean Cross --- services/kernel-test/src/main.rs | 21 ++++++++++++++------- xtask/src/main.rs | 11 ++++++++++- 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/services/kernel-test/src/main.rs b/services/kernel-test/src/main.rs index 3ddaa06e9..2b585dfbd 100644 --- a/services/kernel-test/src/main.rs +++ b/services/kernel-test/src/main.rs @@ -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 { diff --git a/xtask/src/main.rs b/xtask/src/main.rs index 77507aead..f2f8f69d9 100644 --- a/xtask/src/main.rs +++ b/xtask/src/main.rs @@ -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)?,