test: add batch of known issue tests
This commit adds tests for several known issues. Refs: https://github.com/nodejs/node/issues/1901 Refs: https://github.com/nodejs/node/issues/728 Refs: https://github.com/nodejs/node/issues/4778 Refs: https://github.com/nodejs/node/issues/947 Refs: https://github.com/nodejs/node/issues/2734 PR-URL: https://github.com/nodejs/node/pull/5653 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com>
This commit is contained in:
parent
4daab7f8ed
commit
10bc673123
16
test/known_issues/test-child-process-max-buffer.js
Normal file
16
test/known_issues/test-child-process-max-buffer.js
Normal file
@ -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
test/known_issues/test-events-known-properties.js
Normal file
12
test/known_issues/test-events-known-properties.js
Normal file
@ -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
test/known_issues/test-module-deleted-extensions.js
Normal file
17
test/known_issues/test-module-deleted-extensions.js
Normal file
@ -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
test/known_issues/test-process-external-stdio-close.js
Normal file
23
test/known_issues/test-process-external-stdio-close.js
Normal file
@ -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
test/known_issues/test-vm-getters.js
Normal file
19
test/known_issues/test-vm-getters.js
Normal file
@ -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);
|
Loading…
x
Reference in New Issue
Block a user