测试 FIFO 调度器的基本入队出队功能
| 11 | |
| 12 | // 测试 FIFO 调度器的基本入队出队功能 |
| 13 | TEST(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 的顺序性 |
| 51 | TEST(FifoSchedulerTest, FifoOrdering) { |
nothing calls this directly
no test coverage detected