node/test/parallel/test-icu-minimum-version.js
Richard Lau f2060fa9e6
test: test for minimum ICU version consistency
The minimum ICU version for Node.js must be at least the minimum ICU
version for V8.

PR-URL: https://github.com/nodejs/node/pull/30608
Refs: https://github.com/nodejs/node/pull/30607
Reviewed-By: Steven R Loomis <srloomis@us.ibm.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2019-11-25 19:39:54 -05:00

21 lines
888 B
JavaScript

'use strict';
// Tests that the minimum ICU version for Node.js is at least the minimum ICU
// version for V8.
require('../common');
const assert = require('assert');
const path = require('path');
const { readFileSync } = require('fs');
const srcRoot = path.join(__dirname, '..', '..');
const icuVersionsFile = path.join(srcRoot, 'tools', 'icu', 'icu_versions.json');
const { minimum_icu: minimumICU } = require(icuVersionsFile);
const v8SrcFile = path.join(srcRoot,
'deps', 'v8', 'src', 'objects', 'intl-objects.h');
const v8Src = readFileSync(v8SrcFile, { encoding: 'utf8' });
const v8MinimumICU = v8Src.match(/#define\s+V8_MINIMUM_ICU_VERSION\s+(\d+)/)[1];
assert.ok(minimumICU >= Number(v8MinimumICU),
`minimum ICU version in ${icuVersionsFile} (${minimumICU}) ` +
`must be at least that in ${v8SrcFile} (${Number(v8MinimumICU)})`);