@@ -89,46 +89,34 @@ TEST(PipelineTest, PushingMultiProcessesInOrder) {
89
89
ASSERT_EQ (consume_result_2, PipelineConsumeResult::Done);
90
90
}
91
91
92
- TEST (PipelineTest, PushingToFrontOverridesOrder ) {
92
+ TEST (PipelineTest, ProduceIfEmptyDoesNotConsumeWhenQueueIsNotEmpty ) {
93
93
const int depth = 2 ;
94
94
fml::RefPtr<IntPipeline> pipeline = fml::MakeRefCounted<IntPipeline>(depth);
95
95
96
96
Continuation continuation_1 = pipeline->Produce ();
97
- Continuation continuation_2 = pipeline->ProduceToFront ();
97
+ Continuation continuation_2 = pipeline->ProduceIfEmpty ();
98
98
99
99
const int test_val_1 = 1 , test_val_2 = 2 ;
100
100
continuation_1.Complete (std::make_unique<int >(test_val_1));
101
101
continuation_2.Complete (std::make_unique<int >(test_val_2));
102
102
103
103
PipelineConsumeResult consume_result_1 = pipeline->Consume (
104
- [&test_val_2](std::unique_ptr<int > v) { ASSERT_EQ (*v, test_val_2); });
105
- ASSERT_EQ (consume_result_1, PipelineConsumeResult::MoreAvailable);
106
-
107
- PipelineConsumeResult consume_result_2 = pipeline->Consume (
108
104
[&test_val_1](std::unique_ptr<int > v) { ASSERT_EQ (*v, test_val_1); });
109
- ASSERT_EQ (consume_result_2 , PipelineConsumeResult::Done);
105
+ ASSERT_EQ (consume_result_1 , PipelineConsumeResult::Done);
110
106
}
111
107
112
- TEST (PipelineTest, PushingToFrontDropsLastResource ) {
113
- const int depth = 2 ;
108
+ TEST (PipelineTest, ProduceIfEmptySuccessfulIfQueueIsEmpty ) {
109
+ const int depth = 1 ;
114
110
fml::RefPtr<IntPipeline> pipeline = fml::MakeRefCounted<IntPipeline>(depth);
115
111
116
- Continuation continuation_1 = pipeline->Produce ();
117
- Continuation continuation_2 = pipeline->Produce ();
118
- Continuation continuation_3 = pipeline->ProduceToFront ();
112
+ Continuation continuation_1 = pipeline->ProduceIfEmpty ();
119
113
120
- const int test_val_1 = 1 , test_val_2 = 2 , test_val_3 = 3 ;
114
+ const int test_val_1 = 1 ;
121
115
continuation_1.Complete (std::make_unique<int >(test_val_1));
122
- continuation_2.Complete (std::make_unique<int >(test_val_2));
123
- continuation_3.Complete (std::make_unique<int >(test_val_3));
124
116
125
117
PipelineConsumeResult consume_result_1 = pipeline->Consume (
126
- [&test_val_3](std::unique_ptr<int > v) { ASSERT_EQ (*v, test_val_3); });
127
- ASSERT_EQ (consume_result_1, PipelineConsumeResult::MoreAvailable);
128
-
129
- PipelineConsumeResult consume_result_2 = pipeline->Consume (
130
118
[&test_val_1](std::unique_ptr<int > v) { ASSERT_EQ (*v, test_val_1); });
131
- ASSERT_EQ (consume_result_2 , PipelineConsumeResult::Done);
119
+ ASSERT_EQ (consume_result_1 , PipelineConsumeResult::Done);
132
120
}
133
121
134
122
} // namespace testing
0 commit comments