Skip to content

Commit 6e6740e

Browse files
authored
[test] Add cross-tests between native and fallback (#165)
1 parent 664fc87 commit 6e6740e

File tree

1 file changed

+40
-2
lines changed

1 file changed

+40
-2
lines changed

test/test.js

Lines changed: 40 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
11
'use strict';
22

33
const { deepStrictEqual } = require('assert');
4+
const { randomBytes } = require('crypto');
45
const { join } = require('path');
56

7+
const native = require('node-gyp-build')(join(__dirname, '..'));
8+
const fallback = require('../fallback');
9+
610
function use(bufferUtil) {
711
return function () {
812
it('masks a buffer (1/2)', function () {
@@ -44,5 +48,39 @@ function use(bufferUtil) {
4448
};
4549
}
4650

47-
describe('bindings', use(require('node-gyp-build')(join(__dirname, '..'))));
48-
describe('fallback', use(require('../fallback')));
51+
describe('bindings', use(native));
52+
describe('fallback', use(fallback));
53+
54+
describe('bindings match fallback', () => {
55+
const sizes = [1, 127, 128, 200, 1024, 10 * 1024 - 1, 10 * 1024]
56+
const offsets = [0, 1, 10, 16, 128]
57+
58+
it('masks', function () {
59+
for (const size of sizes) {
60+
for (const offset of offsets) {
61+
const src = randomBytes(size);
62+
const mask = randomBytes(4);
63+
const dest = randomBytes(size + offset);
64+
const destFallback = Buffer.from(dest);
65+
66+
native.mask(src, mask, dest, offset, size);
67+
fallback.mask(src, mask, destFallback, offset, size);
68+
69+
deepStrictEqual(dest, destFallback);
70+
}
71+
}
72+
});
73+
74+
it('unmasks', function () {
75+
for (const size of sizes) {
76+
const buf1 = randomBytes(size);
77+
const buf2 = Buffer.from(buf1);
78+
const mask = randomBytes(4);
79+
80+
native.unmask(buf1, mask);
81+
fallback.unmask(buf2, mask);
82+
83+
deepStrictEqual(buf1, buf2);
84+
}
85+
});
86+
})

0 commit comments

Comments
 (0)