Skip to content

Commit

Permalink
fix flaky debug-logs test
Browse files Browse the repository at this point in the history
Total luxury problem.  There are too many cores on my laptop, so
commands kick off and complete too quickly, resulting in not properly
demonstrating the behavior that this test is looking for.
  • Loading branch information
isaacs committed Jun 30, 2019
1 parent 39538b4 commit 33e2d1d
Showing 1 changed file with 15 additions and 3 deletions.
18 changes: 15 additions & 3 deletions test/tap/debug-logs.js
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit 33e2d1d

Please # to comment.