summaryrefslogtreecommitdiff
path: root/test/cctest
diff options
context:
space:
mode:
authorAnna Henningsen <anna@addaleax.net>2018-06-10 16:40:13 +0200
committerAnna Henningsen <anna@addaleax.net>2018-07-13 19:53:15 +0200
commit57e301539bff2599974b7269a56377330c9b730e (patch)
tree6f5c866728f22bbacb8dadb89a2c8a12e5b66508 /test/cctest
parent36cc5f5caf52af895079d153a9131fe2b0c6b8f9 (diff)
downloadandroid-node-v8-57e301539bff2599974b7269a56377330c9b730e.tar.gz
android-node-v8-57e301539bff2599974b7269a56377330c9b730e.tar.bz2
android-node-v8-57e301539bff2599974b7269a56377330c9b730e.zip
src: enable more detailed memory tracking
This will enable more detailed heap snapshots based on a newer V8 API. This commit itself is not tied to that API and could be backported. PR-URL: https://github.com/nodejs/node/pull/21742 Reviewed-By: James M Snell <jasnell@gmail.com>
Diffstat (limited to 'test/cctest')
-rw-r--r--test/cctest/test_node_postmortem_metadata.cc20
1 files changed, 17 insertions, 3 deletions
diff --git a/test/cctest/test_node_postmortem_metadata.cc b/test/cctest/test_node_postmortem_metadata.cc
index b911a92c0d..e9acd629f3 100644
--- a/test/cctest/test_node_postmortem_metadata.cc
+++ b/test/cctest/test_node_postmortem_metadata.cc
@@ -34,7 +34,9 @@ class DebugSymbolsTest : public EnvironmentTestFixture {};
class TestHandleWrap : public node::HandleWrap {
public:
- size_t self_size() const override { return sizeof(*this); }
+ void MemoryInfo(node::MemoryTracker* tracker) const override {
+ tracker->TrackThis(this);
+ }
TestHandleWrap(node::Environment* env,
v8::Local<v8::Object> object,
@@ -48,7 +50,9 @@ class TestHandleWrap : public node::HandleWrap {
class TestReqWrap : public node::ReqWrap<uv_req_t> {
public:
- size_t self_size() const override { return sizeof(*this); }
+ void MemoryInfo(node::MemoryTracker* tracker) const override {
+ tracker->TrackThis(this);
+ }
TestReqWrap(node::Environment* env, v8::Local<v8::Object> object)
: node::ReqWrap<uv_req_t>(env,
@@ -67,6 +71,16 @@ TEST_F(DebugSymbolsTest, ExternalStringDataOffset) {
NODE_OFF_EXTSTR_DATA);
}
+class DummyBaseObject : public node::BaseObject {
+ public:
+ DummyBaseObject(node::Environment* env, v8::Local<v8::Object> obj) :
+ BaseObject(env, obj) {}
+
+ void MemoryInfo(node::MemoryTracker* tracker) const override {
+ tracker->TrackThis(this);
+ }
+};
+
TEST_F(DebugSymbolsTest, BaseObjectPersistentHandle) {
const v8::HandleScope handle_scope(isolate_);
const Argv argv;
@@ -77,7 +91,7 @@ TEST_F(DebugSymbolsTest, BaseObjectPersistentHandle) {
v8::Local<v8::Object> object =
obj_templ->NewInstance(env.context()).ToLocalChecked();
- node::BaseObject obj(*env, object);
+ DummyBaseObject obj(*env, object);
auto expected = reinterpret_cast<uintptr_t>(&obj.persistent());
auto calculated = reinterpret_cast<uintptr_t>(&obj) +