Verify platform of vendor binaries at install and run time

This commit is contained in:
Lovell Fuller
2017-09-26 19:06:40 +01:00
parent 57946ed672
commit 7b6c80327e
4 changed files with 131 additions and 67 deletions

47
test/unit/platform.js Normal file
View File

@@ -0,0 +1,47 @@
'use strict';
const assert = require('assert');
const platform = require('../../lib/platform');
describe('Platform-detection', function () {
it('Can override arch with npm_config_arch', function () {
process.env.npm_config_arch = 'test';
assert.strictEqual('test', platform().split('-')[1]);
delete process.env.npm_config_arch;
});
it('Can override platform with npm_config_platform', function () {
process.env.npm_config_platform = 'test';
assert.strictEqual('test', platform().split('-')[0]);
delete process.env.npm_config_platform;
});
it('Can override ARM version via npm_config_armv', function () {
process.env.npm_config_arch = 'arm';
process.env.npm_config_armv = 'test';
assert.strictEqual('armvtest', platform().split('-')[1]);
delete process.env.npm_config_armv;
delete process.env.npm_config_arch;
});
it('Can detect ARM version via process.config', function () {
process.env.npm_config_arch = 'armhf';
const armVersion = process.config.variables.arm_version;
process.config.variables.arm_version = 'test';
assert.strictEqual('armvtest', platform().split('-')[1]);
process.config.variables.arm_version = armVersion;
delete process.env.npm_config_arch;
});
it('Defaults to ARMv6 for 32-bit', function () {
process.env.npm_config_arch = 'arm';
assert.strictEqual('armv6', platform().split('-')[1]);
delete process.env.npm_config_arch;
});
it('Defaults to ARMv8 for 64-bit', function () {
process.env.npm_config_arch = 'arm64';
assert.strictEqual('armv8', platform().split('-')[1]);
delete process.env.npm_config_arch;
});
});