From badcbd86add6483edb346efa7300dd9b119a1948 Mon Sep 17 00:00:00 2001 From: wang_yue111 <648774160@qq.com> Date: Fri, 28 Aug 2020 15:50:09 +0800 Subject: [PATCH 1/6] package init --- nodeunit-0.8.6-Load-system-modules.patch | 136 ++++++++++++++++++++++ nodeunit-0.8.6-Use-system-assert.js.patch | 123 +++++++++++++++++++ nodeunit-0.9.1-Use-fs-stat.patch | 28 +++++ nodeunit-0.9.1-Use-newer-should.patch | 53 +++++++++ nodeunit-0.9.1.tgz | Bin 0 -> 541550 bytes nodeunit.spec | 86 ++++++++++++++ 6 files changed, 426 insertions(+) create mode 100644 nodeunit-0.8.6-Load-system-modules.patch create mode 100644 nodeunit-0.8.6-Use-system-assert.js.patch create mode 100644 nodeunit-0.9.1-Use-fs-stat.patch create mode 100644 nodeunit-0.9.1-Use-newer-should.patch create mode 100644 nodeunit-0.9.1.tgz create mode 100644 nodeunit.spec diff --git a/nodeunit-0.8.6-Load-system-modules.patch b/nodeunit-0.8.6-Load-system-modules.patch new file mode 100644 index 0000000..fad5b45 --- /dev/null +++ b/nodeunit-0.8.6-Load-system-modules.patch @@ -0,0 +1,136 @@ +From b12f1c217b958a826c222de2a08765924636618b Mon Sep 17 00:00:00 2001 +From: Jamie Nguyen +Date: Sun, 23 Feb 2014 15:38:12 +0000 +Subject: [PATCH] Load system modules + +--- + bin/nodeunit | 2 +- + examples/browser/nodeunit.js | 4 ++-- + lib/core.js | 2 +- + lib/nodeunit.js | 2 +- + lib/reporters/junit.js | 4 ++-- + lib/types.js | 2 +- + lib/utils.js | 2 +- + test/test-base.js | 2 +- + 8 files changed, 10 insertions(+), 10 deletions(-) + +diff --git a/bin/nodeunit b/bin/nodeunit +index 4b3f4d5..f2c79ba 100755 +--- a/bin/nodeunit ++++ b/bin/nodeunit +@@ -8,7 +8,7 @@ var + // lands in core. + // + // Until then, use console.log from npm (https://gist.github.com/1077544) +-require('../deps/console.log'); ++require('console.log'); + + //require.paths.push(process.cwd()); + var args = (process.ARGV || process.argv).slice(2); +diff --git a/examples/browser/nodeunit.js b/examples/browser/nodeunit.js +index af7fd0b..bca5d1f 100644 +--- a/examples/browser/nodeunit.js ++++ b/examples/browser/nodeunit.js +@@ -1457,7 +1457,7 @@ assert.ifError = function (err) { if (err) {throw err;}}; + */ + + //var assert = require('./assert'), //@REMOVE_LINE_FOR_BROWSER +-// async = require('../deps/async'); //@REMOVE_LINE_FOR_BROWSER ++// async = require('async'); //@REMOVE_LINE_FOR_BROWSER + + + /** +@@ -1647,7 +1647,7 @@ exports.options = function (opt) { + * Module dependencies + */ + +-//var async = require('../deps/async'), //@REMOVE_LINE_FOR_BROWSER ++//var async = require('async'), //@REMOVE_LINE_FOR_BROWSER + // types = require('./types'); //@REMOVE_LINE_FOR_BROWSER + + +diff --git a/lib/core.js b/lib/core.js +index 8ff031b..483a662 100644 +--- a/lib/core.js ++++ b/lib/core.js +@@ -13,7 +13,7 @@ + * Module dependencies + */ + +-var async = require('../deps/async'), //@REMOVE_LINE_FOR_BROWSER ++var async = require('async'), //@REMOVE_LINE_FOR_BROWSER + nodeunit = require('./nodeunit'), //@REMOVE_LINE_FOR_BROWSER + types = require('./types'); //@REMOVE_LINE_FOR_BROWSER + +diff --git a/lib/nodeunit.js b/lib/nodeunit.js +index 7d33c7b..7212ade 100644 +--- a/lib/nodeunit.js ++++ b/lib/nodeunit.js +@@ -8,7 +8,7 @@ + * Module dependencies + */ + +-var async = require('../deps/async'), ++var async = require('async'), + types = require('./types'), + utils = require('./utils'), + core = require('./core'), +diff --git a/lib/reporters/junit.js b/lib/reporters/junit.js +index 5400526..ac6d545 100644 +--- a/lib/reporters/junit.js ++++ b/lib/reporters/junit.js +@@ -12,10 +12,10 @@ var nodeunit = require('../nodeunit'), + utils = require('../utils'), + fs = require('fs'), + path = require('path'), +- async = require('../../deps/async'), ++ async = require('async'), + AssertionError = require('assert').AssertionError, + child_process = require('child_process'), +- ejs = require('../../deps/ejs'); ++ ejs = require('ejs'); + + + /** +diff --git a/lib/types.js b/lib/types.js +index 879edd8..65956f5 100644 +--- a/lib/types.js ++++ b/lib/types.js +@@ -14,7 +14,7 @@ + */ + + var assert = require('./assert'), //@REMOVE_LINE_FOR_BROWSER +- async = require('../deps/async'); //@REMOVE_LINE_FOR_BROWSER ++ async = require('async'); //@REMOVE_LINE_FOR_BROWSER + + + /** +diff --git a/lib/utils.js b/lib/utils.js +index 898820f..dc8b736 100644 +--- a/lib/utils.js ++++ b/lib/utils.js +@@ -8,7 +8,7 @@ + * Module dependencies + */ + +-var async = require('../deps/async'), ++var async = require('async'), + fs = require('fs'), + util = require('util'), + Script = require('vm').Script, +diff --git a/test/test-base.js b/test/test-base.js +index 5335046..b6ff611 100644 +--- a/test/test-base.js ++++ b/test/test-base.js +@@ -10,7 +10,7 @@ + */ + + var assert = require('assert'), // @REMOVE_LINE_FOR_BROWSER +- async = require('../deps/async'), // @REMOVE_LINE_FOR_BROWSER ++ async = require('async'), // @REMOVE_LINE_FOR_BROWSER + nodeunit = require('../lib/nodeunit'); // @REMOVE_LINE_FOR_BROWSER + + +-- +1.8.5.3 + diff --git a/nodeunit-0.8.6-Use-system-assert.js.patch b/nodeunit-0.8.6-Use-system-assert.js.patch new file mode 100644 index 0000000..704fd71 --- /dev/null +++ b/nodeunit-0.8.6-Use-system-assert.js.patch @@ -0,0 +1,123 @@ +From 671b19bc318293063a1a636175a3c2b102a4bade Mon Sep 17 00:00:00 2001 +From: Jamie Nguyen +Date: Sun, 23 Feb 2014 15:45:48 +0000 +Subject: [PATCH] Use system assert.js + +--- + lib/nodeunit.js | 2 +- + lib/reporters/default.js | 2 +- + lib/reporters/eclipse.js | 2 +- + lib/reporters/machineout.js | 2 +- + lib/reporters/nested.js | 2 +- + lib/reporters/verbose.js | 2 +- + lib/types.js | 2 +- + test/test-bettererrors.js | 2 +- + 8 files changed, 8 insertions(+), 8 deletions(-) + +diff --git a/lib/nodeunit.js b/lib/nodeunit.js +index 7212ade..3b5c527 100644 +--- a/lib/nodeunit.js ++++ b/lib/nodeunit.js +@@ -13,7 +13,7 @@ var async = require('async'), + utils = require('./utils'), + core = require('./core'), + reporters = require('./reporters'), +- assert = require('./assert'), ++ assert = require('assert'), + path = require('path'), + events = require('events'); + +diff --git a/lib/reporters/default.js b/lib/reporters/default.js +index 0de3f23..3102038 100644 +--- a/lib/reporters/default.js ++++ b/lib/reporters/default.js +@@ -13,7 +13,7 @@ var nodeunit = require('../nodeunit'), + fs = require('fs'), + track = require('../track'), + path = require('path'), +- AssertionError = require('../assert').AssertionError; ++ AssertionError = require('assert').AssertionError; + + /** + * Reporter info string +diff --git a/lib/reporters/eclipse.js b/lib/reporters/eclipse.js +index c56a4b8..1d3a64a 100644 +--- a/lib/reporters/eclipse.js ++++ b/lib/reporters/eclipse.js +@@ -13,7 +13,7 @@ var nodeunit = require('../nodeunit'), + fs = require('fs'), + track = require('../track'), + path = require('path'), +- AssertionError = require('../assert').AssertionError; ++ AssertionError = require('assert').AssertionError; + + /** + * Reporter info string +diff --git a/lib/reporters/machineout.js b/lib/reporters/machineout.js +index c58ee40..c35d451 100644 +--- a/lib/reporters/machineout.js ++++ b/lib/reporters/machineout.js +@@ -17,7 +17,7 @@ var nodeunit = require('../nodeunit'), + fs = require('fs'), + track = require('../track'), + path = require('path'), +- AssertionError = require('../assert').AssertionError; ++ AssertionError = require('assert').AssertionError; + + /** + * Reporter info string +diff --git a/lib/reporters/nested.js b/lib/reporters/nested.js +index 62f3d79..8545614 100644 +--- a/lib/reporters/nested.js ++++ b/lib/reporters/nested.js +@@ -13,7 +13,7 @@ var nodeunit = require('../nodeunit'), + fs = require('fs'), + track = require('../track'), + path = require('path'), +- AssertionError = require('../assert').AssertionError; ++ AssertionError = require('assert').AssertionError; + + /** + * Reporter info string +diff --git a/lib/reporters/verbose.js b/lib/reporters/verbose.js +index 6c6083a..1d7e849 100644 +--- a/lib/reporters/verbose.js ++++ b/lib/reporters/verbose.js +@@ -13,7 +13,7 @@ var nodeunit = require('../nodeunit'), + fs = require('fs'), + track = require('../track'), + path = require('path'); +- AssertionError = require('../assert').AssertionError; ++ AssertionError = require('assert').AssertionError; + + /** + * Reporter info string +diff --git a/lib/types.js b/lib/types.js +index 65956f5..1b3b181 100644 +--- a/lib/types.js ++++ b/lib/types.js +@@ -13,7 +13,7 @@ + * Module dependencies + */ + +-var assert = require('./assert'), //@REMOVE_LINE_FOR_BROWSER ++var assert = require('assert'), //@REMOVE_LINE_FOR_BROWSER + async = require('async'); //@REMOVE_LINE_FOR_BROWSER + + +diff --git a/test/test-bettererrors.js b/test/test-bettererrors.js +index 4cae570..e924d1a 100644 +--- a/test/test-bettererrors.js ++++ b/test/test-bettererrors.js +@@ -2,7 +2,7 @@ + * Test utils.betterErrors. utils.betterErrors should provide sensible error messages even when the error does not + * contain expected, actual or operator. + */ +-var assert = require("../lib/assert"); ++var assert = require("assert"); + var should = require("should"); + var types = require("../lib/types"); + var util = require('util'); +-- +1.8.5.3 + diff --git a/nodeunit-0.9.1-Use-fs-stat.patch b/nodeunit-0.9.1-Use-fs-stat.patch new file mode 100644 index 0000000..ad80b9a --- /dev/null +++ b/nodeunit-0.9.1-Use-fs-stat.patch @@ -0,0 +1,28 @@ +commit a796685799f368964d76c788e6d41ca7dc59c295 +Author: Tom Hughes +Date: Wed Jan 20 18:12:26 2016 +0000 + + Replace path.exists with fs.stat + +diff --git a/test/test-runfiles.js b/test/test-runfiles.js +index ecbdfd8..2c276de 100644 +--- a/test/test-runfiles.js ++++ b/test/test-runfiles.js +@@ -1,6 +1,5 @@ + var assert = require('assert'), + fs = require('fs'), +- path = require('path'), + nodeunit = require('../lib/nodeunit'); + + +@@ -116,8 +115,8 @@ exports.testEmptyDir = function (test) { + var dir2 = __dirname + '/fixtures/dir2'; + + // git doesn't like empty directories, so we have to create one +- path.exists(dir2, function (exists) { +- if (!exists) { ++ fs.stat(dir2, function (err) { ++ if (err) { + fs.mkdirSync(dir2, 0777); + } + diff --git a/nodeunit-0.9.1-Use-newer-should.patch b/nodeunit-0.9.1-Use-newer-should.patch new file mode 100644 index 0000000..6c37c8c --- /dev/null +++ b/nodeunit-0.9.1-Use-newer-should.patch @@ -0,0 +1,53 @@ +commit 3c5b085ca59478b68f6fa0d9425405b68104b5ac +Author: Tom Hughes +Date: Sat Nov 21 12:24:47 2015 +0000 + + Fix tests for newer versions of should + +diff --git a/test/test-bettererrors.js b/test/test-bettererrors.js +index 35ac798..dc05e8f 100644 +--- a/test/test-bettererrors.js ++++ b/test/test-bettererrors.js +@@ -15,9 +15,9 @@ function betterErrorStringFromError(error) { + } + + function performBasicChecks(betterErrorString) { +- betterErrorString.should.include("AssertionError"); +- betterErrorString.should.include("test-bettererrors"); +- //betterErrorString.should.not.include("undefined"); ++ betterErrorString.should.containEql("AssertionError"); ++ betterErrorString.should.containEql("test-bettererrors"); ++ //betterErrorString.should.not.containEql("undefined"); + } + + /** +@@ -30,9 +30,9 @@ exports.testEqual = function (test) { + } catch (error) { + var betterErrorString = betterErrorStringFromError(error); + performBasicChecks(betterErrorString); +- betterErrorString.should.include("true"); +- betterErrorString.should.include("false"); +- betterErrorString.should.include("=="); ++ betterErrorString.should.containEql("true"); ++ betterErrorString.should.containEql("false"); ++ betterErrorString.should.containEql("=="); + test.done(); + } + }; +@@ -66,11 +66,11 @@ exports.testErrorIsNotAssertion = function (test) { + throw new Error("test error"); + } catch (error) { + var betterErrorString = betterErrorStringFromError(error); +- betterErrorString.should.not.include("AssertionError"); +- betterErrorString.should.include("Error"); +- betterErrorString.should.include("test error"); +- betterErrorString.should.include("test-bettererrors"); +- betterErrorString.should.not.include("undefined"); ++ betterErrorString.should.not.containEql("AssertionError"); ++ betterErrorString.should.containEql("Error"); ++ betterErrorString.should.containEql("test error"); ++ betterErrorString.should.containEql("test-bettererrors"); ++ betterErrorString.should.not.containEql("undefined"); + test.done(); + } + }; diff --git a/nodeunit-0.9.1.tgz b/nodeunit-0.9.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..a0ad9ed35d5194f778dcac6383c91ae2a83f2c24 GIT binary patch literal 541550 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