| '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/, |
| }); |
| } |