node/test/parallel/test-compile-cache-bad-synt...

55 lines
1.4 KiB
JavaScript

'use strict';
// This tests NODE_COMPILE_CACHE works.
require('../common');
const { spawnSyncAndExit } = require('../common/child_process');
const fixtures = require('../common/fixtures');
const tmpdir = require('../common/tmpdir');
const assert = require('assert');
const fs = require('fs');
const path = require('path');
{
// Test that it throws if the script fails to parse, and no cache is created.
tmpdir.refresh();
const dir = tmpdir.resolve('.compile_cache_dir');
spawnSyncAndExit(
process.execPath,
[fixtures.path('syntax', 'bad_syntax.js')],
{
env: {
...process.env,
NODE_DEBUG_NATIVE: 'COMPILE_CACHE',
NODE_COMPILE_CACHE: dir
},
cwd: tmpdir.path
},
{
status: 1,
stderr: /skip .*bad_syntax\.js because the cache was not initialized/,
});
const cacheDir = fs.readdirSync(dir);
assert.strictEqual(cacheDir.length, 1);
const entries = fs.readdirSync(path.join(dir, cacheDir[0]));
assert.strictEqual(entries.length, 0);
spawnSyncAndExit(
process.execPath,
[fixtures.path('syntax', 'bad_syntax.mjs')],
{
env: {
...process.env,
NODE_DEBUG_NATIVE: 'COMPILE_CACHE',
NODE_COMPILE_CACHE: dir
},
cwd: tmpdir.path
},
{
status: 1,
stderr: /skip .*bad_syntax\.mjs because the cache was not initialized/,
});
}