未验证 提交 f605d00f 编写于 作者: K kavyasrinet 提交者: GitHub

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 *
上级 11acbe68
...@@ -25,6 +25,26 @@ using paddle::framework::CloseChannel; ...@@ -25,6 +25,26 @@ using paddle::framework::CloseChannel;
using paddle::framework::details::Buffered; using paddle::framework::details::Buffered;
using paddle::framework::details::UnBuffered; using paddle::framework::details::UnBuffered;
void RecevingOrderEqualToSendingOrder(Channel<int> *ch) {
unsigned sum_send = 0;
std::thread t([&]() {
for (int i = 0; i < 5; i++) {
EXPECT_EQ(ch->Send(&i), true);
sum_send += i;
}
});
for (int i = 0; i < 5; i++) {
int recv;
EXPECT_EQ(ch->Receive(&recv), true);
EXPECT_EQ(recv, i);
}
CloseChannel(ch);
t.join();
EXPECT_EQ(sum_send, 10U);
delete ch;
}
TEST(Channel, MakeAndClose) { TEST(Channel, MakeAndClose) {
using paddle::framework::details::Buffered; using paddle::framework::details::Buffered;
using paddle::framework::details::UnBuffered; using paddle::framework::details::UnBuffered;
...@@ -137,9 +157,7 @@ TEST(Channel, ReceiveFromBufferedChannelReturnResidualValuesTest) { ...@@ -137,9 +157,7 @@ TEST(Channel, ReceiveFromBufferedChannelReturnResidualValuesTest) {
for (size_t i = 0; i < buffer_size; ++i) { for (size_t i = 0; i < buffer_size; ++i) {
EXPECT_EQ(ch->Receive(&out), EXPECT_EQ(ch->Receive(&out),
false); // after receiving residual values, return zeros. false); // receiving on closed channel should return false
// Note: we cannot check EXPECT_EQ(out, 0), because C++ doesn't
// define zero values like Go does.
} }
delete ch; delete ch;
} }
...@@ -166,25 +184,14 @@ TEST(Channel, ConcurrentSendNonConcurrentReceiveWithSufficientBufferSize) { ...@@ -166,25 +184,14 @@ TEST(Channel, ConcurrentSendNonConcurrentReceiveWithSufficientBufferSize) {
delete ch; delete ch;
} }
TEST(Channel, SimpleUnbufferedChannelTest) { TEST(Channel, RecevingOrderEqualToSendingOrderWithUnBufferedChannel) {
auto ch = MakeChannel<int>(0); auto ch = MakeChannel<int>(0);
unsigned sum_send = 0; RecevingOrderEqualToSendingOrder(ch);
std::thread t([&]() { }
for (int i = 0; i < 5; i++) {
EXPECT_EQ(ch->Send(&i), true);
sum_send += i;
}
});
for (int i = 0; i < 5; i++) {
int recv;
EXPECT_EQ(ch->Receive(&recv), true);
EXPECT_EQ(recv, i);
}
CloseChannel(ch); TEST(Channel, RecevingOrderEqualToSendingOrderWithBufferedChannel) {
t.join(); auto ch = MakeChannel<int>(10);
EXPECT_EQ(sum_send, 10U); RecevingOrderEqualToSendingOrder(ch);
delete ch;
} }
// This tests that closing a buffered channel also unblocks // This tests that closing a buffered channel also unblocks
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册