summaryrefslogtreecommitdiff
path: root/node_modules/winston/test/transports/file-stress-test.js
diff options
context:
space:
mode:
authorMinteck <contact@minteck.org>2021-12-21 16:50:49 +0100
committerMinteck <contact@minteck.org>2021-12-21 16:50:49 +0100
commit20204baf1807825af4798ad03bfb329e4da05bc5 (patch)
tree1568515fa1e4592206ed5d2327b39e6b443cbd03 /node_modules/winston/test/transports/file-stress-test.js
downloadbingoloto-remote-20204baf1807825af4798ad03bfb329e4da05bc5.tar.gz
bingoloto-remote-20204baf1807825af4798ad03bfb329e4da05bc5.tar.bz2
bingoloto-remote-20204baf1807825af4798ad03bfb329e4da05bc5.zip
Commit
Diffstat (limited to 'node_modules/winston/test/transports/file-stress-test.js')
-rw-r--r--node_modules/winston/test/transports/file-stress-test.js72
1 files changed, 72 insertions, 0 deletions
diff --git a/node_modules/winston/test/transports/file-stress-test.js b/node_modules/winston/test/transports/file-stress-test.js
new file mode 100644
index 0000000..8c4dcb9
--- /dev/null
+++ b/node_modules/winston/test/transports/file-stress-test.js
@@ -0,0 +1,72 @@
+/*
+ * file-stress-test.js: Tests for stressing File transport
+ *
+ * (C) 2014 William Wong
+ * MIT LICENSE
+ *
+ */
+
+var assert = require('assert'),
+ fs = require('fs'),
+ os = require('os'),
+ path = require('path'),
+ vows = require('vows'),
+ winston = require('../../lib/winston');
+
+vows.describe('winston/transports/file').addBatch({
+ 'A stressed instance of the File Transport': {
+ topic: function () {
+ var callback = this.callback.bind(this),
+ logPath = path.resolve(__dirname, '../fixtures/logs/file-stress-test.log');
+
+ try {
+ fs.unlinkSync(logPath);
+ } catch (ex) {
+ if (ex && ex.code !== 'ENOENT') { return callback(ex); }
+ }
+
+ var fileTransport = new (winston.transports.File)({
+ filename: logPath
+ }),
+ logger = new (winston.Logger)({
+ transports: [fileTransport]
+ });
+
+ fileTransport.on('open', function () {
+ setTimeout(function () {
+ clearInterval(interval);
+
+ logger.query({ order: 'asc' }, function (err, results) {
+ callback(null, results);
+ });
+ }, 100);
+ });
+
+ var logIndex = 0,
+ interval = setInterval(function () {
+ logger.info(++logIndex);
+ stress(200);
+ }, 0);
+
+ logger.info(++logIndex);
+ stress(200);
+
+ function stress(duration) {
+ var startTime = Date.now();
+
+ while (Date.now() - startTime < duration) {
+ Math.sqrt(Math.PI);
+ }
+ }
+ },
+ 'should not skip any log lines': function (results) {
+ var testIndex = 0;
+
+ results.file.forEach(function (log) {
+ if (+log.message !== ++testIndex) {
+ throw new Error('Number skipped');
+ }
+ });
+ }
+ }
+}).export(module);