mirror of
https://github.com/hanzoai/bufferutil.git
synced 2026-09-24 16:57:30 +00:00
[test] Add cross-tests between native and fallback (#165)
This commit is contained in:
+40
-2
@@ -1,8 +1,12 @@
|
||||
'use strict';
|
||||
|
||||
const { deepStrictEqual } = require('assert');
|
||||
const { randomBytes } = require('crypto');
|
||||
const { join } = require('path');
|
||||
|
||||
const native = require('node-gyp-build')(join(__dirname, '..'));
|
||||
const fallback = require('../fallback');
|
||||
|
||||
function use(bufferUtil) {
|
||||
return function () {
|
||||
it('masks a buffer (1/2)', function () {
|
||||
@@ -44,5 +48,39 @@ function use(bufferUtil) {
|
||||
};
|
||||
}
|
||||
|
||||
describe('bindings', use(require('node-gyp-build')(join(__dirname, '..'))));
|
||||
describe('fallback', use(require('../fallback')));
|
||||
describe('bindings', use(native));
|
||||
describe('fallback', use(fallback));
|
||||
|
||||
describe('bindings match fallback', () => {
|
||||
const sizes = [1, 127, 128, 200, 1024, 10 * 1024 - 1, 10 * 1024]
|
||||
const offsets = [0, 1, 10, 16, 128]
|
||||
|
||||
it('masks', function () {
|
||||
for (const size of sizes) {
|
||||
for (const offset of offsets) {
|
||||
const src = randomBytes(size);
|
||||
const mask = randomBytes(4);
|
||||
const dest = randomBytes(size + offset);
|
||||
const destFallback = Buffer.from(dest);
|
||||
|
||||
native.mask(src, mask, dest, offset, size);
|
||||
fallback.mask(src, mask, destFallback, offset, size);
|
||||
|
||||
deepStrictEqual(dest, destFallback);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
it('unmasks', function () {
|
||||
for (const size of sizes) {
|
||||
const buf1 = randomBytes(size);
|
||||
const buf2 = Buffer.from(buf1);
|
||||
const mask = randomBytes(4);
|
||||
|
||||
native.unmask(buf1, mask);
|
||||
fallback.unmask(buf2, mask);
|
||||
|
||||
deepStrictEqual(buf1, buf2);
|
||||
}
|
||||
});
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user