MCPcopy Create free account
hub / github.com/Simple-XX/SimpleKernel / test_clone_parent_flag

Function test_clone_parent_flag

tests/system_test/clone_test.cpp:264–360  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

262}
263
264void test_clone_parent_flag(void* /*arg*/) {
265 klog::Info("=== Clone Parent Flag Test ===");
266
267 bool passed = true;
268
269 {
270 auto task = kstd::make_unique<TaskControlBlock>("DefaultTask", 10,
271 noop_work, nullptr);
272 if (task->aux->parent_pid != 0) {
273 klog::Err("Default parent_pid is not 0");
274 passed = false;
275 }
276 if (task->aux->tgid != 0) {
277 klog::Err("Default tgid is not 0");
278 passed = false;
279 }
280 if (task->aux->clone_flags.value() != 0) {
281 klog::Err("Default clone_flags is not empty");
282 passed = false;
283 }
284
285 auto* raw = task.get();
286 TaskManagerSingleton::instance().AddTask(std::move(task));
287
288 if (raw->pid == 0) {
289 klog::Err("AddTask did not assign pid");
290 passed = false;
291 }
292 if (raw->aux->tgid != raw->pid) {
293 klog::Err("AddTask did not set tgid=pid: tgid={} pid={}", raw->aux->tgid,
294 raw->pid);
295 passed = false;
296 }
297 }
298
299 {
300 auto leader = kstd::make_unique<TaskControlBlock>("JoinLeader", 10,
301 noop_work, nullptr);
302 auto* leader_raw = leader.get();
303 TaskManagerSingleton::instance().AddTask(std::move(leader));
304
305 auto member = kstd::make_unique<TaskControlBlock>("JoinMember", 10,
306 noop_work, nullptr);
307 member->JoinThreadGroup(leader_raw);
308 auto* member_raw = member.get();
309 TaskManagerSingleton::instance().AddTask(std::move(member));
310
311 if (member_raw->aux->tgid != leader_raw->aux->tgid) {
312 klog::Err("JoinThreadGroup did not link tgid: member={} leader={}",
313 member_raw->aux->tgid, leader_raw->aux->tgid);
314 passed = false;
315 }
316 }
317
318 {
319 auto task = kstd::make_unique<TaskControlBlock>("FieldTest", 10, noop_work,
320 nullptr);
321 task->aux->parent_pid = 42;

Callers

nothing calls this directly

Calls 5

InfoFunction · 0.85
ErrFunction · 0.85
sys_exitFunction · 0.85
AddTaskMethod · 0.80
JoinThreadGroupMethod · 0.80

Tested by

no test coverage detected