summaryrefslogtreecommitdiff
path: root/deps/npm/test/tap/debug-logs.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/npm/test/tap/debug-logs.js')
-rw-r--r--deps/npm/test/tap/debug-logs.js20
1 files changed, 16 insertions, 4 deletions
diff --git a/deps/npm/test/tap/debug-logs.js b/deps/npm/test/tap/debug-logs.js
index a699735263..0e951c4bb0 100644
--- a/deps/npm/test/tap/debug-logs.js
+++ b/deps/npm/test/tap/debug-logs.js
@@ -8,7 +8,7 @@ var File = Tacks.File
var Dir = Tacks.Dir
var common = require('../common-tap.js')
-var basedir = path.join(__dirname, path.basename(__filename, '.js'))
+var basedir = common.pkg
var testdir = path.join(basedir, 'testdir')
var cachedir = path.join(basedir, 'cache')
var globaldir = path.join(basedir, 'global')
@@ -66,16 +66,28 @@ test('example', function (t) {
t.matches(path.relative(cachedir, logfile), /^_logs/, 'debug log is inside the cache in _logs')
}
- // we run a bunch concurrently, this will actually create > than our limit as the check is done
- // when the command starts
- var todo = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
+ // we run a bunch concurrently, this will actually create > than our limit
+ // as the check is done when the command starts
+ //
+ // It has to be > the log count (10) but also significantly higher than
+ // the number of cores on the machine, or else some might be able to get
+ // to the log folder pruning logic in parallel, resulting in FEWER files
+ // than we expect being present at the end.
+ var procCount = Math.max(require('os').cpus().length * 2, 12)
+ var todo = new Array(procCount).join(',').split(',').map((v, k) => k)
asyncMap(todo, function (num, next) {
+ // another way would be to just simulate this?
+ // var f = path.join(cachedir, '_logs', num + '-debug.log')
+ // require('fs').writeFile(f, 'log ' + num, next)
common.npm(['run', '--logs-max=10', 'false'], conf, function (err, code) {
if (err) throw err
t.is(code, 1, 'run #' + num + ' errored as expected')
next()
})
}, function () {
+ var files = glob.sync(path.join(cachedir, '_logs', '*'))
+ t.ok(files.length > 10, 'there should be more than 10 log files')
+
// now we do one more and that should clean up the list
common.npm(['run', '--logs-max=10', 'false'], conf, function (err, code) {
if (err) throw err