asmimproved-dbgmits
Version:
Provides the ability to control GDB and LLDB programmatically via GDB/MI.
53 lines • 4.22 kB
JavaScript
// Copyright (c) 2015 Vadim Macagon
// MIT License, see LICENSE file for full terms.
;
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
require('source-map-support').install();
var mocha = require('mocha');
;
/**
* Specialization of Mocha's `spec` reporter that creates a new logger for each test.
*/
var CustomReporter = (function (_super) {
__extends(CustomReporter, _super);
function CustomReporter(runner) {
var _this = this;
_super.call(this, runner);
// 'test' gets emitted before the beforeEach 'hook', so the logger for each test needs to be
// created at this point and then passed through to the hook callback
runner.on('test', function (test) {
// pad the test number with zeroes (e.g. 1 -> 001, 10 -> 010, 100 -> 100)
var pad = '000';
var testSuffix = (pad + _this.stats.tests).slice(-pad.length);
test.title = test.title + " [" + testSuffix + "]";
if (test.createLogger) {
_this.logger = test.createLogger(_this.stats.tests, test.title);
}
else {
// the test doesn't have a function to create a logger so look for one further up
// the hierarchy
var parent_1 = test.parent;
while (parent_1) {
if (parent_1.createLogger) {
_this.logger = parent_1.createLogger(_this.stats.tests, test.title);
break;
}
parent_1 = parent_1.parent;
}
}
});
runner.on('hook', function (hook) {
// only the beforeEach hook should have a setLogger function
if (hook.fn && hook.fn.setLogger) {
hook.fn.setLogger(_this.logger);
}
});
}
return CustomReporter;
}(mocha.reporters.Spec));
module.exports = CustomReporter;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tX3JlcG9ydGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdGVzdC9jdXN0b21fcmVwb3J0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsbUNBQW1DO0FBQ25DLGdEQUFnRDs7Ozs7OztBQUVoRCxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztBQUV4QyxJQUFPLEtBQUssV0FBVyxPQUFPLENBQUMsQ0FBQztBQWdCL0IsQ0FBQztBQU9GOztHQUVHO0FBQ0g7SUFBNkIsa0NBQW9CO0lBSS9DLHdCQUFZLE1BQXFCO1FBSm5DLGlCQXFDQztRQWhDRyxrQkFBTSxNQUFNLENBQUMsQ0FBQztRQUVkLDRGQUE0RjtRQUM1RixxRUFBcUU7UUFDckUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsVUFBQyxJQUFXO1lBQzVCLHlFQUF5RTtZQUN6RSxJQUFJLEdBQUcsR0FBRyxLQUFLLENBQUM7WUFDaEIsSUFBSSxVQUFVLEdBQUcsQ0FBQyxHQUFHLEdBQUcsS0FBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDN0QsSUFBSSxDQUFDLEtBQUssR0FBTSxJQUFJLENBQUMsS0FBSyxVQUFLLFVBQVUsTUFBRyxDQUFDO1lBQzdDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO2dCQUN0QixLQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2hFLENBQUM7WUFBQyxJQUFJLENBQUMsQ0FBQztnQkFDTixpRkFBaUY7Z0JBQ2pGLGdCQUFnQjtnQkFDaEIsSUFBSSxRQUFNLEdBQVcsSUFBSSxDQUFDLE1BQU0sQ0FBQztnQkFDakMsT0FBTyxRQUFNLEVBQUUsQ0FBQztvQkFDZCxFQUFFLENBQUMsQ0FBQyxRQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQzt3QkFDeEIsS0FBSSxDQUFDLE1BQU0sR0FBRyxRQUFNLENBQUMsWUFBWSxDQUFDLEtBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzt3QkFDaEUsS0FBSyxDQUFDO29CQUNSLENBQUM7b0JBQ0QsUUFBTSxHQUFHLFFBQU0sQ0FBQyxNQUFNLENBQUM7Z0JBQ3pCLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxVQUFDLElBQVc7WUFDNUIsNERBQTREO1lBQzVELEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO2dCQUNqQyxJQUFJLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxLQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDakMsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNILHFCQUFDO0FBQUQsQ0FBQyxBQXJDRCxDQUE2QixLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksR0FxQ2hEO0FBRUQsTUFBTSxDQUFDLE9BQU8sR0FBRyxjQUFjLENBQUMifQ==