YARN-8437. Build oom-listener fails on older versions. (Miklos Szegedi via Haibo Chen)
This commit is contained in:
parent
2d87592fc6
commit
4939ffedb1
|
@ -188,5 +188,5 @@ add_executable(test-oom-listener
|
||||||
main/native/oom-listener/impl/oom_listener.h
|
main/native/oom-listener/impl/oom_listener.h
|
||||||
main/native/oom-listener/test/oom_listener_test_main.cc
|
main/native/oom-listener/test/oom_listener_test_main.cc
|
||||||
)
|
)
|
||||||
target_link_libraries(test-oom-listener gtest)
|
target_link_libraries(test-oom-listener gtest rt)
|
||||||
output_directory(test-oom-listener test)
|
output_directory(test-oom-listener test)
|
||||||
|
|
|
@ -20,6 +20,7 @@
|
||||||
|
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#include "oom_listener.h"
|
#include "oom_listener.h"
|
||||||
|
#include <time.h>
|
||||||
}
|
}
|
||||||
|
|
||||||
#include <gtest/gtest.h>
|
#include <gtest/gtest.h>
|
||||||
|
@ -49,10 +50,10 @@ int main(int argc, char **argv) {
|
||||||
|
|
||||||
class OOMListenerTest : public ::testing::Test {
|
class OOMListenerTest : public ::testing::Test {
|
||||||
private:
|
private:
|
||||||
char cgroup[PATH_MAX] = {};
|
char cgroup[PATH_MAX];
|
||||||
const char* cgroup_root = nullptr;
|
const char* cgroup_root;
|
||||||
public:
|
public:
|
||||||
OOMListenerTest() = default;
|
OOMListenerTest() : cgroup_root(NULL) {}
|
||||||
|
|
||||||
virtual ~OOMListenerTest() = default;
|
virtual ~OOMListenerTest() = default;
|
||||||
virtual const char* GetCGroup() { return cgroup; }
|
virtual const char* GetCGroup() { return cgroup; }
|
||||||
|
@ -99,7 +100,7 @@ public:
|
||||||
if (cgroup[0] != '\0') {
|
if (cgroup[0] != '\0') {
|
||||||
rmdir(cgroup);
|
rmdir(cgroup);
|
||||||
}
|
}
|
||||||
if (cgroup_root != nullptr &&
|
if (cgroup_root != NULL &&
|
||||||
cgroup_root != cgroup_candidates[0]) {
|
cgroup_root != cgroup_candidates[0]) {
|
||||||
rmdir(cgroup_root);
|
rmdir(cgroup_root);
|
||||||
}
|
}
|
||||||
|
@ -184,7 +185,7 @@ TEST_F(OOMListenerTest, test_oom) {
|
||||||
std::cout << "Consuming too much memory" << std::endl;
|
std::cout << "Consuming too much memory" << std::endl;
|
||||||
for (;;) {
|
for (;;) {
|
||||||
auto buffer = (char *) malloc(bufferSize);
|
auto buffer = (char *) malloc(bufferSize);
|
||||||
if (buffer != nullptr) {
|
if (buffer != NULL) {
|
||||||
for (int i = 0; i < bufferSize; ++i) {
|
for (int i = 0; i < bufferSize; ++i) {
|
||||||
buffer[i] = (char) std::rand();
|
buffer[i] = (char) std::rand();
|
||||||
}
|
}
|
||||||
|
@ -213,15 +214,15 @@ TEST_F(OOMListenerTest, test_oom) {
|
||||||
if (listener == 0) {
|
if (listener == 0) {
|
||||||
// child listener forwarding cgroup events
|
// child listener forwarding cgroup events
|
||||||
_oom_listener_descriptors descriptors = {
|
_oom_listener_descriptors descriptors = {
|
||||||
.command = "test",
|
"test",
|
||||||
.event_fd = mock_oom_event_as_user,
|
mock_oom_event_as_user,
|
||||||
.event_control_fd = -1,
|
-1,
|
||||||
.oom_control_fd = -1,
|
-1,
|
||||||
.event_control_path = {0},
|
{0},
|
||||||
.oom_control_path = {0},
|
{0},
|
||||||
.oom_command = {0},
|
{0},
|
||||||
.oom_command_len = 0,
|
0,
|
||||||
.watch_timeout = 100
|
100
|
||||||
};
|
};
|
||||||
int ret = oom_listener(&descriptors, GetCGroup(), test_pipe[1]);
|
int ret = oom_listener(&descriptors, GetCGroup(), test_pipe[1]);
|
||||||
cleanup(&descriptors);
|
cleanup(&descriptors);
|
||||||
|
@ -256,7 +257,7 @@ TEST_F(OOMListenerTest, test_oom) {
|
||||||
__pid_t exited0 = wait(mem_hog_status);
|
__pid_t exited0 = wait(mem_hog_status);
|
||||||
ASSERT_EQ(mem_hog_pid, exited0)
|
ASSERT_EQ(mem_hog_pid, exited0)
|
||||||
<< "Wrong process exited";
|
<< "Wrong process exited";
|
||||||
ASSERT_EQ(nullptr, mem_hog_status)
|
ASSERT_EQ(NULL, mem_hog_status)
|
||||||
<< "Test process killed with invalid status";
|
<< "Test process killed with invalid status";
|
||||||
|
|
||||||
if (mock_oom_event_as_user != -1) {
|
if (mock_oom_event_as_user != -1) {
|
||||||
|
@ -275,7 +276,7 @@ TEST_F(OOMListenerTest, test_oom) {
|
||||||
__pid_t exited1 = wait(oom_listener_status);
|
__pid_t exited1 = wait(oom_listener_status);
|
||||||
ASSERT_EQ(listener, exited1)
|
ASSERT_EQ(listener, exited1)
|
||||||
<< "Wrong process exited";
|
<< "Wrong process exited";
|
||||||
ASSERT_EQ(nullptr, oom_listener_status)
|
ASSERT_EQ(NULL, oom_listener_status)
|
||||||
<< "Listener process exited with invalid status";
|
<< "Listener process exited with invalid status";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue