summaryrefslogtreecommitdiffstats
path: root/cc/test/task_graph_runner_test_template.h
diff options
context:
space:
mode:
Diffstat (limited to 'cc/test/task_graph_runner_test_template.h')
-rw-r--r--cc/test/task_graph_runner_test_template.h78
1 files changed, 67 insertions, 11 deletions
diff --git a/cc/test/task_graph_runner_test_template.h b/cc/test/task_graph_runner_test_template.h
index d3989b9..d417543 100644
--- a/cc/test/task_graph_runner_test_template.h
+++ b/cc/test/task_graph_runner_test_template.h
@@ -24,17 +24,20 @@ class TaskGraphRunnerTestBase {
unsigned id,
unsigned dependent_id,
unsigned dependent_count,
+ unsigned category,
unsigned priority)
: namespace_index(namespace_index),
id(id),
dependent_id(dependent_id),
dependent_count(dependent_count),
+ category(category),
priority(priority) {}
int namespace_index;
unsigned id;
unsigned dependent_id;
unsigned dependent_count;
+ unsigned category;
unsigned priority;
};
@@ -126,8 +129,8 @@ TYPED_TEST_P(TaskGraphRunnerTest, Basic) {
EXPECT_EQ(0u, this->run_task_ids(i).size());
EXPECT_EQ(0u, this->on_task_completed_ids(i).size());
- this->ScheduleTasks(i,
- std::vector<TaskInfo>(1, TaskInfo(i, 0u, 0u, 0u, 0u)));
+ this->ScheduleTasks(
+ i, std::vector<TaskInfo>(1, TaskInfo(i, 0u, 0u, 0u, 0u, 0u)));
}
for (int i = 0; i < kNamespaceCount; ++i) {
@@ -138,8 +141,8 @@ TYPED_TEST_P(TaskGraphRunnerTest, Basic) {
}
for (int i = 0; i < kNamespaceCount; ++i)
- this->ScheduleTasks(i,
- std::vector<TaskInfo>(1, TaskInfo(i, 0u, 0u, 1u, 0u)));
+ this->ScheduleTasks(
+ i, std::vector<TaskInfo>(1, TaskInfo(i, 0u, 0u, 1u, 0u, 0u)));
for (int i = 0; i < kNamespaceCount; ++i) {
this->RunAllTasks(i);
@@ -149,8 +152,8 @@ TYPED_TEST_P(TaskGraphRunnerTest, Basic) {
}
for (int i = 0; i < kNamespaceCount; ++i)
- this->ScheduleTasks(i,
- std::vector<TaskInfo>(1, TaskInfo(i, 0u, 0u, 2u, 0u)));
+ this->ScheduleTasks(
+ i, std::vector<TaskInfo>(1, TaskInfo(i, 0u, 0u, 2u, 0u, 0u)));
for (int i = 0; i < kNamespaceCount; ++i) {
this->RunAllTasks(i);
@@ -167,7 +170,7 @@ TYPED_TEST_P(TaskGraphRunnerTest, Dependencies) {
for (int i = 0; i < kNamespaceCount; ++i) {
this->ScheduleTasks(i, std::vector<TaskInfo>(1, TaskInfo(i, 0u, 1u,
1u, // 1 dependent
- 0u)));
+ 0u, 0u)));
}
for (int i = 0; i < kNamespaceCount; ++i) {
@@ -185,7 +188,7 @@ TYPED_TEST_P(TaskGraphRunnerTest, Dependencies) {
this->ScheduleTasks(i,
std::vector<TaskInfo>(1, TaskInfo(i, 2u, 3u,
2u, // 2 dependents
- 0u)));
+ 0u, 0u)));
}
for (int i = 0; i < kNamespaceCount; ++i) {
@@ -201,7 +204,60 @@ TYPED_TEST_P(TaskGraphRunnerTest, Dependencies) {
}
}
-REGISTER_TYPED_TEST_CASE_P(TaskGraphRunnerTest, Basic, Dependencies);
+TYPED_TEST_P(TaskGraphRunnerTest, Categorys) {
+ const int kNamespaceCount = TaskGraphRunnerTestBase::kNamespaceCount;
+ const unsigned kCategoryCount = 3;
+ using TaskInfo = TaskGraphRunnerTestBase::TaskInfo;
+
+ for (int i = 0; i < kNamespaceCount; ++i) {
+ EXPECT_EQ(0u, this->run_task_ids(i).size());
+ EXPECT_EQ(0u, this->on_task_completed_ids(i).size());
+ std::vector<TaskInfo> tasks;
+ for (unsigned j = 0; j < kCategoryCount; ++j) {
+ tasks.emplace_back(i, 0u, 0u, 0u, j, 0u);
+ }
+ this->ScheduleTasks(i, tasks);
+ }
+
+ for (int i = 0; i < kNamespaceCount; ++i) {
+ this->RunAllTasks(i);
+
+ EXPECT_EQ(kCategoryCount, this->run_task_ids(i).size());
+ EXPECT_EQ(kCategoryCount, this->on_task_completed_ids(i).size());
+ }
+
+ for (int i = 0; i < kNamespaceCount; ++i) {
+ std::vector<TaskInfo> tasks;
+ for (unsigned j = 0; j < kCategoryCount; ++j) {
+ tasks.emplace_back(i, 0u, 0u, 1u, j, 0u);
+ }
+ this->ScheduleTasks(i, tasks);
+ }
+
+ for (int i = 0; i < kNamespaceCount; ++i) {
+ this->RunAllTasks(i);
+
+ EXPECT_EQ(kCategoryCount * 3u, this->run_task_ids(i).size());
+ EXPECT_EQ(kCategoryCount * 2u, this->on_task_completed_ids(i).size());
+ }
+
+ for (int i = 0; i < kNamespaceCount; ++i) {
+ std::vector<TaskInfo> tasks;
+ for (unsigned j = 0; j < kCategoryCount; ++j) {
+ tasks.emplace_back(i, 0u, 0u, 2u, j, 0u);
+ }
+ this->ScheduleTasks(i, tasks);
+ }
+
+ for (int i = 0; i < kNamespaceCount; ++i) {
+ this->RunAllTasks(i);
+
+ EXPECT_EQ(kCategoryCount * 6u, this->run_task_ids(i).size());
+ EXPECT_EQ(kCategoryCount * 3u, this->on_task_completed_ids(i).size());
+ }
+}
+
+REGISTER_TYPED_TEST_CASE_P(TaskGraphRunnerTest, Basic, Dependencies, Categorys);
template <typename TaskRunnerTestDelegate>
using SingleThreadTaskGraphRunnerTest =
@@ -215,8 +271,8 @@ TYPED_TEST_P(SingleThreadTaskGraphRunnerTest, Priority) {
for (int i = 0; i < kNamespaceCount; ++i) {
TaskInfo tasks[] = {
- TaskInfo(i, 0u, 2u, 1u, 1u), // Priority 1
- TaskInfo(i, 1u, 3u, 1u, 0u) // Priority 0
+ TaskInfo(i, 0u, 2u, 1u, 0u, 1u), // Priority 1
+ TaskInfo(i, 1u, 3u, 1u, 0u, 0u) // Priority 0
};
this->ScheduleTasks(i,
std::vector<TaskInfo>(tasks, tasks + arraysize(tasks)));