From 5adda3a178ce382400f2ca6870c976579f29f80e Mon Sep 17 00:00:00 2001 From: Jaime Bernardo Date: Mon, 20 Nov 2017 11:34:52 +0000 Subject: [PATCH] test: skip tests for ChakraCore that depend on V8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Some tests check for the ChakraCore engine at runtime to skip, since these tests depend on V8 features. This commit adds those tests to the .status files, so they aren't started at all. PR-URL: https://github.com/nodejs/node-chakracore/pull/436 Refs: https://github.com/nodejs/node-chakracore/issues/426 Reviewed-By: João Reis Reviewed-By: Jack Horton --- test/abort/abort.status | 24 +++++++++++++++++++ test/abort/test-abort-uncaught-exception.js | 6 ----- test/addons/addon.status | 5 ++++ test/addons/null-buffer-neuter/test.js | 7 ------ test/async-hooks/async-hooks.status | 4 ++++ test/async-hooks/test-callback-error.js | 6 ----- test/parallel/parallel.status | 15 ++++++++++++ ...n-throw-from-uncaught-exception-handler.js | 6 ----- ...domain-with-abort-on-uncaught-exception.js | 6 ----- test/parallel/test-v8-flags.js | 7 +----- test/parallel/test-v8-version-tag.js | 7 +----- .../test-windows-failed-heap-allocation.js | 4 ---- 12 files changed, 50 insertions(+), 47 deletions(-) create mode 100644 test/abort/abort.status diff --git a/test/abort/abort.status b/test/abort/abort.status new file mode 100644 index 00000000000..a2bb7a9b5fb --- /dev/null +++ b/test/abort/abort.status @@ -0,0 +1,24 @@ +prefix abort + +# To mark a test as flaky, list the test name in the appropriate section +# below, without ".js", followed by ": PASS,FLAKY". Example: +# sample-test : PASS,FLAKY + +[true] # This section applies to all platforms + +[$system==win32] + +[$system==linux] + +[$system==macos] + +[$system==solaris] + +[$system==freebsd] + +[$system==aix] + +[$jsEngine==chakracore] +# This test is disabled for chakra engine because it depends +# on v8-option --abort-on-uncaught-exception +test-abort-uncaught-exception : SKIP diff --git a/test/abort/test-abort-uncaught-exception.js b/test/abort/test-abort-uncaught-exception.js index f82158cf507..4acddf349c2 100644 --- a/test/abort/test-abort-uncaught-exception.js +++ b/test/abort/test-abort-uncaught-exception.js @@ -5,12 +5,6 @@ const assert = require('assert'); const spawn = require('child_process').spawn; const node = process.execPath; -if (common.isChakraEngine) { - common.skip('This test is disabled for chakra engine because it depends ' + - 'on v8-option --abort-on-uncaught-exception'); - return; -} - if (process.argv[2] === 'child') { throw new Error('child error'); } else { diff --git a/test/addons/addon.status b/test/addons/addon.status index 5a0b62efb78..184b1219f6c 100644 --- a/test/addons/addon.status +++ b/test/addons/addon.status @@ -25,3 +25,8 @@ hello-world-esm/test : SKIP new-target/test : SKIP callback-scope/test : SKIP callback-scope/test-resolve-async : SKIP + +# This test is disabled for chakra engine because it depends +# on v8 GC behavior. Chakra GC may find reference-like data +# on native stack and may not do the GC as expected. +null-buffer-neuter/test : SKIP diff --git a/test/addons/null-buffer-neuter/test.js b/test/addons/null-buffer-neuter/test.js index c7fdc30baab..3fc335914c9 100644 --- a/test/addons/null-buffer-neuter/test.js +++ b/test/addons/null-buffer-neuter/test.js @@ -4,11 +4,4 @@ const common = require('../../common'); const binding = require(`./build/${common.buildType}/binding`); -if (common.isChakraEngine) { - common.skip('This test is disabled for chakra engine because it depends ' + - 'on v8 GC behavior. Chakra GC may find reference-like data ' + - 'on native stack and may not do the GC as expected.'); - return; -} - binding.run(); diff --git a/test/async-hooks/async-hooks.status b/test/async-hooks/async-hooks.status index a9063fe0b7b..161fd89d670 100644 --- a/test/async-hooks/async-hooks.status +++ b/test/async-hooks/async-hooks.status @@ -23,3 +23,7 @@ prefix async-hooks test-promise : SKIP test-promise.chain-promise-before-init-hooks : SKIP test-promise.promise-before-init-hooks : SKIP + +# This test is disabled for chakra engine because it depends +# on v8-option --abort-on-uncaught-exception +test-callback-error : SKIP diff --git a/test/async-hooks/test-callback-error.js b/test/async-hooks/test-callback-error.js index 4e87411978d..c45856f60da 100644 --- a/test/async-hooks/test-callback-error.js +++ b/test/async-hooks/test-callback-error.js @@ -5,12 +5,6 @@ const { spawnSync, fork } = require('child_process'); const async_hooks = require('async_hooks'); const initHooks = require('./init-hooks'); -if (common.isChakraEngine) { - common.skip('This test is disabled for chakra engine because it depends ' + - 'on v8-option --abort-on-uncaught-exception'); - return; -} - const arg = process.argv[2]; switch (arg) { case 'test_init_callback': diff --git a/test/parallel/parallel.status b/test/parallel/parallel.status index aeb6b5ed027..64a7d69e640 100644 --- a/test/parallel/parallel.status +++ b/test/parallel/parallel.status @@ -116,6 +116,21 @@ test-vm-strict-assign : SKIP # https://github.com/nodejs/node-chakracore/issues/395 test-zlib-empty-buffer : SKIP +# These tests are disabled for chakra engine because they depend +# on v8-option --abort-on-uncaught-exception +test-domain-throw-error-then-throw-from-uncaught-exception-handler : SKIP +test-domain-with-abort-on-uncaught-exception : SKIP + +# These tests are disabled for chakra engine because they depend +# on v8 flag --allow_natives_syntax +test-v8-flags : SKIP +test-v8-version-tag : SKIP + +# This test is disabled for chakra engine because it depends +# on v8-option --max-old-space-size +test-windows-failed-heap-allocation : SKIP + + [$jsEngine==chakracore && $arch==x64] # These tests are failing for Node-Chakracore and should eventually be fixed test-buffer-includes : SKIP diff --git a/test/parallel/test-domain-throw-error-then-throw-from-uncaught-exception-handler.js b/test/parallel/test-domain-throw-error-then-throw-from-uncaught-exception-handler.js index 0108aa8693a..089300bc481 100644 --- a/test/parallel/test-domain-throw-error-then-throw-from-uncaught-exception-handler.js +++ b/test/parallel/test-domain-throw-error-then-throw-from-uncaught-exception-handler.js @@ -10,12 +10,6 @@ const assert = require('assert'); const child_process = require('child_process'); const domain = require('domain'); -if (common.isChakraEngine) { - common.skip('This test is disabled for chakra engine because it depends ' + - 'on v8-option --abort-on-uncaught-exception'); - return; -} - const uncaughtExceptionHandlerErrMsg = 'boom from uncaughtException handler'; const domainErrMsg = 'boom from domain'; diff --git a/test/parallel/test-domain-with-abort-on-uncaught-exception.js b/test/parallel/test-domain-with-abort-on-uncaught-exception.js index aee48d8b772..03ab39dbfc0 100644 --- a/test/parallel/test-domain-with-abort-on-uncaught-exception.js +++ b/test/parallel/test-domain-with-abort-on-uncaught-exception.js @@ -26,12 +26,6 @@ const fs = require('fs'); * not --abort_on_uncaught_exception is passed on the command line. */ -if (common.isChakraEngine) { - common.skip('This test is disabled for chakra engine because it depends ' + - 'on v8-option --abort-on-uncaught-exception'); - return; -} - const domainErrHandlerExMessage = 'exception from domain error handler'; if (process.argv[2] === 'child') { diff --git a/test/parallel/test-v8-flags.js b/test/parallel/test-v8-flags.js index 75c0597eac6..50d7047a5dd 100644 --- a/test/parallel/test-v8-flags.js +++ b/test/parallel/test-v8-flags.js @@ -1,14 +1,9 @@ 'use strict'; -const common = require('../common'); +require('../common'); const assert = require('assert'); const v8 = require('v8'); const vm = require('vm'); -if (common.isChakraEngine) { - common.skip('This test is disabled for chakra engine.'); - return; -} - // Note: changing V8 flags after an isolate started is not guaranteed to work. // Specifically here, V8 may cache compiled scripts between the flip of the // flag. We use a different script each time to work around this problem. diff --git a/test/parallel/test-v8-version-tag.js b/test/parallel/test-v8-version-tag.js index af7c562609b..22b0db0cd48 100644 --- a/test/parallel/test-v8-version-tag.js +++ b/test/parallel/test-v8-version-tag.js @@ -1,13 +1,8 @@ 'use strict'; -const common = require('../common'); +require('../common'); const assert = require('assert'); const v8 = require('v8'); -if (common.isChakraEngine) { - common.skip('This test is disabled for chakra engine.'); - return; -} - const versionTag1 = v8.cachedDataVersionTag(); assert.strictEqual(typeof versionTag1, 'number'); assert.strictEqual(v8.cachedDataVersionTag(), versionTag1); diff --git a/test/parallel/test-windows-failed-heap-allocation.js b/test/parallel/test-windows-failed-heap-allocation.js index 6fe32ba70fd..e03c9ee006e 100644 --- a/test/parallel/test-windows-failed-heap-allocation.js +++ b/test/parallel/test-windows-failed-heap-allocation.js @@ -5,10 +5,6 @@ const common = require('../common'); if (!common.isWindows) return common.skip('Windows-only'); -if (common.isChakraEngine) - common.skip('This test is disabled for chakra engine because it depends ' + - 'on v8-option --max-old-space-size'); - const assert = require('assert'); const { exec } = require('child_process');