MCPcopy Create free account
hub / github.com/catboost/catboost / Y_UNIT_TEST

Function Y_UNIT_TEST

util/system/daemon_ut.cpp:38–65  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

36 const int pagesSize = sizeof(int) * size;
37
38 Y_UNIT_TEST(WaitForMessageSocket) {
39 using namespace NDaemonMaker;
40 SOCKET sockets[2];
41 SocketPair(sockets, false, true);
42 TSocket sender(sockets[0]);
43 TSocket receiver(sockets[1]);
44
45 int status = -1;
46 int* pages = new int[size];
47
48 memset(pages, 0, pagesSize);
49 if (MakeMeDaemon(closeStdIoOnly, openDevNull, chdirNone, returnFromParent)) {
50 sender.Close();
51 UNIT_ASSERT(ProcessBuffer([&receiver](char* ptr, size_t sz) -> size_t { return receiver.Recv(ptr, sz); }, &status, sizeof(status)));
52 UNIT_ASSERT(ProcessBuffer([&receiver](char* ptr, size_t sz) -> size_t { return receiver.Recv(ptr, sz); }, pages, pagesSize));
53 UNIT_ASSERT(memchr(pages, 0, pagesSize) == nullptr);
54 } else {
55 receiver.Close();
56 status = 0;
57 UNIT_ASSERT(ProcessBuffer([&sender](char* ptr, size_t sz) -> size_t { return sender.Send(ptr, sz); }, &status, sizeof(status)));
58 memset(pages, 1, pagesSize);
59 UNIT_ASSERT(ProcessBuffer([&sender](char* ptr, size_t sz) -> size_t { return sender.Send(ptr, sz); }, pages, pagesSize));
60 exit(0);
61 }
62 UNIT_ASSERT(status == 0);
63
64 delete[] pages;
65 }
66
67 Y_UNIT_TEST(WaitForMessagePipe) {
68 using namespace NDaemonMaker;

Callers

nothing calls this directly

Calls 9

ProcessBufferFunction · 0.85
exitFunction · 0.85
SocketPairFunction · 0.50
memchrFunction · 0.50
CloseMethod · 0.45
RecvMethod · 0.45
SendMethod · 0.45
ReadMethod · 0.45
WriteMethod · 0.45

Tested by

no test coverage detected