diff options
Diffstat (limited to 'tools/blog/node_modules/glob/test/pause-resume.js')
-rw-r--r-- | tools/blog/node_modules/glob/test/pause-resume.js | 98 |
1 files changed, 0 insertions, 98 deletions
diff --git a/tools/blog/node_modules/glob/test/pause-resume.js b/tools/blog/node_modules/glob/test/pause-resume.js deleted file mode 100644 index 481d1aae4c..0000000000 --- a/tools/blog/node_modules/glob/test/pause-resume.js +++ /dev/null @@ -1,98 +0,0 @@ -// show that no match events happen while paused. -var tap = require("tap") -, child_process = require("child_process") -// just some gnarly pattern with lots of matches -, pattern = "test/a/symlink/a/b/c/a/b/c/a/b/c//a/b/c////a/b/c/**/b/c/**" -, glob = require("../") -, Glob = glob.Glob -, path = require("path") - -// run from the root of the project -// this is usually where you're at anyway, but be sure. -process.chdir(path.resolve(__dirname, "..")) - -function alphasort (a, b) { - a = a.toLowerCase() - b = b.toLowerCase() - return a > b ? 1 : a < b ? -1 : 0 -} - -function cleanResults (m) { - // normalize discrepancies in ordering, duplication, - // and ending slashes. - return m.map(function (m) { - return m.replace(/\/+/g, "/").replace(/\/$/, "") - }).sort(alphasort).reduce(function (set, f) { - if (f !== set[set.length - 1]) set.push(f) - return set - }, []).sort(alphasort) -} - -function flatten (chunks) { - var s = 0 - chunks.forEach(function (c) { s += c.length }) - var out = new Buffer(s) - s = 0 - chunks.forEach(function (c) { - c.copy(out, s) - s += c.length - }) - - return out.toString().trim() -} -var bashResults -tap.test("get bash output", function (t) { - var bashPattern = pattern - , cmd = "shopt -s globstar && " + - "shopt -s extglob && " + - "shopt -s nullglob && " + - // "shopt >&2; " + - "eval \'for i in " + bashPattern + "; do echo $i; done\'" - , cp = child_process.spawn("bash", ["-c",cmd]) - , out = [] - , globResult - cp.stdout.on("data", function (c) { - out.push(c) - }) - cp.stderr.on("data", function (c) { - process.stderr.write(c) - }) - cp.stdout.on("close", function () { - bashResults = flatten(out) - if (!bashResults) return t.fail("Didn't get results from bash") - else { - bashResults = cleanResults(bashResults.split(/\r*\n/)) - } - t.ok(bashResults.length, "got some results") - t.end() - }) -}) - -var globResults = [] -tap.test("use a Glob object, and pause/resume it", function (t) { - var g = new Glob(pattern) - , paused = false - , res = [] - - g.on("match", function (m) { - t.notOk(g.paused, "must not be paused") - globResults.push(m) - g.pause() - t.ok(g.paused, "must be paused") - setTimeout(g.resume.bind(g), 1) - }) - - g.on("end", function (matches) { - t.pass("reached glob end") - globResults = cleanResults(globResults) - matches = cleanResults(matches) - t.deepEqual(matches, globResults, - "end event matches should be the same as match events") - - t.deepEqual(matches, bashResults, - "glob matches should be the same as bash results") - - t.end() - }) -}) - |