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

Function TEST

tests/unit_test/fifo_scheduler_test.cpp:13–48  ·  view source on GitHub ↗

测试 FIFO 调度器的基本入队出队功能

Source from the content-addressed store, hash-verified

11
12// 测试 FIFO 调度器的基本入队出队功能
13TEST(FifoSchedulerTest, BasicEnqueueDequeue) {
14 FifoScheduler scheduler;
15
16 // 验证调度器名称
17 EXPECT_STREQ(scheduler.name, "FIFO");
18
19 // 创建测试任务
20 TaskControlBlock task1("Task1", 1, nullptr, nullptr);
21 task1.status = TaskStatus::kReady;
22
23 TaskControlBlock task2("Task2", 2, nullptr, nullptr);
24 task2.status = TaskStatus::kReady;
25
26 // 测试空队列
27 EXPECT_TRUE(scheduler.IsEmpty());
28 EXPECT_EQ(scheduler.GetQueueSize(), 0);
29 EXPECT_EQ(scheduler.PickNext(), nullptr);
30
31 // 加入任务
32 scheduler.Enqueue(&task1);
33 EXPECT_FALSE(scheduler.IsEmpty());
34 EXPECT_EQ(scheduler.GetQueueSize(), 1);
35
36 scheduler.Enqueue(&task2);
37 EXPECT_EQ(scheduler.GetQueueSize(), 2);
38
39 // 测试 FIFO 顺序(先进先出)
40 EXPECT_EQ(scheduler.PickNext(), &task1);
41 EXPECT_EQ(scheduler.GetQueueSize(), 1);
42
43 EXPECT_EQ(scheduler.PickNext(), &task2);
44 EXPECT_EQ(scheduler.GetQueueSize(), 0);
45
46 EXPECT_EQ(scheduler.PickNext(), nullptr);
47 EXPECT_TRUE(scheduler.IsEmpty());
48}
49
50// 测试 FIFO 的顺序性
51TEST(FifoSchedulerTest, FifoOrdering) {

Callers

nothing calls this directly

Calls 13

ResetStatsMethod · 0.80
BoostPriorityMethod · 0.80
RestorePriorityMethod · 0.80
IsEmptyMethod · 0.45
GetQueueSizeMethod · 0.45
PickNextMethod · 0.45
EnqueueMethod · 0.45
DequeueMethod · 0.45
GetStatsMethod · 0.45
OnPreemptedMethod · 0.45
OnTickMethod · 0.45
OnTimeSliceExpiredMethod · 0.45

Tested by

no test coverage detected