From e88c439eacf0715991e50e1cc664e29af88ee7ab Mon Sep 17 00:00:00 2001 From: "Alex Lam S.L" Date: Sat, 11 May 2019 22:03:41 +0800 Subject: [PATCH] improve tests (#3405) --- .travis.yml | 55 +++++++++++++++---------- appveyor.yml | 84 ++++++++++++++++++++++++++++++--------- test/mocha/release.js | 50 ----------------------- test/release/benchmark.js | 14 +++++++ test/release/jetstream.js | 9 +++++ test/release/run.js | 16 ++++++++ 6 files changed, 138 insertions(+), 90 deletions(-) delete mode 100644 test/mocha/release.js create mode 100644 test/release/benchmark.js create mode 100644 test/release/jetstream.js create mode 100644 test/release/run.js diff --git a/.travis.yml b/.travis.yml index fc136792..3a2df849 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,35 +1,46 @@ -addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - libstdc++-4.9-dev cache: directories: tmp language: generic matrix: fast_finish: true -sudo: false env: - global: - - UGLIFYJS_TEST_ALL=1 - matrix: - - NODEJS_VER=node/0.10 - - NODEJS_VER=node/0.12 - - NODEJS_VER=node/4 - - NODEJS_VER=node/6 - - NODEJS_VER=node/8 - - NODEJS_VER=node/10 - - NODEJS_VER=node/latest + - NODE=0.10 TYPE=compress + - NODE=0.10 TYPE=mocha + - NODE=0.10 TYPE=release/benchmark + - NODE=0.10 TYPE=release/jetstream + - NODE=0.12 TYPE=compress + - NODE=0.12 TYPE=mocha + - NODE=0.12 TYPE=release/benchmark + - NODE=0.12 TYPE=release/jetstream + - NODE=4 TYPE=compress + - NODE=4 TYPE=mocha + - NODE=4 TYPE=release/benchmark + - NODE=4 TYPE=release/jetstream + - NODE=6 TYPE=compress + - NODE=6 TYPE=mocha + - NODE=6 TYPE=release/benchmark + - NODE=6 TYPE=release/jetstream + - NODE=8 TYPE=compress + - NODE=8 TYPE=mocha + - NODE=8 TYPE=release/benchmark + - NODE=8 TYPE=release/jetstream + - NODE=10 TYPE=compress + - NODE=10 TYPE=mocha + - NODE=10 TYPE=release/benchmark + - NODE=10 TYPE=release/jetstream + - NODE=latest TYPE=compress + - NODE=latest TYPE=mocha + - NODE=latest TYPE=release/benchmark + - NODE=latest TYPE=release/jetstream before_install: - - git clone --branch v1.4.2 --depth 1 https://github.com/jasongin/nvs.git ~/.nvs + - git clone --branch v1.5.2 --depth 1 https://github.com/jasongin/nvs.git ~/.nvs - . ~/.nvs/nvs.sh - nvs --version install: - - nvs add $NODEJS_VER - - nvs use $NODEJS_VER + - nvs add node/$NODE + - nvs use node/$NODE - node --version - npm --version --no-update-notifier - - npm install --no-optional --no-save --no-update-notifier + - npm install --no-audit --no-optional --no-save --no-update-notifier script: - - npm test --no-update-notifier + - node test/$TYPE diff --git a/appveyor.yml b/appveyor.yml index ef5ab9f6..1df58fad 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,26 +1,74 @@ +build: off +cache: + - tmp +matrix: + fast_finish: true environment: - UGLIFYJS_TEST_ALL: 1 matrix: - - NODEJS_VER: node/0.10 - - NODEJS_VER: node/0.12 - - NODEJS_VER: node/4 - - NODEJS_VER: node/6 - - NODEJS_VER: node/8 - - NODEJS_VER: node/10 - - NODEJS_VER: node/latest + - NODE: 0.10 + TYPE: compress + - NODE: 0.10 + TYPE: mocha + - NODE: 0.10 + TYPE: release/benchmark + - NODE: 0.10 + TYPE: release/jetstream + - NODE: 0.12 + TYPE: compress + - NODE: 0.12 + TYPE: mocha + - NODE: 0.12 + TYPE: release/benchmark + - NODE: 0.12 + TYPE: release/jetstream + - NODE: 4 + TYPE: compress + - NODE: 4 + TYPE: mocha + - NODE: 4 + TYPE: release/benchmark + - NODE: 4 + TYPE: release/jetstream + - NODE: 6 + TYPE: compress + - NODE: 6 + TYPE: mocha + - NODE: 6 + TYPE: release/benchmark + - NODE: 6 + TYPE: release/jetstream + - NODE: 8 + TYPE: compress + - NODE: 8 + TYPE: mocha + - NODE: 8 + TYPE: release/benchmark + - NODE: 8 + TYPE: release/jetstream + - NODE: 10 + TYPE: compress + - NODE: 10 + TYPE: mocha + - NODE: 10 + TYPE: release/benchmark + - NODE: 10 + TYPE: release/jetstream + - NODE: latest + TYPE: compress + - NODE: latest + TYPE: mocha + - NODE: latest + TYPE: release/benchmark + - NODE: latest + TYPE: release/jetstream install: - - git clone --branch v1.4.2 --depth 1 https://github.com/jasongin/nvs.git %LOCALAPPDATA%\nvs + - git clone --branch v1.5.2 --depth 1 https://github.com/jasongin/nvs.git %LOCALAPPDATA%\nvs - set PATH=%LOCALAPPDATA%\nvs;%PATH% - nvs --version - - nvs add %NODEJS_VER% - - nvs use %NODEJS_VER% + - nvs add node/%NODE% + - nvs use node/%NODE% - node --version - npm --version --no-update-notifier - - npm install --no-optional --no-save --no-update-notifier -build: off -cache: - - tmp -matrix: - fast_finish: true + - npm install --no-audit --no-optional --no-save --no-update-notifier test_script: - - npm test --no-update-notifier + - node test/%TYPE% diff --git a/test/mocha/release.js b/test/mocha/release.js deleted file mode 100644 index 988ca212..00000000 --- a/test/mocha/release.js +++ /dev/null @@ -1,50 +0,0 @@ -var assert = require("assert"); -var semver = require("semver"); -var spawn = require("child_process").spawn; - -if (!process.env.UGLIFYJS_TEST_ALL) return; -if (semver.satisfies(process.version, "0.12")) return; - -function run(command, args, done) { - spawn(command, args, { - stdio: [ "ignore", 1, 2 ] - }).on("exit", function(code) { - assert.strictEqual(code, 0); - done(); - }); -} - -describe("test/benchmark.js", function() { - this.timeout(10 * 60 * 1000); - [ - "-b", - "-b braces", - "-m", - "-mc passes=3", - "-mc passes=3,toplevel", - "-mc passes=3,unsafe", - "-mc keep_fargs=false,passes=3", - "-mc keep_fargs=false,passes=3,pure_getters,unsafe,unsafe_comps,unsafe_math,unsafe_proto", - ].forEach(function(options) { - it("Should pass with options " + options, function(done) { - var args = options.split(/ /); - args.unshift("test/benchmark.js"); - run(process.argv[0], args, done); - }); - }); -}); - -describe("test/jetstream.js", function() { - this.timeout(20 * 60 * 1000); - [ - "-mc", - "-mc keep_fargs=false,passes=3,pure_getters,unsafe,unsafe_comps,unsafe_math,unsafe_proto", - ].forEach(function(options) { - it("Should pass with options " + options, function(done) { - var args = options.split(/ /); - args.unshift("test/jetstream.js"); - args.push("-b", "beautify=false,webkit"); - run(process.argv[0], args, done); - }); - }); -}); diff --git a/test/release/benchmark.js b/test/release/benchmark.js new file mode 100644 index 00000000..c4b10fbc --- /dev/null +++ b/test/release/benchmark.js @@ -0,0 +1,14 @@ +require("./run")([ + "-b", + "-b braces", + "-m", + "-mc passes=3", + "-mc passes=3,toplevel", + "-mc passes=3,unsafe", + "-mc keep_fargs=false,passes=3", + "-mc keep_fargs=false,passes=3,pure_getters,unsafe,unsafe_comps,unsafe_math,unsafe_proto", +].map(function(options) { + var args = options.split(/ /); + args.unshift("test/benchmark.js"); + return args; +})); diff --git a/test/release/jetstream.js b/test/release/jetstream.js new file mode 100644 index 00000000..37631e4a --- /dev/null +++ b/test/release/jetstream.js @@ -0,0 +1,9 @@ +require("./run")([ + "-mc", + "-mc keep_fargs=false,passes=3,pure_getters,unsafe,unsafe_comps,unsafe_math,unsafe_proto", +].map(function(options) { + var args = options.split(/ /); + args.unshift("test/jetstream.js"); + args.push("-b", "beautify=false,webkit"); + return args; +})); diff --git a/test/release/run.js b/test/release/run.js new file mode 100644 index 00000000..7b4755dc --- /dev/null +++ b/test/release/run.js @@ -0,0 +1,16 @@ +var child_process = require("child_process"); + +module.exports = function(tasks) { + (function next() { + if (!tasks.length) return; + var args = tasks.shift(); + console.log(); + console.log("\u001B[36m$> " + args.join(" ") + "\u001B[39m"); + var result = child_process.spawn(process.argv[0], args, { + stdio: [ "ignore", 1, 2 ] + }).on("exit", function(code) { + if (code != 0) process.exit(code); + next(); + }); + })(); +}; -- 2.34.1