| 262 | } |
| 263 | |
| 264 | void 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; |
nothing calls this directly
no test coverage detected