2019-10-28 13:57:31 -07:00

58 lines
1.2 KiB
JavaScript
Executable File

#!/usr/bin/env node
'use strict';
const EventEmitter = require('events').EventEmitter;
const fs = require('fs-extra');
const async = require('async');
const lib = require('../index.js');
const dir = './tmp/';
fs.readdir(dir).then(files => {
const tt0 = Date.now();
async.eachLimit(files, 1, (fileName, callback) => {
let len = 0;
let chunks = 0;
let goodChunks = 0;
let start = 0;
let stop = 0;
const t0 = Date.now();
const ee = new EventEmitter();
const cxt = lib.init();
lib.setTrigger(cxt, 'D1');
ee.on('trigger', time => {
if (time < 10) {
return 0;
}
if (start == 0) {
start = time;
} else {
stop = time;
}
});
const s = fs.createReadStream(dir + fileName);
s.on('data', chunk => {
if (lib.execute(cxt, ee.emit.bind(ee), chunk) === 0) {
goodChunks++;
}
len += chunk.length;
chunks++;
});
s.on('end', () => {
// const info = lib.getInfo(cxt);
// console.log(info);
console.log(fileName, chunks, len, goodChunks, (stop - start),
((Date.now() - t0) / 1000 + 's')
);
callback();
});
}, () => {
console.log('Total time: ' + (Date.now() - tt0) / 1000 + 's');
});
});