#![cfg(test)]
use std::path::Path;
pub(super) fn stage_synthetic_proc(root: &Path, tgid: i32, tid: i32, pcomm: &str, comm: &str) {
use std::fs;
let tgid_dir = root.join(tgid.to_string());
let task_dir = tgid_dir.join("task").join(tid.to_string());
fs::create_dir_all(&task_dir).unwrap();
fs::write(tgid_dir.join("comm"), format!("{pcomm}\n")).unwrap();
fs::write(task_dir.join("comm"), format!("{comm}\n")).unwrap();
let stat_line = format!(
"{tid} (proc (with) parens) R 1 2 3 4 5 6 \
7777 0 8888 0 10 11 12 13 14 {nice} 1 0 \
{starttime} 100 200 300 400 500 600 700 800 \
900 1000 1100 1200 1300 1400 1500 1600 1700 1800 {policy}\n",
tid = tid,
nice = -10_i32,
starttime = 555_555u64,
policy = 0, );
fs::write(task_dir.join("stat"), stat_line).unwrap();
fs::write(task_dir.join("schedstat"), "1000000 200000 50\n").unwrap();
let status = "Name:\tfoo\n\
State:\tR (running)\n\
voluntary_ctxt_switches:\t42\n\
nonvoluntary_ctxt_switches:\t7\n\
Cpus_allowed_list:\t0-3\n";
fs::write(task_dir.join("status"), status).unwrap();
let io = "rchar: 100\n\
wchar: 200\n\
syscr: 10\n\
syscw: 20\n\
read_bytes: 4096\n\
write_bytes: 8192\n\
cancelled_write_bytes: 512\n";
fs::write(task_dir.join("io"), io).unwrap();
let sched = "\
se.statistics.nr_wakeups : 11\n\
se.statistics.nr_wakeups_local : 8\n\
se.statistics.nr_wakeups_remote : 3\n\
se.statistics.nr_wakeups_sync : 2\n\
se.statistics.nr_wakeups_migrate : 1\n\
se.statistics.nr_wakeups_idle : 4\n\
se.statistics.nr_wakeups_affine : 12\n\
se.statistics.nr_wakeups_affine_attempts : 20\n\
nr_migrations : 9\n\
se.statistics.nr_migrations_cold : 5\n\
se.statistics.nr_forced_migrations : 7\n\
se.statistics.nr_failed_migrations_affine : 1\n\
se.statistics.nr_failed_migrations_running : 2\n\
se.statistics.nr_failed_migrations_hot : 3\n\
wait_sum : 5000.25\n\
wait_count : 15\n\
se.statistics.wait_max : 250.5\n\
sum_sleep_runtime : 3200.50\n\
se.statistics.sleep_max : 180.25\n\
sum_block_runtime : 1100.75\n\
se.statistics.block_max : 60.75\n\
iowait_sum : 77.0\n\
iowait_count : 18\n\
se.statistics.exec_max : 90.0\n\
se.statistics.slice_max : 400.5\n\
ext.enabled : 1\n";
fs::write(task_dir.join("sched"), sched).unwrap();
fs::write(task_dir.join("cgroup"), "0::/ktstr.slice/worker0\n").unwrap();
}