improve tests (#3405)
authorAlex Lam S.L <alexlamsl@gmail.com>
Sat, 11 May 2019 14:03:41 +0000 (22:03 +0800)
committeralexlamsl <alexlamsl>
Sat, 11 May 2019 14:06:14 +0000 (22:06 +0800)
.travis.yml
appveyor.yml
test/mocha/release.js [deleted file]
test/release/benchmark.js [new file with mode: 0644]
test/release/jetstream.js [new file with mode: 0644]
test/release/run.js [new file with mode: 0644]

index fc13679..3a2df84 100644 (file)
@@ -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
index ef5ab9f..1df58fa 100644 (file)
@@ -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 (file)
index 988ca21..0000000
+++ /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 (file)
index 0000000..c4b10fb
--- /dev/null
@@ -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 (file)
index 0000000..37631e4
--- /dev/null
@@ -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 (file)
index 0000000..7b4755d
--- /dev/null
@@ -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();
+        });
+    })();
+};