Skip to content

Commit f605d00

Browse files
author
kavyasrinet
authored
Fixing unbuffered test to a generic test (#8162)
* Fixing unbufered test to a generic test * Update channel_test.cc * splitting over functions * add type * fix *
1 parent 11acbe6 commit f605d00

File tree

1 file changed

+27
-20
lines changed

1 file changed

+27
-20
lines changed

paddle/framework/channel_test.cc

Lines changed: 27 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,26 @@ using paddle::framework::CloseChannel;
2525
using paddle::framework::details::Buffered;
2626
using paddle::framework::details::UnBuffered;
2727

28+
void RecevingOrderEqualToSendingOrder(Channel<int> *ch) {
29+
unsigned sum_send = 0;
30+
std::thread t([&]() {
31+
for (int i = 0; i < 5; i++) {
32+
EXPECT_EQ(ch->Send(&i), true);
33+
sum_send += i;
34+
}
35+
});
36+
for (int i = 0; i < 5; i++) {
37+
int recv;
38+
EXPECT_EQ(ch->Receive(&recv), true);
39+
EXPECT_EQ(recv, i);
40+
}
41+
42+
CloseChannel(ch);
43+
t.join();
44+
EXPECT_EQ(sum_send, 10U);
45+
delete ch;
46+
}
47+
2848
TEST(Channel, MakeAndClose) {
2949
using paddle::framework::details::Buffered;
3050
using paddle::framework::details::UnBuffered;
@@ -137,9 +157,7 @@ TEST(Channel, ReceiveFromBufferedChannelReturnResidualValuesTest) {
137157

138158
for (size_t i = 0; i < buffer_size; ++i) {
139159
EXPECT_EQ(ch->Receive(&out),
140-
false); // after receiving residual values, return zeros.
141-
// Note: we cannot check EXPECT_EQ(out, 0), because C++ doesn't
142-
// define zero values like Go does.
160+
false); // receiving on closed channel should return false
143161
}
144162
delete ch;
145163
}
@@ -166,25 +184,14 @@ TEST(Channel, ConcurrentSendNonConcurrentReceiveWithSufficientBufferSize) {
166184
delete ch;
167185
}
168186

169-
TEST(Channel, SimpleUnbufferedChannelTest) {
187+
TEST(Channel, RecevingOrderEqualToSendingOrderWithUnBufferedChannel) {
170188
auto ch = MakeChannel<int>(0);
171-
unsigned sum_send = 0;
172-
std::thread t([&]() {
173-
for (int i = 0; i < 5; i++) {
174-
EXPECT_EQ(ch->Send(&i), true);
175-
sum_send += i;
176-
}
177-
});
178-
for (int i = 0; i < 5; i++) {
179-
int recv;
180-
EXPECT_EQ(ch->Receive(&recv), true);
181-
EXPECT_EQ(recv, i);
182-
}
189+
RecevingOrderEqualToSendingOrder(ch);
190+
}
183191

184-
CloseChannel(ch);
185-
t.join();
186-
EXPECT_EQ(sum_send, 10U);
187-
delete ch;
192+
TEST(Channel, RecevingOrderEqualToSendingOrderWithBufferedChannel) {
193+
auto ch = MakeChannel<int>(10);
194+
RecevingOrderEqualToSendingOrder(ch);
188195
}
189196

190197
// This tests that closing a buffered channel also unblocks

0 commit comments

Comments
 (0)