Skip to content

Commit

Permalink
test: add batch of known issue tests
Browse files Browse the repository at this point in the history
This commit adds tests for several known issues.

Refs: #1901
Refs: #728
Refs: #4778
Refs: #947
Refs: #2734
PR-URL: #5653
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
  • Loading branch information
cjihrig authored and Myles Borins committed Mar 30, 2016
1 parent 9c3c6e7 commit cc2690d
Show file tree
Hide file tree
Showing 5 changed files with 87 additions and 0 deletions.
16 changes: 16 additions & 0 deletions test/known_issues/test-child-process-max-buffer.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
'use strict';
// Refs: https://github.com/nodejs/node/issues/1901
const common = require('../common');
const assert = require('assert');
const cp = require('child_process');
const unicode = '中文测试'; // Length = 4, Byte length = 13

if (process.argv[2] === 'child') {
console.log(unicode);
} else {
const cmd = `${process.execPath} ${__filename} child`;

cp.exec(cmd, { maxBuffer: 10 }, common.mustCall((err, stdout, stderr) => {
assert.strictEqual(err.message, 'stdout maxBuffer exceeded');
}));
}
12 changes: 12 additions & 0 deletions test/known_issues/test-events-known-properties.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
'use strict';
// Refs: https://github.com/nodejs/node/issues/728
const common = require('../common');
const assert = require('assert');
const EventEmitter = require('events');
const ee = new EventEmitter();

ee.on('__proto__', common.mustCall((data) => {
assert.strictEqual(data, 42);
}));

ee.emit('__proto__', 42);
17 changes: 17 additions & 0 deletions test/known_issues/test-module-deleted-extensions.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
'use strict';
// Refs: https://github.com/nodejs/node/issues/4778
const common = require('../common');
const assert = require('assert');
const fs = require('fs');
const path = require('path');
const file = path.join(common.tmpDir, 'test-extensions.foo.bar');

common.refreshTmpDir();
fs.writeFileSync(file, '', 'utf8');
require.extensions['.foo.bar'] = (module, path) => {};
delete require.extensions['.foo.bar'];
require.extensions['.bar'] = common.mustCall((module, path) => {
assert.strictEqual(module.id, file);
assert.strictEqual(path, file);
});
require(path.join(common.tmpDir, 'test-extensions'));
23 changes: 23 additions & 0 deletions test/known_issues/test-process-external-stdio-close.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
'use strict';
// Refs: https://github.com/nodejs/node/issues/947
const common = require('../common');
const assert = require('assert');
const cp = require('child_process');

if (process.argv[2] === 'child') {
process.on('message', common.mustCall((msg) => {
assert.strictEqual(msg, 'go');
console.log('logging should not cause a crash');
process.disconnect();
}));
} else {
const child = cp.fork(__filename, ['child'], {silent: true});

child.on('close', common.mustCall((exitCode, signal) => {
assert.strictEqual(exitCode, 0);
assert.strictEqual(signal, null);
}));

child.stdout.destroy();
child.send('go');
}
19 changes: 19 additions & 0 deletions test/known_issues/test-vm-getters.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
'use strict';
// Refs: https://github.com/nodejs/node/issues/2734
require('../common');
const assert = require('assert');
const vm = require('vm');
const sandbox = {};

Object.defineProperty(sandbox, 'prop', {
get() {
return 'foo';
}
});

const descriptor = Object.getOwnPropertyDescriptor(sandbox, 'prop');
const context = vm.createContext(sandbox);
const code = 'Object.getOwnPropertyDescriptor(this, "prop");';
const result = vm.runInContext(code, context);

assert.strictEqual(result, descriptor);

0 comments on commit cc2690d

Please sign in to comment.