| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/chromeos/drive/job_queue.h" | 5 #include "chrome/browser/chromeos/drive/job_queue.h" |
| 6 | 6 |
| 7 #include "testing/gtest/include/gtest/gtest.h" | 7 #include "testing/gtest/include/gtest/gtest.h" |
| 8 | 8 |
| 9 namespace drive { | 9 namespace drive { |
| 10 | 10 |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 59 | 59 |
| 60 // The remaining jobs is of low priority, so under HIGH_PRIORITY context, it | 60 // The remaining jobs is of low priority, so under HIGH_PRIORITY context, it |
| 61 // cannot be popped for running. | 61 // cannot be popped for running. |
| 62 EXPECT_FALSE(queue.PopForRun(HIGH_PRIORITY, &id)); | 62 EXPECT_FALSE(queue.PopForRun(HIGH_PRIORITY, &id)); |
| 63 | 63 |
| 64 // Under the low priority context, it is fine. | 64 // Under the low priority context, it is fine. |
| 65 EXPECT_TRUE(queue.PopForRun(LOW_PRIORITY, &id)); | 65 EXPECT_TRUE(queue.PopForRun(LOW_PRIORITY, &id)); |
| 66 EXPECT_EQ(105, id); | 66 EXPECT_EQ(105, id); |
| 67 } | 67 } |
| 68 | 68 |
| 69 TEST(JobQueueTest, JobQueueRemove) { |
| 70 const int kNumMaxConcurrentJobs = 3; |
| 71 const int kNumPriorityLevels = 2; |
| 72 enum {HIGH_PRIORITY, LOW_PRIORITY}; |
| 73 |
| 74 // Create a queue. Number of jobs are initially zero. |
| 75 JobQueue queue(kNumMaxConcurrentJobs, kNumPriorityLevels); |
| 76 EXPECT_EQ(0U, queue.GetNumberOfJobs()); |
| 77 |
| 78 // Push 4 jobs. |
| 79 queue.Push(101, LOW_PRIORITY); |
| 80 queue.Push(102, HIGH_PRIORITY); |
| 81 queue.Push(103, LOW_PRIORITY); |
| 82 queue.Push(104, HIGH_PRIORITY); |
| 83 EXPECT_EQ(4U, queue.GetNumberOfJobs()); |
| 84 |
| 85 // Remove 2. |
| 86 queue.Remove(101); |
| 87 queue.Remove(104); |
| 88 EXPECT_EQ(2U, queue.GetNumberOfJobs()); |
| 89 |
| 90 // Pop the 2 jobs. |
| 91 JobID id; |
| 92 EXPECT_TRUE(queue.PopForRun(LOW_PRIORITY, &id)); |
| 93 EXPECT_EQ(102, id); |
| 94 EXPECT_TRUE(queue.PopForRun(LOW_PRIORITY, &id)); |
| 95 EXPECT_EQ(103, id); |
| 96 queue.MarkFinished(102); |
| 97 queue.MarkFinished(103); |
| 98 |
| 99 // 0 job left. |
| 100 EXPECT_EQ(0U, queue.GetNumberOfJobs()); |
| 101 EXPECT_FALSE(queue.PopForRun(LOW_PRIORITY, &id)); |
| 102 } |
| 103 |
| 69 } // namespace drive | 104 } // namespace drive |
| OLD | NEW |