diff --git a/test/common/README.md b/test/common/README.md index 5479a39d8c215c..52b25fdcfe81a6 100644 --- a/test/common/README.md +++ b/test/common/README.md @@ -223,6 +223,10 @@ Platform check for Advanced Interactive eXecutive (AIX). Attempts to 'kill' `pid` +### `isDumbTerminal` + +* [<boolean>][] + ### `isFreeBSD` * [<boolean>][] @@ -385,6 +389,10 @@ will not be run. Logs '1..0 # Skipped: ' + `msg` and exits with exit code `0`. +### `skipIfDumbTerminal()` + +Skip the rest of the tests if the current terminal is a dumb terminal + ### `skipIfEslintMissing()` Skip the rest of the tests in the current file when `ESLint` is not available diff --git a/test/common/index.js b/test/common/index.js index e77e7b95059947..a75287499263b7 100644 --- a/test/common/index.js +++ b/test/common/index.js @@ -112,6 +112,8 @@ const isOpenBSD = process.platform === 'openbsd'; const isLinux = process.platform === 'linux'; const isOSX = process.platform === 'darwin'; +const isDumbTerminal = process.env.TERM === 'dumb'; + const rootDir = isWindows ? 'c:\\' : '/'; const buildType = process.config.target_defaults ? @@ -653,6 +655,12 @@ function invalidArgTypeHelper(input) { return ` Received type ${typeof input} (${inspected})`; } +function skipIfDumbTerminal() { + if (isDumbTerminal) { + skip('skipping - dumb terminal'); + } +} + const common = { allowGlobals, buildType, @@ -672,6 +680,7 @@ const common = { invalidArgTypeHelper, isAIX, isAlive, + isDumbTerminal, isFreeBSD, isLinux, isMainThread, @@ -692,6 +701,7 @@ const common = { runWithInvalidFD, skip, skipIf32Bits, + skipIfDumbTerminal, skipIfEslintMissing, skipIfInspectorDisabled, skipIfWorker, diff --git a/test/common/index.mjs b/test/common/index.mjs index 96e6699e3c6f99..fe5ed9872948b7 100644 --- a/test/common/index.mjs +++ b/test/common/index.mjs @@ -12,6 +12,7 @@ const { isIBMi, isLinuxPPCBE, isSunOS, + isDumbTerminal, isFreeBSD, isOpenBSD, isLinux, @@ -31,6 +32,7 @@ const { mustCall, mustCallAtLeast, hasMultiLocalhost, + skipIfDumbTerminal, skipIfEslintMissing, canCreateSymLink, getCallSite, @@ -57,6 +59,7 @@ export { isIBMi, isLinuxPPCBE, isSunOS, + isDumbTerminal, isFreeBSD, isOpenBSD, isLinux, @@ -76,6 +79,7 @@ export { mustCall, mustCallAtLeast, hasMultiLocalhost, + skipIfDumbTerminal, skipIfEslintMissing, canCreateSymLink, getCallSite, diff --git a/test/parallel/test-console-clear.js b/test/parallel/test-console-clear.js index b6fc003165dc66..5975602547922a 100644 --- a/test/parallel/test-console-clear.js +++ b/test/parallel/test-console-clear.js @@ -1,6 +1,6 @@ 'use strict'; -require('../common'); +const common = require('../common'); const assert = require('assert'); const stdoutWrite = process.stdout.write; @@ -18,5 +18,7 @@ function doTest(isTTY, check) { } // Fake TTY -doTest(true, check); +if (!common.isDumbTerminal) { + doTest(true, check); +} doTest(false, ''); diff --git a/test/parallel/test-readline-interface.js b/test/parallel/test-readline-interface.js index 59a65e8ca2020e..e7247a65c04319 100644 --- a/test/parallel/test-readline-interface.js +++ b/test/parallel/test-readline-interface.js @@ -22,6 +22,7 @@ // Flags: --expose-internals 'use strict'; const common = require('../common'); +common.skipIfDumbTerminal(); const assert = require('assert'); const readline = require('readline'); diff --git a/test/parallel/test-readline-position.js b/test/parallel/test-readline-position.js index 88e4d6104b5047..f01786eaf19d3c 100644 --- a/test/parallel/test-readline-position.js +++ b/test/parallel/test-readline-position.js @@ -1,6 +1,6 @@ // Flags: --expose-internals 'use strict'; -require('../common'); +const common = require('../common'); const { internalBinding } = require('internal/test/binding'); const { PassThrough } = require('stream'); const readline = require('readline'); @@ -8,6 +8,8 @@ const assert = require('assert'); const ctrlU = { ctrl: true, name: 'u' }; +common.skipIfDumbTerminal(); + { const input = new PassThrough(); const rl = readline.createInterface({ diff --git a/test/parallel/test-readline-tab-complete.js b/test/parallel/test-readline-tab-complete.js index d7a4bb7a9a0690..e8871863402cb1 100644 --- a/test/parallel/test-readline-tab-complete.js +++ b/test/parallel/test-readline-tab-complete.js @@ -8,6 +8,8 @@ const assert = require('assert'); const EventEmitter = require('events').EventEmitter; const { getStringWidth } = require('internal/util/inspect'); +common.skipIfDumbTerminal(); + // This test verifies that the tab completion supports unicode and the writes // are limited to the minimum. [ diff --git a/test/parallel/test-readline-undefined-columns.js b/test/parallel/test-readline-undefined-columns.js index 40fe2c16d609e9..f1ef7b5bba2eee 100644 --- a/test/parallel/test-readline-undefined-columns.js +++ b/test/parallel/test-readline-undefined-columns.js @@ -5,6 +5,8 @@ const assert = require('assert'); const PassThrough = require('stream').PassThrough; const readline = require('readline'); +common.skipIfDumbTerminal(); + // Checks that tab completion still works // when output column size is undefined diff --git a/test/parallel/test-readline.js b/test/parallel/test-readline.js index d464fdc440c58b..b336996cd2e53e 100644 --- a/test/parallel/test-readline.js +++ b/test/parallel/test-readline.js @@ -4,6 +4,8 @@ const { PassThrough } = require('stream'); const readline = require('readline'); const assert = require('assert'); +common.skipIfDumbTerminal(); + { const input = new PassThrough(); const rl = readline.createInterface({ diff --git a/test/parallel/test-repl-editor.js b/test/parallel/test-repl-editor.js index 6871fbdcb1a882..41685f06e72c06 100644 --- a/test/parallel/test-repl-editor.js +++ b/test/parallel/test-repl-editor.js @@ -1,10 +1,12 @@ 'use strict'; -require('../common'); +const common = require('../common'); const assert = require('assert'); const repl = require('repl'); const ArrayStream = require('../common/arraystream'); +common.skipIfDumbTerminal(); + // \u001b[nG - Moves the cursor to n st column // \u001b[0J - Clear screen // \u001b[0K - Clear to line end diff --git a/test/parallel/test-repl-history-navigation.js b/test/parallel/test-repl-history-navigation.js index 8eda8e3ceceeef..640106f38ed4c7 100644 --- a/test/parallel/test-repl-history-navigation.js +++ b/test/parallel/test-repl-history-navigation.js @@ -10,6 +10,8 @@ const fs = require('fs'); const path = require('path'); const { inspect } = require('util'); +common.skipIfDumbTerminal(); + const tmpdir = require('../common/tmpdir'); tmpdir.refresh(); diff --git a/test/parallel/test-repl-load-multiline.js b/test/parallel/test-repl-load-multiline.js index b2bee8d6e4647e..4fcf206bef1be1 100644 --- a/test/parallel/test-repl-load-multiline.js +++ b/test/parallel/test-repl-load-multiline.js @@ -1,10 +1,12 @@ 'use strict'; -require('../common'); +const common = require('../common'); const ArrayStream = require('../common/arraystream'); const fixtures = require('../common/fixtures'); const assert = require('assert'); const repl = require('repl'); +common.skipIfDumbTerminal(); + const command = `.load ${fixtures.path('repl-load-multiline.js')}`; const terminalCode = '\u001b[1G\u001b[0J \u001b[1G'; const terminalCodeRegex = new RegExp(terminalCode.replace(/\[/g, '\\['), 'g'); diff --git a/test/parallel/test-repl-persistent-history.js b/test/parallel/test-repl-persistent-history.js index 1d1261a3752365..705a7c7c236fb0 100644 --- a/test/parallel/test-repl-persistent-history.js +++ b/test/parallel/test-repl-persistent-history.js @@ -12,6 +12,8 @@ const path = require('path'); const os = require('os'); const util = require('util'); +common.skipIfDumbTerminal(); + const tmpdir = require('../common/tmpdir'); tmpdir.refresh(); diff --git a/test/parallel/test-repl-preview.js b/test/parallel/test-repl-preview.js index b8dbbf3f9a993d..754963e08ebeb3 100644 --- a/test/parallel/test-repl-preview.js +++ b/test/parallel/test-repl-preview.js @@ -7,6 +7,7 @@ const { Stream } = require('stream'); const { inspect } = require('util'); common.skipIfInspectorDisabled(); +common.skipIfDumbTerminal(); const PROMPT = 'repl > '; diff --git a/test/parallel/test-repl-programmatic-history.js b/test/parallel/test-repl-programmatic-history.js index 5307ae0556ae74..0eccea655263cd 100644 --- a/test/parallel/test-repl-programmatic-history.js +++ b/test/parallel/test-repl-programmatic-history.js @@ -10,6 +10,8 @@ const path = require('path'); const os = require('os'); const util = require('util'); +common.skipIfDumbTerminal(); + const tmpdir = require('../common/tmpdir'); tmpdir.refresh(); diff --git a/test/parallel/test-repl-reverse-search.js b/test/parallel/test-repl-reverse-search.js index 45a7ec327f7232..5027bd7da497fe 100644 --- a/test/parallel/test-repl-reverse-search.js +++ b/test/parallel/test-repl-reverse-search.js @@ -10,6 +10,7 @@ const fs = require('fs'); const path = require('path'); const { inspect } = require('util'); +common.skipIfDumbTerminal(); common.allowGlobals('aaaa'); const tmpdir = require('../common/tmpdir');