diff --git a/test/parallel/test-icu-minimum-version.js b/test/parallel/test-icu-minimum-version.js new file mode 100644 index 00000000000000..3daafc364ae55f --- /dev/null +++ b/test/parallel/test-icu-minimum-version.js @@ -0,0 +1,20 @@ +'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)})`);