SimpleKernel 1.17.0
Loading...
Searching...
No Matches
task_test_harness.cpp
Go to the documentation of this file.
1
6
7#include <thread>
8
9#include "per_cpu.hpp"
10#include "task_manager.hpp"
11
13 // 1. 初始化环境层(每个测试都有独立实例)
15
16 // 2. 设置当前线程的环境指针(让 Mock 层可以访问)
18
19 // 3. 绑定主测试线程到 core 0
20 env_state_.BindThreadToCore(std::this_thread::get_id(), 0);
21
22 // 3. 重置 PerCpu 数据
23 per_cpu::PerCpuArraySingleton::create();
24 auto& per_cpu_array = per_cpu::PerCpuArraySingleton::instance();
25 for (size_t i = 0; i < SIMPLEKERNEL_MAX_CORE_COUNT; ++i) {
26 per_cpu_array[i] = per_cpu::PerCpu(i);
27 }
28
29 // 4. 重置 TaskManager(如果有 ResetForTesting 方法)
30 // 注意:这需要在 TaskManager 中实现
31 // TaskManagerSingleton::instance().ResetForTesting();
32}
33
35 per_cpu::PerCpuArraySingleton::destroy();
36 // 清除当前线程的环境指针
38
39 // 其他清理
41}
void TearDown() override
void SetUp() override
test_env::TestEnvironmentState env_state_
void ClearCurrentThreadEnvironment()
清除当前线程的环境实例指针
void BindThreadToCore(std::thread::id tid, size_t core_id)
将指定线程绑定到核心
void InitializeCores(size_t num_cores)
初始化指定数量的核心
void ClearSwitchHistory()
清空所有核心的切换历史
void SetCurrentThreadEnvironment()
设置当前线程的环境实例指针
每个 CPU 核心的局部数据
Definition per_cpu.hpp:23