Browse Source

Better test process killing for Windows

Yury Delendik 11 years ago
parent
commit
d7174582c0
  1. 20
      test/webbrowser.js

20
test/webbrowser.js

@ -64,17 +64,30 @@ WebBrowser.prototype = { @@ -64,17 +64,30 @@ WebBrowser.prototype = {
startProcess: function (url) {
var args = this.buildArguments(url);
var proc = spawn(this.path, args);
proc.on('close', function (code) {
proc.on('exit', function (code) {
this.finished = true;
// trying to wait for process to shutdown (for Windows sake)
setTimeout(function () {
this.cleanup();
if (this.callback) {
this.callback.call(null, code);
}
this.cleanup();
}.bind(this), 500);
}.bind(this));
return proc;
},
cleanup: function () {
try {
testUtils.removeDirSync(this.tmpDir);
} catch (e) {
console.error('Unable to cleanup after the process: ' + e);
try {
if (this.process) {
this.process.kill('SIGKILL');
}
} catch (e) {}
}
this.process = null;
},
stop: function (callback) {
if (this.finished) {
@ -85,8 +98,7 @@ WebBrowser.prototype = { @@ -85,8 +98,7 @@ WebBrowser.prototype = {
this.callback = callback;
}
this.process.kill();
this.process = null;
this.process.kill('SIGTERM');
}
};

Loading…
Cancel
Save