50TEST(PipelineCompileQueueGLESTest, OnJobAddedProcessesJobsSequentially) {
53 ASSERT_NE(
queue,
nullptr);
55 std::atomic<int> completed_jobs{0};
70 queue->PostJobForDescriptor(desc1, [&]() {
71 std::this_thread::sleep_for(std::chrono::milliseconds(80));
76 queue->PostJobForDescriptor(desc2, [&]() {
77 std::this_thread::sleep_for(std::chrono::milliseconds(80));
82 queue->PostJobForDescriptor(desc3, [&]() {
83 std::this_thread::sleep_for(std::chrono::milliseconds(80));
90 EXPECT_EQ(completed_jobs, 3);
95TEST(PipelineCompileQueueGLESTest,
96 PostJobForDescriptorWithDuplicateRunsEagerly) {
99 ASSERT_NE(
queue,
nullptr);
101 std::atomic<int> first_job_count{0};
102 std::atomic<int> second_job_count{0};
107 queue->PostJobForDescriptor(desc, [&]() {
112 queue->PostJobForDescriptor(desc, [&]() {
119 EXPECT_EQ(first_job_count, 1);
120 EXPECT_EQ(second_job_count, 1);
146TEST(PipelineCompileQueueGLESTest, DestroyQueueWithPendingTasks) {
148 std::atomic<int> completed_jobs{0};
154 ASSERT_NE(
queue,
nullptr);
168 queue->PostJobForDescriptor(desc1, [&]() {
169 std::this_thread::sleep_for(std::chrono::milliseconds(50));
174 queue->PostJobForDescriptor(desc2, [&]() {
175 std::this_thread::sleep_for(std::chrono::milliseconds(50));
180 queue->PostJobForDescriptor(desc3, [&]() {
181 std::this_thread::sleep_for(std::chrono::milliseconds(50));
193 EXPECT_EQ(completed_jobs, 3);