summaryrefslogtreecommitdiff
path: root/test/addons/buffer-free-callback
diff options
context:
space:
mode:
Diffstat (limited to 'test/addons/buffer-free-callback')
-rw-r--r--test/addons/buffer-free-callback/binding.cc2
-rw-r--r--test/addons/buffer-free-callback/test.js21
2 files changed, 18 insertions, 5 deletions
diff --git a/test/addons/buffer-free-callback/binding.cc b/test/addons/buffer-free-callback/binding.cc
index a1e7773e95..e5298a0063 100644
--- a/test/addons/buffer-free-callback/binding.cc
+++ b/test/addons/buffer-free-callback/binding.cc
@@ -16,7 +16,7 @@ void Alloc(const v8::FunctionCallbackInfo<v8::Value>& args) {
args.GetReturnValue().Set(node::Buffer::New(
isolate,
buf,
- sizeof(buf),
+ args[0]->IntegerValue(),
FreeCallback,
nullptr).ToLocalChecked());
}
diff --git a/test/addons/buffer-free-callback/test.js b/test/addons/buffer-free-callback/test.js
index b95f171de2..6ee328d522 100644
--- a/test/addons/buffer-free-callback/test.js
+++ b/test/addons/buffer-free-callback/test.js
@@ -4,7 +4,20 @@
require('../../common');
var assert = require('assert');
var binding = require('./build/Release/binding');
-var buf = binding.alloc();
-var slice = buf.slice(32);
-buf = null;
-binding.check(slice);
+
+function check(size) {
+ var buf = binding.alloc(size);
+ var slice = buf.slice(size >>> 1);
+
+ buf = null;
+ binding.check(slice);
+ slice = null;
+ gc();
+ gc();
+ gc();
+}
+
+check(64);
+
+// Empty ArrayBuffer does not allocate data, worth checking
+check(0);