2015-02-18 09:34:10 +00:00
|
|
|
"use strict";
|
|
|
|
"use server";
|
|
|
|
|
|
|
|
var assert = require("assert");
|
|
|
|
var blocked = require("./blocked");
|
|
|
|
|
|
|
|
module.exports = {
|
|
|
|
|
|
|
|
"test normal run should return low blocked time": function(next) {
|
2015-02-18 11:43:43 +00:00
|
|
|
blocked(function(time) {
|
2015-02-18 09:34:10 +00:00
|
|
|
assert(time < 10);
|
|
|
|
next();
|
|
|
|
});
|
|
|
|
},
|
|
|
|
"test busy loop should report high blocked time": function(next) {
|
2015-02-18 11:43:43 +00:00
|
|
|
blocked(function(time) {
|
2015-02-18 09:34:10 +00:00
|
|
|
assert(time >= 100);
|
|
|
|
next();
|
|
|
|
});
|
|
|
|
|
|
|
|
var start = Date.now();
|
|
|
|
while (Date.now() - start < 100) {}
|
|
|
|
},
|
|
|
|
"test busy loop in setTimeout should report high blocked time": function(next) {
|
|
|
|
setTimeout(function() {
|
|
|
|
var start = Date.now();
|
|
|
|
while (Date.now() - start < 100) {}
|
|
|
|
}, 0);
|
|
|
|
|
2015-02-18 11:43:43 +00:00
|
|
|
blocked(function(time) {
|
2015-02-18 09:34:10 +00:00
|
|
|
assert(time >= 100);
|
|
|
|
next();
|
|
|
|
});
|
|
|
|
},
|
|
|
|
"test busy loop in setInterval should report high blocked time": function(next) {
|
|
|
|
var interval = setInterval(function() {
|
|
|
|
clearInterval(interval);
|
|
|
|
var start = Date.now();
|
|
|
|
while (Date.now() - start < 100) {}
|
|
|
|
});
|
|
|
|
|
2015-02-18 11:43:43 +00:00
|
|
|
blocked(function(time) {
|
2015-02-18 09:34:10 +00:00
|
|
|
assert(time >= 100);
|
|
|
|
next();
|
|
|
|
});
|
|
|
|
},
|
|
|
|
"test busy loop in setImmediate should report high blocked time": function(next) {
|
|
|
|
setImmediate(function() {
|
|
|
|
var start = Date.now();
|
|
|
|
while (Date.now() - start < 100) {}
|
|
|
|
});
|
|
|
|
|
2015-02-18 11:43:43 +00:00
|
|
|
blocked(function(time) {
|
2015-02-18 09:34:10 +00:00
|
|
|
assert(time >= 100);
|
|
|
|
next();
|
|
|
|
});
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
!module.parent && require("asyncjs").test.testcase(module.exports).exec();
|