pm2/test/programmatic/max_memory_limit.js
2017-02-03 16:19:28 +01:00

93 lines
2.1 KiB
JavaScript

process.env.NODE_ENV = 'test';
process.env.PM2_WORKER_INTERVAL = 1000;
var PM2 = require('../..');
var should = require('should');
var path = require('path');
// Change to current folder
describe('Max memory restart programmatic', function() {
this.timeout(10000);
var proc1 = null;
var procs = [];
var pm2 = new PM2.custom({
cwd : __dirname + '/../fixtures/json-reload/',
independent : true
});
after(function(done) {
pm2.destroy(done)
});
afterEach(function(done) {
pm2.delete('all', function() {
setTimeout(done, 300);
});
});
before(function(done) {
pm2.connect(function() {
done();
});
});
describe('Max memory limit', function() {
it('should restart process based on memory limit (UGLY WAY)', function(done) {
pm2.start('./big-array.js', {
maxMemoryRestart : '10M'
}, function(err, data) {
should(err).be.null();
setTimeout(function() {
pm2.list(function(err, ret) {
should(err).be.null();
ret[0].pm2_env.restart_time.should.not.eql(0);
done();
});
}, 3000);
});
});
it('should restart process based on memory limit (JSON WAY)', function(done) {
pm2.start({
script : './big-array.js',
max_memory_restart : '10M'
}, function(err, data) {
should(err).be.null();
setTimeout(function() {
pm2.list(function(err, ret) {
should(err).be.null();
ret[0].pm2_env.restart_time.should.not.eql(0);
done();
});
}, 3000);
});
});
it('should restart CLUSTER process based on memory limit (JSON WAY)', function(done) {
pm2.start({
script : './../big-array-listen.js',
max_memory_restart : '10M',
exec_mode : 'cluster'
}, function(err, data) {
should(err).be.null();
setTimeout(function() {
pm2.list(function(err, ret) {
should(err).be.null();;
ret[0].pm2_env.restart_time.should.not.eql(0);
done();
});
}, 3000);
});
});
});
});