diff --git a/Makefile b/Makefile index 9c5b36d088b..3291a94d2c8 100644 --- a/Makefile +++ b/Makefile @@ -509,16 +509,24 @@ SQLITE_BINDING_SOURCES := \ $(wildcard test/sqlite/*/*.c) # Implicitly depends on $(NODE_EXE), see the build-sqlite-tests rule for rationale. +ifndef NOSQLITE test/sqlite/.buildstamp: $(ADDONS_PREREQS) \ $(SQLITE_BINDING_GYPS) $(SQLITE_BINDING_SOURCES) @$(call run_build_addons,"$$PWD/test/sqlite",$@) +else +test/sqlite/.buildstamp: +endif .PHONY: build-sqlite-tests +ifndef NOSQLITE # .buildstamp needs $(NODE_EXE) but cannot depend on it # directly because it calls make recursively. The parent make cannot know # if the subprocess touched anything so it pessimistically assumes that # .buildstamp is out of date and need a rebuild. build-sqlite-tests: | $(NODE_EXE) test/sqlite/.buildstamp ## Build SQLite tests. +else +build-sqlite-tests: +endif .PHONY: clear-stalled clear-stalled: ## Clear any stalled processes. diff --git a/configure.py b/configure.py index 891abbfc668..b9c449aaeec 100755 --- a/configure.py +++ b/configure.py @@ -864,6 +864,12 @@ parser.add_argument('--without-node-options', default=None, help='build without NODE_OPTIONS support') +parser.add_argument('--without-sqlite', + action='store_true', + dest='without_sqlite', + default=None, + help='build without SQLite (disables SQLite and Web Stoage API)') + parser.add_argument('--ninja', action='store_true', dest='use_ninja', @@ -1827,6 +1833,16 @@ def configure_openssl(o): configure_library('openssl', o) +def configure_sqlite(o): + o['variables']['node_use_sqlite'] = b(not options.without_sqlite) + if options.without_sqlite: + def without_sqlite_error(option): + error(f'--without-sqlite is incompatible with {option}') + if options.shared_sqlite: + without_sqlite_error('--shared-sqlite') + return + + configure_library('sqlite', o, pkgname='sqlite3') def configure_static(o): if options.fully_static or options.partly_static: @@ -2270,7 +2286,7 @@ configure_library('cares', output, pkgname='libcares') configure_library('nghttp2', output, pkgname='libnghttp2') configure_library('nghttp3', output, pkgname='libnghttp3') configure_library('ngtcp2', output, pkgname='libngtcp2') -configure_library('sqlite', output, pkgname='sqlite3') +configure_sqlite(output); configure_library('uvwasi', output, pkgname='libuvwasi') configure_library('zstd', output, pkgname='libzstd') configure_v8(output, configurations) diff --git a/node.gyp b/node.gyp index ad010a8d99c..244cfa5d12b 100644 --- a/node.gyp +++ b/node.gyp @@ -25,6 +25,7 @@ 'node_shared_uvwasi%': 'false', 'node_shared_nghttp2%': 'false', 'node_use_openssl%': 'true', + 'node_use_sqlite%': 'true', 'node_shared_openssl%': 'false', 'node_v8_options%': '', 'node_enable_v8_vtunejit%': 'false', @@ -140,7 +141,6 @@ 'src/node_shadow_realm.cc', 'src/node_snapshotable.cc', 'src/node_sockaddr.cc', - 'src/node_sqlite.cc', 'src/node_stat_watcher.cc', 'src/node_symbols.cc', 'src/node_task_queue.cc', @@ -153,7 +153,6 @@ 'src/node_wasi.cc', 'src/node_wasm_web_api.cc', 'src/node_watchdog.cc', - 'src/node_webstorage.cc', 'src/node_worker.cc', 'src/node_zlib.cc', 'src/path.cc', @@ -273,7 +272,6 @@ 'src/node_snapshot_builder.h', 'src/node_sockaddr.h', 'src/node_sockaddr-inl.h', - 'src/node_sqlite.h', 'src/node_stat_watcher.h', 'src/node_union_bytes.h', 'src/node_url.h', @@ -282,7 +280,6 @@ 'src/node_v8_platform-inl.h', 'src/node_wasi.h', 'src/node_watchdog.h', - 'src/node_webstorage.h', 'src/node_worker.h', 'src/path.h', 'src/permission/child_process_permission.h', @@ -415,6 +412,12 @@ 'test/cctest/test_inspector_socket.cc', 'test/cctest/test_inspector_socket_server.cc', ], + 'node_sqlite_sources': [ + 'src/node_sqlite.cc', + 'src/node_webstorage.cc', + 'src/node_sqlite.h', + 'src/node_webstorage.h', + ], 'node_mksnapshot_exec': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)node_mksnapshot<(EXECUTABLE_SUFFIX)', 'node_js2c_exec': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)node_js2c<(EXECUTABLE_SUFFIX)', 'conditions': [ @@ -899,6 +902,12 @@ 'src/node_snapshot_stub.cc', ] }], + [ 'node_use_sqlite=="true"', { + 'sources': [ + '<@(node_sqlite_sources)', + ], + 'defines': [ 'HAVE_SQLITE=1' ], + }], [ 'node_shared=="true" and node_module_version!="" and OS!="win"', { 'product_extension': '<(shlib_suffix)', 'xcode_settings': { @@ -943,6 +952,12 @@ 'deps/ncrypto/ncrypto.gyp:ncrypto', ], }], + [ 'node_use_sqlite=="true"', { + 'sources': [ + '<@(node_sqlite_sources)', + ], + 'defines': [ 'HAVE_SQLITE=1' ], + }], [ 'OS in "linux freebsd mac solaris" and ' 'target_arch=="x64" and ' 'node_target_type=="executable"', { diff --git a/node.gypi b/node.gypi index 17d09d0feb3..a557d930241 100644 --- a/node.gypi +++ b/node.gypi @@ -236,7 +236,7 @@ 'dependencies': [ 'deps/brotli/brotli.gyp:brotli' ], }], - [ 'node_shared_sqlite=="false"', { + [ 'node_use_sqlite=="true" and node_shared_sqlite=="false"', { 'dependencies': [ 'deps/sqlite/sqlite.gyp:sqlite' ], }], diff --git a/src/node_binding.cc b/src/node_binding.cc index 6c337232149..aa4213c3622 100644 --- a/src/node_binding.cc +++ b/src/node_binding.cc @@ -74,7 +74,6 @@ V(serdes) \ V(signal_wrap) \ V(spawn_sync) \ - V(sqlite) \ V(stream_pipe) \ V(stream_wrap) \ V(string_decoder) \ @@ -93,7 +92,6 @@ V(wasi) \ V(wasm_web_api) \ V(watchdog) \ - V(webstorage) \ V(worker) \ V(zlib) @@ -103,7 +101,8 @@ NODE_BUILTIN_ICU_BINDINGS(V) \ NODE_BUILTIN_PROFILER_BINDINGS(V) \ NODE_BUILTIN_DEBUG_BINDINGS(V) \ - NODE_BUILTIN_QUIC_BINDINGS(V) + NODE_BUILTIN_QUIC_BINDINGS(V) \ + NODE_BUILTIN_SQLITE_BINDINGS(V) // This is used to load built-in bindings. Instead of using // __attribute__((constructor)), we call the _register_ diff --git a/src/node_binding.h b/src/node_binding.h index eb1364cb01a..611f38ef5e2 100644 --- a/src/node_binding.h +++ b/src/node_binding.h @@ -36,6 +36,14 @@ static_assert(static_cast(NM_F_LINKED) == #define NODE_BUILTIN_QUIC_BINDINGS(V) #endif +#if HAVE_SQLITE +#define NODE_BUILTIN_SQLITE_BINDINGS(V) \ + V(sqlite) \ + V(webstorage) +#else +#define NODE_BUILTIN_SQLITE_BINDINGS(V) +#endif + #define NODE_BINDINGS_WITH_PER_ISOLATE_INIT(V) \ V(async_wrap) \ V(blob) \ diff --git a/src/node_builtins.cc b/src/node_builtins.cc index defb657a62a..092341dbfba 100644 --- a/src/node_builtins.cc +++ b/src/node_builtins.cc @@ -145,6 +145,9 @@ BuiltinLoader::BuiltinCategories BuiltinLoader::GetBuiltinCategories() const { "sqlite", // Experimental. "sys", // Deprecated. "wasi", // Experimental. +#if !HAVE_SQLITE + "internal/webstorage", // Experimental. +#endif "internal/test/binding", "internal/v8_prof_polyfill", "internal/v8_prof_processor", }; diff --git a/src/node_metadata.cc b/src/node_metadata.cc index eea6686321a..64b378969d2 100644 --- a/src/node_metadata.cc +++ b/src/node_metadata.cc @@ -11,7 +11,9 @@ #include "node.h" #include "simdjson.h" #include "simdutf.h" +#if HAVE_SQLITE #include "sqlite3.h" +#endif // HAVE_SQLITE #include "undici_version.h" #include "util.h" #include "uv.h" @@ -152,7 +154,9 @@ Metadata::Versions::Versions() { simdjson = SIMDJSON_VERSION; simdutf = SIMDUTF_VERSION; +#if HAVE_SQLITE sqlite = SQLITE_VERSION; +#endif // HAVE_SQLITE ada = ADA_VERSION; nbytes = NBYTES_VERSION; } diff --git a/src/node_metadata.h b/src/node_metadata.h index 6f8cb433ff8..7b2072ad39c 100644 --- a/src/node_metadata.h +++ b/src/node_metadata.h @@ -55,7 +55,6 @@ namespace node { V(acorn) \ V(simdjson) \ V(simdutf) \ - V(sqlite) \ V(ada) \ V(nbytes) \ NODE_VERSIONS_KEY_AMARO(V) \ @@ -86,11 +85,18 @@ namespace node { #define NODE_VERSIONS_KEY_QUIC(V) #endif +#if HAVE_SQLITE +#define NODE_VERSIONS_KEY_SQLITE(V) V(sqlite) +#else +#define NODE_VERSIONS_KEY_SQLITE(V) +#endif + #define NODE_VERSIONS_KEYS(V) \ NODE_VERSIONS_KEYS_BASE(V) \ NODE_VERSIONS_KEY_CRYPTO(V) \ NODE_VERSIONS_KEY_INTL(V) \ - NODE_VERSIONS_KEY_QUIC(V) + NODE_VERSIONS_KEY_QUIC(V) \ + NODE_VERSIONS_KEY_SQLITE(V) class Metadata { public: diff --git a/test/common/README.md b/test/common/README.md index 720ff33fd60..a5b90abf1f0 100644 --- a/test/common/README.md +++ b/test/common/README.md @@ -257,6 +257,12 @@ Indicates if [internationalization][] is supported. Indicates whether `IPv6` is supported on this platform. +### `hasSQLite` + +* [\][] + +Indicates whether SQLite is available. + ### `inFreeBSDJail` * [\][] @@ -481,6 +487,11 @@ at `tools/eslint/node_modules/eslint` Skip the rest of the tests in the current file when the Inspector was disabled at compile time. +### `skipIfSQLiteMissing()` + +Skip the rest of the tests in the current file when the SQLite +was disabled at compile time. + ### `skipIf32Bits()` Skip the rest of the tests in the current file when the Node.js executable diff --git a/test/common/index.js b/test/common/index.js old mode 100644 new mode 100755 index 8f5af57a83d..1cd23e93542 --- a/test/common/index.js +++ b/test/common/index.js @@ -54,6 +54,8 @@ const noop = () => {}; const hasCrypto = Boolean(process.versions.openssl) && !process.env.NODE_SKIP_CRYPTO; +const hasSQLite = Boolean(process.versions.sqlite); + const hasQuic = hasCrypto && !!process.config.variables.openssl_quic; function parseTestFlags(filename = process.argv[1]) { @@ -682,6 +684,12 @@ function skipIf32Bits() { } } +function skipIfSQLiteMissing() { + if (!hasSQLite) { + skip('missing SQLite'); + } +} + function getArrayBufferViews(buf) { const { buffer, byteOffset, byteLength } = buf; @@ -883,6 +891,7 @@ const common = { hasIntl, hasCrypto, hasQuic, + hasSQLite, invalidArgTypeHelper, isAlive, isASan, @@ -912,6 +921,7 @@ const common = { skipIf32Bits, skipIfEslintMissing, skipIfInspectorDisabled, + skipIfSQLiteMissing, spawnPromisified, get enoughTestMem() { diff --git a/test/common/index.mjs b/test/common/index.mjs index dd0adadcb28..51f4bb222b6 100644 --- a/test/common/index.mjs +++ b/test/common/index.mjs @@ -16,6 +16,7 @@ const { getBufferSources, getTTYfd, hasCrypto, + hasSQLite, hasIntl, hasIPv6, isAIX, @@ -44,6 +45,7 @@ const { skipIf32Bits, skipIfEslintMissing, skipIfInspectorDisabled, + skipIfSQLiteMissing, spawnPromisified, } = common; @@ -64,6 +66,7 @@ export { getPort, getTTYfd, hasCrypto, + hasSQLite, hasIntl, hasIPv6, isAIX, @@ -92,5 +95,6 @@ export { skipIf32Bits, skipIfEslintMissing, skipIfInspectorDisabled, + skipIfSQLiteMissing, spawnPromisified, }; diff --git a/test/fixtures/rc/non-readable/node.config.json b/test/fixtures/rc/non-readable/node.config.json old mode 100755 new mode 100644 diff --git a/test/parallel/test-config-file.js b/test/parallel/test-config-file.js index 3e3ed7f2b9f..2b672158a54 100644 --- a/test/parallel/test-config-file.js +++ b/test/parallel/test-config-file.js @@ -1,6 +1,7 @@ 'use strict'; -const { spawnPromisified } = require('../common'); +const { spawnPromisified, skipIfSQLiteMissing } = require('../common'); +skipIfSQLiteMissing(); const fixtures = require('../common/fixtures'); const { match, strictEqual } = require('node:assert'); const { test } = require('node:test'); diff --git a/test/parallel/test-permission-sqlite-load-extension.js b/test/parallel/test-permission-sqlite-load-extension.js index 1e6f7426ed9..def6f3d1269 100644 --- a/test/parallel/test-permission-sqlite-load-extension.js +++ b/test/parallel/test-permission-sqlite-load-extension.js @@ -1,5 +1,6 @@ 'use strict'; const common = require('../common'); +common.skipIfSQLiteMissing(); const assert = require('node:assert'); const code = `const sqlite = require('node:sqlite'); diff --git a/test/parallel/test-process-get-builtin.mjs b/test/parallel/test-process-get-builtin.mjs index f22cf8a1a47..03165c4b2e6 100644 --- a/test/parallel/test-process-get-builtin.mjs +++ b/test/parallel/test-process-get-builtin.mjs @@ -1,4 +1,4 @@ -import { hasCrypto, hasIntl } from '../common/index.mjs'; +import { hasCrypto, hasIntl, hasSQLite } from '../common/index.mjs'; import assert from 'node:assert'; import { builtinModules } from 'node:module'; import { isMainThread } from 'node:worker_threads'; @@ -37,6 +37,10 @@ if (!hasIntl) { publicBuiltins.delete('trace_events'); } +if (!hasSQLite) { + publicBuiltins.delete('node:sqlite'); +} + for (const id of publicBuiltins) { assert.strictEqual(process.getBuiltinModule(id), require(id)); } diff --git a/test/parallel/test-process-versions.js b/test/parallel/test-process-versions.js index c22981afa36..82b08567993 100644 --- a/test/parallel/test-process-versions.js +++ b/test/parallel/test-process-versions.js @@ -21,12 +21,12 @@ const expected_keys = [ 'acorn', 'simdjson', 'simdutf', - 'sqlite', 'ada', 'cjs_module_lexer', 'nbytes', ]; + const hasUndici = process.config.variables.node_builtin_shareable_builtins.includes('deps/undici/undici.js'); const hasAmaro = process.config.variables.node_builtin_shareable_builtins.includes('deps/amaro/dist/index.js'); @@ -56,6 +56,10 @@ if (common.hasIntl) { expected_keys.push('unicode'); } +if (common.hasSQLite) { + expected_keys.push('sqlite'); +} + expected_keys.sort(); expected_keys.unshift('node'); diff --git a/test/parallel/test-sqlite-aggregate-function.mjs b/test/parallel/test-sqlite-aggregate-function.mjs index 065f8806c56..050705c771e 100644 --- a/test/parallel/test-sqlite-aggregate-function.mjs +++ b/test/parallel/test-sqlite-aggregate-function.mjs @@ -1,6 +1,7 @@ -import '../common/index.mjs'; -import { DatabaseSync } from 'node:sqlite'; +import { skipIfSQLiteMissing } from '../common/index.mjs'; import { describe, test } from 'node:test'; +skipIfSQLiteMissing(); +const { DatabaseSync } = await import('node:sqlite'); describe('DatabaseSync.prototype.aggregate()', () => { describe('input validation', () => { diff --git a/test/parallel/test-sqlite-backup.mjs b/test/parallel/test-sqlite-backup.mjs index 9dd5af8202f..693a2dcb337 100644 --- a/test/parallel/test-sqlite-backup.mjs +++ b/test/parallel/test-sqlite-backup.mjs @@ -1,9 +1,10 @@ -import '../common/index.mjs'; +import { skipIfSQLiteMissing } from '../common/index.mjs'; import tmpdir from '../common/tmpdir.js'; import { join } from 'node:path'; -import { backup, DatabaseSync } from 'node:sqlite'; import { describe, test } from 'node:test'; import { writeFileSync } from 'node:fs'; +skipIfSQLiteMissing(); +const { backup, DatabaseSync } = await import('node:sqlite'); let cnt = 0; diff --git a/test/parallel/test-sqlite-custom-functions.js b/test/parallel/test-sqlite-custom-functions.js index b509ebb3d4c..d535cda821e 100644 --- a/test/parallel/test-sqlite-custom-functions.js +++ b/test/parallel/test-sqlite-custom-functions.js @@ -1,5 +1,6 @@ 'use strict'; -require('../common'); +const { skipIfSQLiteMissing } = require('../common'); +skipIfSQLiteMissing(); const assert = require('node:assert'); const { DatabaseSync } = require('node:sqlite'); const { suite, test } = require('node:test'); diff --git a/test/parallel/test-sqlite-data-types.js b/test/parallel/test-sqlite-data-types.js index 75f1257f4d0..590c6d5bdc1 100644 --- a/test/parallel/test-sqlite-data-types.js +++ b/test/parallel/test-sqlite-data-types.js @@ -1,5 +1,6 @@ 'use strict'; -require('../common'); +const { skipIfSQLiteMissing } = require('../common'); +skipIfSQLiteMissing(); const tmpdir = require('../common/tmpdir'); const { join } = require('node:path'); const { DatabaseSync } = require('node:sqlite'); diff --git a/test/parallel/test-sqlite-database-sync-dispose.js b/test/parallel/test-sqlite-database-sync-dispose.js index 6b0dd09102b..67a1ab6757b 100644 --- a/test/parallel/test-sqlite-database-sync-dispose.js +++ b/test/parallel/test-sqlite-database-sync-dispose.js @@ -1,5 +1,6 @@ 'use strict'; -require('../common'); +const { skipIfSQLiteMissing } = require('../common'); +skipIfSQLiteMissing(); const tmpdir = require('../common/tmpdir'); const assert = require('node:assert'); const { join } = require('node:path'); diff --git a/test/parallel/test-sqlite-database-sync.js b/test/parallel/test-sqlite-database-sync.js index 1cfdf9a9d6b..b7a6718cd99 100644 --- a/test/parallel/test-sqlite-database-sync.js +++ b/test/parallel/test-sqlite-database-sync.js @@ -1,5 +1,6 @@ 'use strict'; -require('../common'); +const { skipIfSQLiteMissing } = require('../common'); +skipIfSQLiteMissing(); const tmpdir = require('../common/tmpdir'); const { existsSync } = require('node:fs'); const { join } = require('node:path'); diff --git a/test/parallel/test-sqlite-named-parameters.js b/test/parallel/test-sqlite-named-parameters.js index c9f71fa452f..e1acd0f38fa 100644 --- a/test/parallel/test-sqlite-named-parameters.js +++ b/test/parallel/test-sqlite-named-parameters.js @@ -1,5 +1,6 @@ 'use strict'; -require('../common'); +const { skipIfSQLiteMissing } = require('../common'); +skipIfSQLiteMissing(); const tmpdir = require('../common/tmpdir'); const { join } = require('node:path'); const { DatabaseSync } = require('node:sqlite'); diff --git a/test/parallel/test-sqlite-session.js b/test/parallel/test-sqlite-session.js index 5cba37e337e..121e27ec3e5 100644 --- a/test/parallel/test-sqlite-session.js +++ b/test/parallel/test-sqlite-session.js @@ -1,6 +1,7 @@ // Flags: --experimental-sqlite 'use strict'; -require('../common'); +const { skipIfSQLiteMissing } = require('../common'); +skipIfSQLiteMissing(); const { DatabaseSync, constants, diff --git a/test/parallel/test-sqlite-statement-sync-columns.js b/test/parallel/test-sqlite-statement-sync-columns.js index 0d3bf2ed4dd..a0c3fbd7434 100644 --- a/test/parallel/test-sqlite-statement-sync-columns.js +++ b/test/parallel/test-sqlite-statement-sync-columns.js @@ -1,5 +1,6 @@ 'use strict'; -require('../common'); +const { skipIfSQLiteMissing } = require('../common'); +skipIfSQLiteMissing(); const assert = require('node:assert'); const { DatabaseSync } = require('node:sqlite'); const { suite, test } = require('node:test'); diff --git a/test/parallel/test-sqlite-statement-sync.js b/test/parallel/test-sqlite-statement-sync.js index 235c50ecec9..858a1486601 100644 --- a/test/parallel/test-sqlite-statement-sync.js +++ b/test/parallel/test-sqlite-statement-sync.js @@ -1,6 +1,7 @@ // Flags: --expose-gc 'use strict'; -require('../common'); +const { skipIfSQLiteMissing } = require('../common'); +skipIfSQLiteMissing(); const tmpdir = require('../common/tmpdir'); const { join } = require('node:path'); const { DatabaseSync, StatementSync } = require('node:sqlite'); diff --git a/test/parallel/test-sqlite-timeout.js b/test/parallel/test-sqlite-timeout.js index d4ce828f19b..aa3fdae6760 100644 --- a/test/parallel/test-sqlite-timeout.js +++ b/test/parallel/test-sqlite-timeout.js @@ -1,5 +1,6 @@ 'use strict'; -require('../common'); +const { skipIfSQLiteMissing } = require('../common'); +skipIfSQLiteMissing(); const tmpdir = require('../common/tmpdir'); const { join } = require('node:path'); const { DatabaseSync } = require('node:sqlite'); diff --git a/test/parallel/test-sqlite-transactions.js b/test/parallel/test-sqlite-transactions.js index 304d27d3f3c..50b47829aca 100644 --- a/test/parallel/test-sqlite-transactions.js +++ b/test/parallel/test-sqlite-transactions.js @@ -1,5 +1,6 @@ 'use strict'; -require('../common'); +const { skipIfSQLiteMissing } = require('../common'); +skipIfSQLiteMissing(); const tmpdir = require('../common/tmpdir'); const { join } = require('node:path'); const { DatabaseSync } = require('node:sqlite'); diff --git a/test/parallel/test-sqlite-typed-array-and-data-view.js b/test/parallel/test-sqlite-typed-array-and-data-view.js index 1cc75c541b6..71d7b181a3d 100644 --- a/test/parallel/test-sqlite-typed-array-and-data-view.js +++ b/test/parallel/test-sqlite-typed-array-and-data-view.js @@ -1,5 +1,6 @@ 'use strict'; -require('../common'); +const { skipIfSQLiteMissing } = require('../common'); +skipIfSQLiteMissing(); const tmpdir = require('../common/tmpdir'); const { join } = require('node:path'); const { DatabaseSync } = require('node:sqlite'); diff --git a/test/parallel/test-sqlite.js b/test/parallel/test-sqlite.js index 578dd9c03d5..717c757c6bf 100644 --- a/test/parallel/test-sqlite.js +++ b/test/parallel/test-sqlite.js @@ -1,5 +1,6 @@ 'use strict'; -const { spawnPromisified } = require('../common'); +const { spawnPromisified, skipIfSQLiteMissing } = require('../common'); +skipIfSQLiteMissing(); const tmpdir = require('../common/tmpdir'); const { join } = require('node:path'); const { DatabaseSync, constants } = require('node:sqlite'); diff --git a/test/parallel/test-webstorage.js b/test/parallel/test-webstorage.js index 7f9fe8dfa53..9f9070df430 100644 --- a/test/parallel/test-webstorage.js +++ b/test/parallel/test-webstorage.js @@ -1,11 +1,11 @@ 'use strict'; -const common = require('../common'); +const { skipIfSQLiteMissing, spawnPromisified } = require('../common'); +skipIfSQLiteMissing(); const tmpdir = require('../common/tmpdir'); const assert = require('node:assert'); const { join } = require('node:path'); const { readdir } = require('node:fs/promises'); const { test, describe } = require('node:test'); -const { spawnPromisified } = common; let cnt = 0; tmpdir.refresh(); diff --git a/test/wpt/test-webstorage.js b/test/wpt/test-webstorage.js index 6dc2a0369d5..490fac8ed7e 100644 --- a/test/wpt/test-webstorage.js +++ b/test/wpt/test-webstorage.js @@ -1,4 +1,6 @@ 'use strict'; +const { skipIfSQLiteMissing } = require('../common'); +skipIfSQLiteMissing(); const tmpdir = require('../common/tmpdir'); const { WPTRunner } = require('../common/wpt'); const { join } = require('node:path');