Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(408)

Side by Side Diff: third_party/tcmalloc/chromium/src/tests/malloc_extension_test.cc

Issue 7430007: Merge tcmalloc r111 (perftools v. 1.8) with the chromium/ branch. Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2008, Google Inc. 1 // Copyright (c) 2008, Google Inc.
2 // All rights reserved. 2 // All rights reserved.
3 // 3 //
4 // Redistribution and use in source and binary forms, with or without 4 // Redistribution and use in source and binary forms, with or without
5 // modification, are permitted provided that the following conditions are 5 // modification, are permitted provided that the following conditions are
6 // met: 6 // met:
7 // 7 //
8 // * Redistributions of source code must retain the above copyright 8 // * Redistributions of source code must retain the above copyright
9 // notice, this list of conditions and the following disclaimer. 9 // notice, this list of conditions and the following disclaimer.
10 // * Redistributions in binary form must reproduce the above 10 // * Redistributions in binary form must reproduce the above
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
48 ASSERT_TRUE(MallocExtension::instance()->GetNumericProperty( 48 ASSERT_TRUE(MallocExtension::instance()->GetNumericProperty(
49 "generic.current_allocated_bytes", &cxx_bytes_used)); 49 "generic.current_allocated_bytes", &cxx_bytes_used));
50 ASSERT_TRUE(MallocExtension_GetNumericProperty( 50 ASSERT_TRUE(MallocExtension_GetNumericProperty(
51 "generic.current_allocated_bytes", &c_bytes_used)); 51 "generic.current_allocated_bytes", &c_bytes_used));
52 ASSERT_GT(cxx_bytes_used, 1000); 52 ASSERT_GT(cxx_bytes_used, 1000);
53 ASSERT_EQ(cxx_bytes_used, c_bytes_used); 53 ASSERT_EQ(cxx_bytes_used, c_bytes_used);
54 54
55 ASSERT_TRUE(MallocExtension::instance()->VerifyAllMemory()); 55 ASSERT_TRUE(MallocExtension::instance()->VerifyAllMemory());
56 ASSERT_TRUE(MallocExtension_VerifyAllMemory()); 56 ASSERT_TRUE(MallocExtension_VerifyAllMemory());
57 57
58 ASSERT_EQ(MallocExtension::kOwned,
59 MallocExtension::instance()->GetOwnership(a));
60 // TODO(csilvers): this relies on undocumented behavior that
61 // GetOwnership works on stack-allocated variables. Use a better test.
62 ASSERT_EQ(MallocExtension::kNotOwned,
63 MallocExtension::instance()->GetOwnership(&cxx_bytes_used));
64 ASSERT_EQ(MallocExtension::kNotOwned,
65 MallocExtension::instance()->GetOwnership(NULL));
58 ASSERT_GE(MallocExtension::instance()->GetAllocatedSize(a), 1000); 66 ASSERT_GE(MallocExtension::instance()->GetAllocatedSize(a), 1000);
59 // This is just a sanity check. If we allocated too much, tcmalloc is broken 67 // This is just a sanity check. If we allocated too much, tcmalloc is broken
60 ASSERT_LE(MallocExtension::instance()->GetAllocatedSize(a), 5000); 68 ASSERT_LE(MallocExtension::instance()->GetAllocatedSize(a), 5000);
61 ASSERT_GE(MallocExtension::instance()->GetEstimatedAllocatedSize(1000), 1000); 69 ASSERT_GE(MallocExtension::instance()->GetEstimatedAllocatedSize(1000), 1000);
62 70
63 for (int i = 0; i < 10; ++i) { 71 for (int i = 0; i < 10; ++i) {
64 void *p = malloc(i); 72 void *p = malloc(i);
65 ASSERT_GE(MallocExtension::instance()->GetAllocatedSize(p), 73 ASSERT_GE(MallocExtension::instance()->GetAllocatedSize(p),
66 MallocExtension::instance()->GetEstimatedAllocatedSize(i)); 74 MallocExtension::instance()->GetEstimatedAllocatedSize(i));
67 free(p); 75 free(p);
68 } 76 }
69 77
70 // Check the c-shim version too. 78 // Check the c-shim version too.
79 ASSERT_EQ(MallocExtension_kOwned, MallocExtension_GetOwnership(a));
80 ASSERT_EQ(MallocExtension_kNotOwned,
81 MallocExtension_GetOwnership(&cxx_bytes_used));
82 ASSERT_EQ(MallocExtension_kNotOwned, MallocExtension_GetOwnership(NULL));
71 ASSERT_GE(MallocExtension_GetAllocatedSize(a), 1000); 83 ASSERT_GE(MallocExtension_GetAllocatedSize(a), 1000);
72 ASSERT_LE(MallocExtension_GetAllocatedSize(a), 5000); 84 ASSERT_LE(MallocExtension_GetAllocatedSize(a), 5000);
73 ASSERT_GE(MallocExtension_GetEstimatedAllocatedSize(1000), 1000); 85 ASSERT_GE(MallocExtension_GetEstimatedAllocatedSize(1000), 1000);
74 86
75 free(a); 87 free(a);
76 88
89 // Verify that the .cc file and .h file have the same enum values.
90 ASSERT_EQ(static_cast<int>(MallocExtension::kUnknownOwnership),
91 static_cast<int>(MallocExtension_kUnknownOwnership));
92 ASSERT_EQ(static_cast<int>(MallocExtension::kOwned),
93 static_cast<int>(MallocExtension_kOwned));
94 ASSERT_EQ(static_cast<int>(MallocExtension::kNotOwned),
95 static_cast<int>(MallocExtension_kNotOwned));
96
77 printf("DONE\n"); 97 printf("DONE\n");
78 return 0; 98 return 0;
79 } 99 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698