summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAliaksey Kandratsenka <alk@tut.by>2015-08-02 01:47:55 -0700
committerAliaksey Kandratsenka <alk@tut.by>2015-08-02 18:12:16 -0700
commit73fb7c7eb37e488bab8298be4110e30d83af2184 (patch)
tree8db533da17dbba54eb302ef5953ff0958e4b8196
parenteb725ff26371dfb5ae2523802c6abe75833cacef (diff)
downloadgperftools-73fb7c7eb37e488bab8298be4110e30d83af2184.tar.gz
added test on errno = ENOMEM on out of memory
-rw-r--r--src/tests/tcmalloc_unittest.cc18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/tests/tcmalloc_unittest.cc b/src/tests/tcmalloc_unittest.cc
index 423cae1..69698bc 100644
--- a/src/tests/tcmalloc_unittest.cc
+++ b/src/tests/tcmalloc_unittest.cc
@@ -1047,6 +1047,23 @@ static void TestSetNewMode() {
tc_set_new_mode(old_mode);
}
+static void TestErrno(void) {
+ errno = 0;
+ void* ret = memalign(128, kTooBig);
+ EXPECT_EQ(NULL, ret);
+ EXPECT_EQ(ENOMEM, errno);
+
+ errno = 0;
+ ret = malloc(kTooBig);
+ EXPECT_EQ(NULL, ret);
+ EXPECT_EQ(ENOMEM, errno);
+
+ errno = 0;
+ ret = tc_malloc_skip_new_handler(kTooBig);
+ EXPECT_EQ(NULL, ret);
+ EXPECT_EQ(ENOMEM, errno);
+}
+
static int RunAllTests(int argc, char** argv) {
// Optional argv[1] is the seed
AllocatorState rnd(argc > 1 ? atoi(argv[1]) : 100);
@@ -1379,6 +1396,7 @@ static int RunAllTests(int argc, char** argv) {
TestReleaseToSystem();
TestAggressiveDecommit();
TestSetNewMode();
+ TestErrno();
return 0;
}