Skip to content
This repository has been archived by the owner on Apr 22, 2023. It is now read-only.

Commit

Permalink
mdb_v8: add tests for ::findjsobjects -k KIND
Browse files Browse the repository at this point in the history
Reviewed-By: Dave Pacheco <[email protected]>
Reviewed-By: Timothy J Fontaine <[email protected]>
  • Loading branch information
Julien Gilli committed Feb 5, 2015
1 parent 4312f8d commit ebfa7e3
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 0 deletions.
19 changes: 19 additions & 0 deletions test/common.js
Original file line number Diff line number Diff line change
Expand Up @@ -305,3 +305,22 @@ exports.hasMultiLocalhost = function hasMultiLocalhost() {
t.close();
return ret === 0;
};

exports.getNodeVersion = function getNodeVersion() {
assert(typeof process.version === 'string');

var matches = process.version.match(/v(\d+).(\d+).(\d+)-?(.*)/);
assert(Array.isArray(matches));

var major = +matches[1];
var minor = +matches[2];
var patch = +matches[3];
var pre = matches[4];

return {
major: major,
minor: minor,
patch: patch,
pre: pre
};
}
24 changes: 24 additions & 0 deletions test/pummel/test-postmortem-details.js
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,8 @@ mybuffer = myTestFunction(bufstr);
mybuffer = myTestFunction(bufstr);
mybuffer.my_buffer = true;

var OBJECT_KINDS = ['dict', 'inobject', 'numeric', 'props'];
var NODE_VERSION = common.getNodeVersion();

/*
* Now we're going to fork ourselves to gcore
Expand Down Expand Up @@ -174,6 +176,24 @@ gcore.on('exit', function (code) {
assert.ok(content.indexOf('function myTestFunction()\n') != -1);
assert.ok(content.indexOf('return (new Buffer(bufstr));\n') != -1);
});
OBJECT_KINDS.forEach(function (kind) {
verifiers.push(function verifyFindObjectsKind(testLines) {
// There should be at least one object for
// every kind of objects (except for the special cases
// below)
var expectedMinimumObjs = 1;

if (kind === 'props' &&
(NODE_VERSION.major > 0 || NODE_VERSION.minor > 10)) {
// On versions > 0.10.x, currently there's no object
// with the kind 'props'. There should be, but it's a minor
// issue we're or to live with for now.
expectedMinimumObjs = 0;
}

assert.ok(testLines.length >= expectedMinimumObjs);
});
});

var mod = util.format('::load %s\n',
path.join(__dirname,
Expand Down Expand Up @@ -206,5 +226,9 @@ gcore.on('exit', function (code) {
mdb.stdin.write('::jsfunctions -n myTestFunction ! ' +
'awk \'NR == 2 {print $1}\' | head -1 > ' + tmpfile + '\n');
mdb.stdin.write('::cat ' + tmpfile + ' | ::jssource -n 0\n');
OBJECT_KINDS.forEach(function (kind) {
mdb.stdin.write(util.format('!echo test: findjsobjects -k %s\n', kind));
mdb.stdin.write(util.format('::findjsobjects -k %s\n', kind));
});
mdb.stdin.end();
});

0 comments on commit ebfa7e3

Please sign in to comment.